From bd009cdeae0285b3a5646ddd4aaf1dd7cef7710a Mon Sep 17 00:00:00 2001 From: PatrickvL Date: Thu, 22 Dec 2016 12:01:34 +0100 Subject: [PATCH] Fixed a few small mistakes --- .../HLEDataBase - Copy/D3D8.1.0.3925.h | 45 + .../HLEDataBase - Copy/D3D8.1.0.3925.inl | 6054 ++++++++++++++++ .../HLEDataBase - Copy/D3D8.1.0.4034.h | 44 + .../HLEDataBase - Copy/D3D8.1.0.4034.inl | 2781 +++++++ .../HLEDataBase - Copy/D3D8.1.0.4134.h | 45 + .../HLEDataBase - Copy/D3D8.1.0.4134.inl | 3837 ++++++++++ .../HLEDataBase - Copy/D3D8.1.0.4361.h | 44 + .../HLEDataBase - Copy/D3D8.1.0.4361.inl | 3749 ++++++++++ .../HLEDataBase - Copy/D3D8.1.0.4432.h | 42 + .../HLEDataBase - Copy/D3D8.1.0.4432.inl | 2097 ++++++ .../HLEDataBase - Copy/D3D8.1.0.4627.h | 44 + .../HLEDataBase - Copy/D3D8.1.0.4627.inl | 6376 +++++++++++++++++ .../HLEDataBase - Copy/D3D8.1.0.5233.h | 44 + .../HLEDataBase - Copy/D3D8.1.0.5233.inl | 3694 ++++++++++ .../HLEDataBase - Copy/D3D8.1.0.5558.h | 42 + .../HLEDataBase - Copy/D3D8.1.0.5558.inl | 3737 ++++++++++ .../HLEDataBase - Copy/D3D8.1.0.5849.h | 42 + .../HLEDataBase - Copy/D3D8.1.0.5849.inl | 3373 +++++++++ .../HLEDataBase - Copy/D3D8LTCG.1.0.5849.h | 45 + .../HLEDataBase - Copy/D3D8LTCG.1.0.5849.inl | 1729 +++++ .../HLEDataBase - Copy/DSound.1.0.3936.h | 42 + .../HLEDataBase - Copy/DSound.1.0.3936.inl | 6191 ++++++++++++++++ .../HLEDataBase - Copy/DSound.1.0.4134.h | 42 + .../HLEDataBase - Copy/DSound.1.0.4134.inl | 716 ++ .../HLEDataBase - Copy/DSound.1.0.4361.h | 42 + .../HLEDataBase - Copy/DSound.1.0.4361.inl | 1302 ++++ .../HLEDataBase - Copy/DSound.1.0.4432.h | 42 + .../HLEDataBase - Copy/DSound.1.0.4432.inl | 1015 +++ .../HLEDataBase - Copy/DSound.1.0.4627.h | 42 + .../HLEDataBase - Copy/DSound.1.0.4627.inl | 5015 +++++++++++++ .../HLEDataBase - Copy/DSound.1.0.5233.h | 42 + .../HLEDataBase - Copy/DSound.1.0.5233.inl | 1977 +++++ .../HLEDataBase - Copy/DSound.1.0.5558.h | 42 + .../HLEDataBase - Copy/DSound.1.0.5558.inl | 3651 ++++++++++ .../HLEDataBase - Copy/DSound.1.0.5849.h | 42 + .../HLEDataBase - Copy/DSound.1.0.5849.inl | 3026 ++++++++ src/CxbxKrnl/HLEDataBase - Copy/HLE_3911.rar | Bin 0 -> 30746 bytes src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.3911.h | 42 + .../HLEDataBase - Copy/XG.1.0.3911.inl | 239 + src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4034.h | 42 + .../HLEDataBase - Copy/XG.1.0.4034.inl | 210 + src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4361.h | 42 + .../HLEDataBase - Copy/XG.1.0.4361.inl | 274 + src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4432.h | 42 + .../HLEDataBase - Copy/XG.1.0.4432.inl | 67 + src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4627.h | 42 + .../HLEDataBase - Copy/XG.1.0.4627.inl | 172 + src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5233.h | 42 + .../HLEDataBase - Copy/XG.1.0.5233.inl | 65 + src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5558.h | 42 + .../HLEDataBase - Copy/XG.1.0.5558.inl | 219 + src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5849.h | 42 + .../HLEDataBase - Copy/XG.1.0.5849.inl | 140 + .../HLEDataBase - Copy/XNet.1.0.3911.h | 42 + .../HLEDataBase - Copy/XNet.1.0.3911.inl | 206 + .../HLEDataBase - Copy/XOnline.1.0.4361.h | 42 + .../HLEDataBase - Copy/XOnline.1.0.4361.inl | 330 + .../HLEDataBase - Copy/XOnline.1.0.4627.h | 42 + .../HLEDataBase - Copy/XOnline.1.0.4627.inl | 208 + .../HLEDataBase - Copy/XOnline.1.0.5233.h | 42 + .../HLEDataBase - Copy/XOnline.1.0.5233.inl | 233 + .../HLEDataBase - Copy/XOnline.1.0.5558.h | 42 + .../HLEDataBase - Copy/XOnline.1.0.5558.inl | 241 + .../HLEDataBase - Copy/XOnline.1.0.5849.h | 42 + .../HLEDataBase - Copy/XOnline.1.0.5849.inl | 173 + .../HLEDataBase - Copy/XactEng.1.0.4627.h | 42 + .../HLEDataBase - Copy/XactEng.1.0.4627.inl | 1006 +++ .../HLEDataBase - Copy/Xapi.1.0.3911.h | 42 + .../HLEDataBase - Copy/Xapi.1.0.3911.inl | 2020 ++++++ .../HLEDataBase - Copy/Xapi.1.0.4034.h | 42 + .../HLEDataBase - Copy/Xapi.1.0.4034.inl | 437 ++ .../HLEDataBase - Copy/Xapi.1.0.4134.h | 42 + .../HLEDataBase - Copy/Xapi.1.0.4134.inl | 678 ++ .../HLEDataBase - Copy/Xapi.1.0.4361.h | 42 + .../HLEDataBase - Copy/Xapi.1.0.4361.inl | 846 +++ .../HLEDataBase - Copy/Xapi.1.0.4432.h | 42 + .../HLEDataBase - Copy/Xapi.1.0.4432.inl | 314 + .../HLEDataBase - Copy/Xapi.1.0.4627.h | 42 + .../HLEDataBase - Copy/Xapi.1.0.4627.inl | 1592 ++++ .../HLEDataBase - Copy/Xapi.1.0.5233.h | 42 + .../HLEDataBase - Copy/Xapi.1.0.5233.inl | 356 + .../HLEDataBase - Copy/Xapi.1.0.5558.h | 42 + .../HLEDataBase - Copy/Xapi.1.0.5558.inl | 780 ++ .../HLEDataBase - Copy/Xapi.1.0.5849.h | 42 + .../HLEDataBase - Copy/Xapi.1.0.5849.inl | 464 ++ src/CxbxKrnl/HLEDataBase/D3D8.1.0.3925.inl | 13 +- src/CxbxKrnl/HLEDataBase/D3D8.1.0.4034.inl | 5 +- src/CxbxKrnl/HLEDataBase/D3D8.1.0.4134.inl | 10 +- src/CxbxKrnl/HLEDataBase/D3D8.1.0.4361.inl | 13 +- src/CxbxKrnl/HLEDataBase/D3D8.1.0.4432.inl | 7 +- src/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl | 21 +- src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl | 7 +- src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl | 7 +- src/CxbxKrnl/HLEDataBase/D3D8.1.0.5849.inl | 11 +- .../HLEDataBase/D3D8LTCG.1.0.5849.inl | 6 +- src/CxbxKrnl/HLEDataBase/DSound.1.0.3936.inl | 17 +- src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl | 5 +- src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl | 8 +- src/CxbxKrnl/HLEDataBase/DSound.1.0.4432.inl | 4 +- src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl | 34 +- src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl | 7 +- src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl | 25 +- src/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl | 22 +- src/CxbxKrnl/HLEDataBase/XG.1.0.5558.inl | 12 +- src/CxbxKrnl/HLEDataBase/XactEng.1.0.4627.inl | 6 +- src/CxbxKrnl/HLEDataBase/Xapi.1.0.3911.inl | 40 +- src/CxbxKrnl/HLEDataBase/Xapi.1.0.4627.inl | 3 +- 107 files changed, 73503 insertions(+), 151 deletions(-) create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.3925.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.3925.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4034.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4034.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4134.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4134.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4361.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4361.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4432.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4432.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4627.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4627.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5233.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5233.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5558.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5558.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5849.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5849.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8LTCG.1.0.5849.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/D3D8LTCG.1.0.5849.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.3936.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.3936.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4134.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4134.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4361.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4361.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4432.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4432.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4627.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4627.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5233.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5233.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5558.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5558.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5849.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5849.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/HLE_3911.rar create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.3911.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.3911.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4034.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4034.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4361.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4361.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4432.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4432.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4627.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4627.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5233.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5233.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5558.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5558.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5849.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5849.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XNet.1.0.3911.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XNet.1.0.3911.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4361.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4361.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4627.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4627.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5233.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5233.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5558.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5558.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5849.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5849.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XactEng.1.0.4627.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/XactEng.1.0.4627.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.3911.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.3911.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4034.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4034.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4134.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4134.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4361.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4361.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4432.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4432.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4627.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4627.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5233.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5233.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5558.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5558.inl create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5849.h create mode 100644 src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5849.inl diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.3925.h b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.3925.h new file mode 100644 index 000000000..1729bc28d --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.3925.h @@ -0,0 +1,45 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.3925.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_1_0_3925_H +#define D3D8_1_0_3925_H + +#include "OOVPA.h" + +extern SOOVPA<11> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_3925; +extern SOOVPA<15> IDirect3DDevice8_SetRenderState_CullMode_1_0_3925; + +extern OOVPATable D3D8_1_0_3925[]; +extern uint32 D3D8_1_0_3925_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.3925.inl b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.3925.inl new file mode 100644 index 000000000..b65f0b64b --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.3925.inl @@ -0,0 +1,6054 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.3925.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * IDirect3D8_CreateDevice +// ****************************************************************** +SOOVPA<8> IDirect3D8_CreateDevice_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_CreateDevice+0x07 : jnz +0x0A + { 0x07, 0x75 }, // (Offset,Value)-Pair #1 + { 0x08, 0x0A }, // (Offset,Value)-Pair #2 + + // IDirect3D8_CreateDevice+0x79 : mov eax, esi + { 0x79, 0x8B }, // (Offset,Value)-Pair #3 + { 0x7A, 0xC6 }, // (Offset,Value)-Pair #4 + + // IDirect3D8_CreateDevice+0x7C : retn 0x18 + { 0x7C, 0xC2 }, // (Offset,Value)-Pair #5 + { 0x7D, 0x18 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_CreateDevice+0x90 : retn 0x18 + { 0x90, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x91, 0x18 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_IsBusy +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_IsBusy_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x90 }, // (Offset,Value)-Pair #2 + { 0x0D, 0x04 }, // (Offset,Value)-Pair #3 + { 0x0E, 0x04 }, // (Offset,Value)-Pair #4 + + { 0x1E, 0x74 }, // (Offset,Value)-Pair #5 + { 0x1F, 0x06 }, // (Offset,Value)-Pair #6 + + { 0x25, 0xC3 }, // (Offset,Value)-Pair #7 + + { 0x33, 0xC3 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDeviceCaps +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_GetDeviceCaps_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetDeviceCaps+0x00 : push esi; push edi + { 0x00, 0x56 }, // (Offset,Value)-Pair #1 + { 0x01, 0x57 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetDeviceCaps+0x06 : mov ecx, 0x35 + { 0x06, 0xB9 }, // (Offset,Value)-Pair #3 + { 0x07, 0x35 }, // (Offset,Value)-Pair #4 + { 0x08, 0x00 }, // (Offset,Value)-Pair #5 + { 0x09, 0x00 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x00 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_GetDeviceCaps+0x10 : rep movsd + { 0x10, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x11, 0xA5 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_GetDeviceCaps+0x14 : retn 0x04 + { 0x14, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x15, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BeginVisibilityTest +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_BeginVisibilityTest_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_BeginVisibilityTest+0x0D : mov ecx, 1 + { 0x0D, 0xB9 }, // (Offset,Value)-Pair #1 + { 0x0E, 0x01 }, // (Offset,Value)-Pair #2 + { 0x0F, 0x00 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_BeginVisibilityTest+0x12 : mov dword ptr [eax], 0x000817C8 + { 0x12, 0xC7 }, // (Offset,Value)-Pair #4 + { 0x13, 0x00 }, // (Offset,Value)-Pair #5 + { 0x14, 0xC8 }, // (Offset,Value)-Pair #6 + { 0x15, 0x17 }, // (Offset,Value)-Pair #7 + { 0x16, 0x08 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_BeginVisibilityTest+0x1E : add eax, 0x0C + { 0x1E, 0x83 }, // (Offset,Value)-Pair #9 + { 0x1F, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x20, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * D3DDevice_GetMaterial +// ****************************************************************** +SOOVPA<9> D3DDevice_GetMaterial_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x56 }, + { 0x06, 0x57 }, + { 0x0A, 0x0C }, + { 0x0C, 0xB0 }, + { 0x0D, 0x18 }, + { 0x0E, 0x0B }, + { 0x11, 0xB9 }, + { 0x16, 0xF3 }, + { 0x1A, 0xC2 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_EndVisibilityTest +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_EndVisibilityTest_1_0_3925 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_EndVisibilityTest+0x11 : mov eax, 0x8007000E + { 0x11, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x12, 0x0E }, // (Offset,Value)-Pair #2 + { 0x13, 0x00 }, // (Offset,Value)-Pair #3 + { 0x14, 0x07 }, // (Offset,Value)-Pair #4 + { 0x15, 0x80 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_EndVisibilityTest+0x2D : mov dword ptr [eax], 0x000817CC + { 0x2D, 0xC7 }, // (Offset,Value)-Pair #6 + { 0x2E, 0x00 }, // (Offset,Value)-Pair #7 + { 0x2F, 0xCC }, // (Offset,Value)-Pair #8 + { 0x30, 0x17 }, // (Offset,Value)-Pair #9 + { 0x31, 0x08 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_EndVisibilityTest+0x43 : add eax, 0x0C + { 0x43, 0x83 }, // (Offset,Value)-Pair #11 + { 0x44, 0xC0 }, // (Offset,Value)-Pair #12 + { 0x45, 0x0C }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetVisibilityTestResult +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_GetVisibilityTestResult_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetVisibilityTestResult+0x0C : shr ecx, 8 + { 0x0C, 0xC1 }, // (Offset,Value)-Pair #1 + { 0x0D, 0xE9 }, // (Offset,Value)-Pair #2 + { 0x0E, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetVisibilityTestResult+0x0F : and eax, 0xFF + { 0x0F, 0x25 }, // (Offset,Value)-Pair #4 + { 0x10, 0xFF }, // (Offset,Value)-Pair #5 + { 0x11, 0x00 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetVisibilityTestResult+0x2B : mov eax, 0x88760828 + { 0x2B, 0xB8 }, // (Offset,Value)-Pair #7 + { 0x2C, 0x28 }, // (Offset,Value)-Pair #8 + { 0x2D, 0x08 }, // (Offset,Value)-Pair #9 + { 0x2E, 0x76 }, // (Offset,Value)-Pair #10 + { 0x2F, 0x88 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3D8_KickOffAndWaitForIdle +// ****************************************************************** +// * Actually, this is D3D::CDevice::KickOff +// ****************************************************************** +SOOVPA<10> IDirect3D8_KickOffAndWaitForIdle_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0xA1 }, // (Offset,Value)-Pair #1 + + { 0x32, 0x81 }, // (Offset,Value)-Pair #2 + { 0x33, 0xCA }, // (Offset,Value)-Pair #3 + { 0x36, 0x01 }, // (Offset,Value)-Pair #4 + + { 0x5E, 0x89 }, // (Offset,Value)-Pair #5 + { 0x5F, 0x50 }, // (Offset,Value)-Pair #6 + { 0x60, 0x40 }, // (Offset,Value)-Pair #7 + + { 0x90, 0x83 }, // (Offset,Value)-Pair #8 + { 0x91, 0xEA }, // (Offset,Value)-Pair #9 + { 0x92, 0x02 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LoadVertexShader +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_LoadVertexShader_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_LoadVertexShader+0x07 : mov al, [ebx+0x0C] + { 0x07, 0x8A }, // (Offset,Value)-Pair #1 + { 0x08, 0x43 }, // (Offset,Value)-Pair #2 + { 0x09, 0x0C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_LoadVertexShader+0x3D : mov dword ptr [eax], 0x00041E9C + { 0x3D, 0xC7 }, // (Offset,Value)-Pair #4 + { 0x3E, 0x00 }, // (Offset,Value)-Pair #5 + { 0x3F, 0x9C }, // (Offset,Value)-Pair #6 + { 0x40, 0x1E }, // (Offset,Value)-Pair #7 + { 0x41, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_LoadVertexShader+0x4E : mov [ebx], ebx + { 0x4E, 0x89 }, // (Offset,Value)-Pair #9 + { 0x4F, 0x13 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SelectVertexShader +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SelectVertexShader_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SelectVertexShader+0x16 : or ecx, 0x3A0 + { 0x16, 0x81 }, // (Offset,Value)-Pair #1 + { 0x17, 0xC9 }, // (Offset,Value)-Pair #2 + { 0x18, 0xA0 }, // (Offset,Value)-Pair #3 + { 0x19, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SelectVertexShader+0x3F : mov dword ptr [eax], 0x00081E94 + { 0x3F, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x40, 0x00 }, // (Offset,Value)-Pair #6 + { 0x41, 0x94 }, // (Offset,Value)-Pair #7 + { 0x42, 0x1E }, // (Offset,Value)-Pair #8 + { 0x43, 0x08 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SelectVertexShader+0x51 : mov [esi], eax + { 0x51, 0x89 }, // (Offset,Value)-Pair #10 + { 0x52, 0x06 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BlockUntilVerticalBlank +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_BlockUntilVerticalBlank_1_0_3925 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_BlockUntilVerticalBlank+0x05 : push 0;push 0;push 1 + { 0x05, 0x6A }, // (Offset,Value)-Pair #1 + { 0x06, 0x00 }, // (Offset,Value)-Pair #2 + { 0x07, 0x6A }, // (Offset,Value)-Pair #3 + { 0x08, 0x00 }, // (Offset,Value)-Pair #4 + { 0x09, 0x6A }, // (Offset,Value)-Pair #5 + { 0x0A, 0x01 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x0B : mov dword ptr [eax+0x24F4], + { 0x0B, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x0C, 0x80 }, // (Offset,Value)-Pair #8 + { 0x0D, 0xF4 }, // (Offset,Value)-Pair #9 + { 0x0E, 0x24 }, // (Offset,Value)-Pair #10 + { 0x0F, 0x00 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x17 : and eax, 0x24F0 + { 0x17, 0x05 }, // (Offset,Value)-Pair #12 + { 0x18, 0xF0 }, // (Offset,Value)-Pair #13 + { 0x19, 0x24 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVerticalBlankCallback +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetVerticalBlankCallback_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVerticalBlankCallback+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x0A : mov [ecx+0x24EC], eax + { 0x0A, 0x89 }, // (Offset,Value)-Pair #5 + { 0x0B, 0x81 }, // (Offset,Value)-Pair #6 + { 0x0C, 0xEC }, // (Offset,Value)-Pair #7 + { 0x0D, 0x24 }, // (Offset,Value)-Pair #8 + { 0x0E, 0x00 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x10 : retn 0x04 + { 0x10, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x11, 0x04 }, // (Offset,Value)-Pair #11 + { 0x12, 0x00 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderTarget +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderTarget_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderTarget+0x00 : sub esp, 0x20 + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x20 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderTarget+0x32 : mov [esp+0x34], ebx + { 0x32, 0x89 }, // (Offset,Value)-Pair #4 + { 0x33, 0x5C }, // (Offset,Value)-Pair #5 + { 0x34, 0x24 }, // (Offset,Value)-Pair #6 + { 0x35, 0x34 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderTarget+0x55 : and ecx, 0x0F + { 0x55, 0x83 }, // (Offset,Value)-Pair #8 + { 0x56, 0xE1 }, // (Offset,Value)-Pair #9 + { 0x57, 0x0F }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderTarget+0xDC : push edx + { 0xDC, 0x52 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderTarget +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderTarget_1_0_3948 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderTarget+0x00 : sub esp, 0x30 + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x30 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderTarget+0x32 : and ecx, 0x0F + { 0x32, 0x83 }, // (Offset,Value)-Pair #4 + { 0x33, 0xE1 }, // (Offset,Value)-Pair #5 + { 0x34, 0x0F }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderTarget+0x69 : push ebx + { 0x69, 0x53 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderTarget+0xDA : push edx + { 0xDA, 0x52 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * D3DSurface_GetDesc +// ****************************************************************** +SOOVPA<7> D3DSurface_GetDesc_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x07, 0x04 }, + { 0x0A, 0x00 }, + { 0x11, 0xC2 }, + { 0x12, 0x08 }, + { 0x13, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetTransform +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetTransform_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetTransform+0x0A : add esi, 0x22 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #1 + { 0x0B, 0xC6 }, // (Offset,Value)-Pair #2 + { 0x0C, 0x22 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetTransform+0x12 : shl esi, 6; add esi, eax + { 0x12, 0xC1 }, // (Offset,Value)-Pair #4 + { 0x13, 0xE6 }, // (Offset,Value)-Pair #5 + { 0x14, 0x06 }, // (Offset,Value)-Pair #6 + { 0x15, 0x03 }, // (Offset,Value)-Pair #7 + { 0x16, 0xF0 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetTransform+0x17 : mov ecx, 0x10 + { 0x17, 0xB9 }, // (Offset,Value)-Pair #7 + { 0x18, 0x10 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetTransform+0x20 : retn 0x08 + { 0x20, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x21, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetStreamSource +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetStreamSource_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetStreamSource+0x39 : add edx, 0xFFF80000 + { 0x39, 0x81 }, // (Offset,Value)-Pair #1 + { 0x3A, 0xC2 }, // (Offset,Value)-Pair #2 + { 0x3B, 0x00 }, // (Offset,Value)-Pair #3 + { 0x3C, 0x00 }, // (Offset,Value)-Pair #4 + { 0x3D, 0xF8 }, // (Offset,Value)-Pair #5 + { 0x3E, 0xFF }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetStreamSource+0x49 : jnz +0x06 + { 0x49, 0x75 }, // (Offset,Value)-Pair #7 + { 0x4A, 0x06 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetStreamSource+0x6A : or ecx, 0x280 + { 0x6A, 0x81 }, // (Offset,Value)-Pair #9 + { 0x6B, 0xC9 }, // (Offset,Value)-Pair #10 + { 0x6C, 0x80 }, // (Offset,Value)-Pair #11 + { 0x6D, 0x02 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShader +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetVertexShader_1_0_3925 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShader+0x05 : test bl, 1 + { 0x05, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x06, 0xC3 }, // (Offset,Value)-Pair #2 + { 0x07, 0x01 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShader+0x10 : mov eax, [esi+0x0470] + { 0x10, 0x8B }, // (Offset,Value)-Pair #4 + { 0x11, 0x86 }, // (Offset,Value)-Pair #5 + { 0x12, 0x70 }, // (Offset,Value)-Pair #6 + { 0x13, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetVertexShader+0x6D : retn 0x04 + { 0x6D, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x6E, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexShader+0x8C : mov dword ptr [eax], 0x81E94 + { 0x8C, 0xC7 }, // (Offset,Value)-Pair #10 + { 0x8D, 0x40 }, // (Offset,Value)-Pair #11 + { 0x8E, 0x08 }, // (Offset,Value)-Pair #12 + { 0x8F, 0x94 }, // (Offset,Value)-Pair #13 + { 0x90, 0x1E }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreatePixelShader +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_CreatePixelShader_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreatePixelShader+0x00 : push 0xFC + { 0x00, 0x68 }, // (Offset,Value)-Pair #1 + { 0x01, 0xFC }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreatePixelShader+0x10 : mov eax, 0x8007000E + { 0x10, 0xB8 }, // (Offset,Value)-Pair #3 + { 0x11, 0x0E }, // (Offset,Value)-Pair #4 + { 0x12, 0x00 }, // (Offset,Value)-Pair #5 + { 0x13, 0x07 }, // (Offset,Value)-Pair #6 + { 0x14, 0x80 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreatePixelShader+0x31 : mov ecx, 0x3C + { 0x31, 0xB9 }, // (Offset,Value)-Pair #8 + { 0x32, 0x3C }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_CreatePixelShader+0x42 : retn 0x08 + { 0x42, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x43, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShader +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetPixelShader_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPixelShader+0x0E : mov esi, [ebx+0x0414] + { 0x0E, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0F, 0xB3 }, // (Offset,Value)-Pair #2 + { 0x10, 0x14 }, // (Offset,Value)-Pair #3 + { 0x11, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetPixelShader+0x34 : or eax, 0x40 + { 0x35, 0xC8 }, // (Offset,Value)-Pair #5 + { 0x36, 0x40 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetPixelShader+0x68 : retn 0x04 + { 0x68, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x69, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetPixelShader+0xE3 : rep movsd + { 0xE3, 0xF3 }, // (Offset,Value)-Pair #9 + { 0xE4, 0xA5 }, // (Offset,Value)-Pair #10 + + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetIndices +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetIndices_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetIndices+0x0E : jz +0x10 + { 0x0E, 0x74 }, // (Offset,Value)-Pair #1 + { 0x0F, 0x10 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetIndices+0x3E : test ecx, 0x78FFFF + { 0x3E, 0xF7 }, // (Offset,Value)-Pair #3 + { 0x3F, 0xC1 }, // (Offset,Value)-Pair #4 + { 0x40, 0xFF }, // (Offset,Value)-Pair #5 + { 0x41, 0xFF }, // (Offset,Value)-Pair #6 + { 0x42, 0x78 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetIndices+0x67 : mov [esi+0x047C], edi + { 0x67, 0x89 }, // (Offset,Value)-Pair #8 + { 0x68, 0xBE }, // (Offset,Value)-Pair #9 + { 0x69, 0x7C }, // (Offset,Value)-Pair #10 + { 0x6A, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetViewport +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetViewport_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetViewport+0x00 : sub esp, 0x08 + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetViewport+0x2F : mov ebx, [esp+0x1C] + { 0x2F, 0x8B }, // (Offset,Value)-Pair #4 + { 0x30, 0x5C }, // (Offset,Value)-Pair #5 + { 0x31, 0x24 }, // (Offset,Value)-Pair #6 + { 0x32, 0x1C }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetViewport+0x55 : jnz +0x12 + { 0x55, 0x75 }, // (Offset,Value)-Pair #8 + { 0x56, 0x12 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetViewport+0x9D : inc edx + { 0x9D, 0x42 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTexture +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetTexture_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTexture+0x0E : sub esp, 0x08 + { 0x0E, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0F, 0x84 }, // (Offset,Value)-Pair #2 + { 0x10, 0x9F }, // (Offset,Value)-Pair #3 + { 0x11, 0xA0 }, // (Offset,Value)-Pair #4 + { 0x12, 0x0B }, // (Offset,Value)-Pair #5 + { 0x13, 0x00 }, // (Offset,Value)-Pair #6 + { 0x14, 0x00 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetTexture+0x57 : shl edx, 6 + { 0x57, 0xC1 }, // (Offset,Value)-Pair #8 + { 0x58, 0xE2 }, // (Offset,Value)-Pair #9 + { 0x59, 0x06 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetTexture+0x7D : retn 0x08 + { 0x7D, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x7E, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVertices +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_DrawIndexedVertices_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawIndexedVertices+0x0E : mov eax, [esi+0x0478] + { 0x0E, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0F, 0x86 }, // (Offset,Value)-Pair #2 + { 0x10, 0x78 }, // (Offset,Value)-Pair #3 + { 0x11, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_DrawIndexedVertices+0x44 : mov dword ptr [ebx-8], 0x000417FC + { 0x44, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x45, 0x43 }, // (Offset,Value)-Pair #6 + { 0x46, 0xF8 }, // (Offset,Value)-Pair #7 + { 0x47, 0xFC }, // (Offset,Value)-Pair #8 + { 0x48, 0x17 }, // (Offset,Value)-Pair #9 + { 0x49, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_DrawIndexedVertices+0xDA : lea ebx, [ebx+0] + { 0xDA, 0x8D }, // (Offset,Value)-Pair #11 + { 0xDB, 0x9B }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Begin +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_Begin_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Begin+0x20 : mov dword ptr [eax], 0x417FC + { 0x20, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x21, 0x00 }, // (Offset,Value)-Pair #2 + { 0x22, 0xFC }, // (Offset,Value)-Pair #3 + { 0x23, 0x17 }, // (Offset,Value)-Pair #4 + { 0x24, 0x04 }, // (Offset,Value)-Pair #5 + { 0x25, 0x00 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_Begin+0x2E : shl edx, 6 + { 0x2E, 0x0D }, // (Offset,Value)-Pair #7 + { 0x2F, 0x00 }, // (Offset,Value)-Pair #8 + { 0x30, 0x08 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_Begin+0x38 : retn 0x08 + { 0x38, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x39, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexData2f +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetVertexData2f_1_0_3925 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexData2f+0x11 : lea edx, ds:abs[ecx*8] + { 0x11, 0x8D }, // (Offset,Value)-Pair #1 + { 0x12, 0x14 }, // (Offset,Value)-Pair #2 + { 0x13, 0xCD }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexData2f+0x1C : mov [eax], edx; mov edx, [esp+0x10] + { 0x1C, 0x89 }, // (Offset,Value)-Pair #4 + { 0x1D, 0x10 }, // (Offset,Value)-Pair #5 + { 0x1E, 0x8B }, // (Offset,Value)-Pair #6 + { 0x1F, 0x54 }, // (Offset,Value)-Pair #7 + { 0x20, 0x24 }, // (Offset,Value)-Pair #8 + { 0x21, 0x10 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexData2f+0x28 : add eax, 0x0C + { 0x28, 0x83 }, // (Offset,Value)-Pair #10 + { 0x29, 0xC0 }, // (Offset,Value)-Pair #11 + { 0x2A, 0x0C }, // (Offset,Value)-Pair #12 + + // IDirect3DDevice8_SetVertexData2f+0x2E : retn 0x0C + { 0x2E, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x2F, 0x0C }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexData2s +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetVertexData2s_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexData2s+0x11 : lea edx, ds:abs[ecx*4] + { 0x11, 0x8D }, // (Offset,Value)-Pair #1 + { 0x12, 0x14 }, // (Offset,Value)-Pair #2 + { 0x13, 0x8D }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexData2s+0x24 : shl ecx, 0x10 + { 0x24, 0xC1 }, // (Offset,Value)-Pair #4 + { 0x25, 0xE1 }, // (Offset,Value)-Pair #5 + { 0x26, 0x10 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetVertexData2s+0x29 : mov [eax+4], ecx + { 0x29, 0x89 }, // (Offset,Value)-Pair #7 + { 0x2A, 0x48 }, // (Offset,Value)-Pair #8 + { 0x2B, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexData2s+0x32 : retn 0x0C + { 0x32, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x33, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexData4f +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetVertexData4f_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexData4f+0x11 : cmp ecx, -1; jnz +0x07 + { 0x11, 0x83 }, // (Offset,Value)-Pair #1 + { 0x12, 0xF9 }, // (Offset,Value)-Pair #2 + { 0x13, 0xFF }, // (Offset,Value)-Pair #3 + { 0x14, 0x75 }, // (Offset,Value)-Pair #4 + { 0x15, 0x07 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetVertexData4f+0x1D : add ecx, 0x01A0 + { 0x1D, 0x81 }, // (Offset,Value)-Pair #6 + { 0x1E, 0xC1 }, // (Offset,Value)-Pair #7 + { 0x1F, 0xA0 }, // (Offset,Value)-Pair #8 + { 0x20, 0x01 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexData4f+0x50 : retn 0x14 + { 0x50, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x51, 0x14 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexDataColor +// ****************************************************************** +SOOVPA<17> IDirect3DDevice8_SetVertexDataColor_1_0_3925 = +{ + 0, // Large == 0 + 17, // Count == 17 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexDataColor+0x1F : mov byte ptr [esp+?] + { 0x1F, 0x0F }, // (Offset,Value)-Pair #1 + { 0x20, 0xB6 }, // (Offset,Value)-Pair #2 + { 0x21, 0x54 }, // (Offset,Value)-Pair #3 + { 0x22, 0x24 }, // (Offset,Value)-Pair #4 + { 0x23, 0x12 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetVertexDataColor+0x26 : add edi, 0xFF; shl edi, 0x10 + { 0x26, 0x81 }, // (Offset,Value)-Pair #6 + { 0x27, 0xE7 }, // (Offset,Value)-Pair #7 + { 0x28, 0xFF }, // (Offset,Value)-Pair #8 + { 0x2C, 0xC1 }, // (Offset,Value)-Pair #9 + { 0x2D, 0xE7 }, // (Offset,Value)-Pair #10 + { 0x2E, 0x10 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetVertexDataColor+0x31 : and ecx, 0xFF00FF00 + { 0x31, 0x81 }, // (Offset,Value)-Pair #12 + { 0x32, 0xE1 }, // (Offset,Value)-Pair #13 + { 0x33, 0x00 }, // (Offset,Value)-Pair #14 + { 0x34, 0xFF }, // (Offset,Value)-Pair #15 + { 0x35, 0x00 }, // (Offset,Value)-Pair #16 + { 0x36, 0xFF }, // (Offset,Value)-Pair #17 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_End +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_End_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_End+0x17 : mov dword ptr [eax], 0x417FC + { 0x17, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x18, 0x00 }, // (Offset,Value)-Pair #2 + { 0x19, 0xFC }, // (Offset,Value)-Pair #3 + { 0x1A, 0x17 }, // (Offset,Value)-Pair #4 + { 0x1B, 0x04 }, // (Offset,Value)-Pair #5 + { 0x1C, 0x00 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_End+0x2C : test ah, 0x10 + { 0x2C, 0xF6 }, // (Offset,Value)-Pair #7 + { 0x2D, 0xC4 }, // (Offset,Value)-Pair #8 + { 0x2E, 0x10 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_End+0x2F : jz +0x07 + { 0x2F, 0x74 }, // (Offset,Value)-Pair #10 + { 0x30, 0x07 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_End+0x40 : retn + { 0x40, 0xC3 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Clear +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_Clear_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Clear+0x00 : sub esp, 0x38 + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x38 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_Clear+0x25 : test cl, 1 + { 0x25, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x26, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x27, 0x01 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_Clear+0x5D : mov [esi], eax; xor ebp, ebp + { 0x5D, 0x89 }, // (Offset,Value)-Pair #7 + { 0x5E, 0x06 }, // (Offset,Value)-Pair #8 + { 0x5F, 0x33 }, // (Offset,Value)-Pair #9 + { 0x60, 0xED }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreatePalette +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_CreatePalette_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreatePalette+0x01 : push 0x0C + { 0x01, 0x6A }, // (Offset,Value)-Pair #1 + { 0x02, 0x0C }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreatePalette+0x03 : push 0x40 + { 0x03, 0x6A }, // (Offset,Value)-Pair #3 + { 0x04, 0x40 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_CreatePalette+0x10 : mov eax, 0x8007000E + { 0x10, 0xB8 }, // (Offset,Value)-Pair #5 + { 0x11, 0x0E }, // (Offset,Value)-Pair #6 + { 0x12, 0x00 }, // (Offset,Value)-Pair #7 + { 0x13, 0x07 }, // (Offset,Value)-Pair #8 + { 0x14, 0x80 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_CreatePalette+0x4E : shl esi, 0x1E + { 0x4E, 0xC1 }, // (Offset,Value)-Pair #10 + { 0x4F, 0xE6 }, // (Offset,Value)-Pair #11 + { 0x50, 0x1E }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPalette +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetPalette_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPalette+0x0D : mov eax, [edi+esi*4+0x0BB0] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0E, 0x84 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xB7 }, // (Offset,Value)-Pair #3 + { 0x10, 0xB0 }, // (Offset,Value)-Pair #4 + { 0x11, 0x0B }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetPalette+0x68 : add esi, 0x41B20 + { 0x68, 0x81 }, // (Offset,Value)-Pair #6 + { 0x69, 0xC6 }, // (Offset,Value)-Pair #7 + { 0x6A, 0x20 }, // (Offset,Value)-Pair #8 + { 0x6B, 0x1B }, // (Offset,Value)-Pair #9 + { 0x6C, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetPalette+0x7C : retn 0x08 + { 0x7C, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x7D, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateTexture +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_CreateTexture_1_0_3925 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateTexture+0x00 : mov eax, [esp+0x1C] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x1C }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_CreateTexture+0x0C : push eax + { 0x0C, 0x50 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_CreateTexture+0x11 : push 0 + { 0x11, 0x6A }, // (Offset,Value)-Pair #6 + { 0x12, 0x00 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreateTexture+0x13 : push 0 + { 0x13, 0x6A }, // (Offset,Value)-Pair #8 + { 0x14, 0x00 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_CreateTexture+0x15 : push ecx + { 0x15, 0x51 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_CreateTexture+0x22 : push ecx + { 0x22, 0x51 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_CreateTexture+0x23 : push edx + { 0x23, 0x52 }, // (Offset,Value)-Pair #12 + + // IDirect3DDevice8_CreateTexture+0x29 : retn 0x1C + { 0x29, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x2A, 0x1C }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateVolumeTexture +// ****************************************************************** +SOOVPA<15> IDirect3DDevice8_CreateVolumeTexture_1_0_3925 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateVolumeTexture+0x00 : mov eax, [esp+0x1C] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x20 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_CreateVolumeTexture+0x0C : push eax + { 0x0C, 0x50 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_CreateVolumeTexture+0x11 : push 1 + { 0x11, 0x6A }, // (Offset,Value)-Pair #6 + { 0x12, 0x01 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreateVolumeTexture+0x13 : push 0 + { 0x13, 0x6A }, // (Offset,Value)-Pair #8 + { 0x14, 0x00 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_CreateVolumeTexture+0x16 : mov ecx, [esp+0x1C] + { 0x16, 0x8B }, // (Offset,Value)-Pair #10 + { 0x17, 0x4C }, // (Offset,Value)-Pair #11 + { 0x18, 0x24 }, // (Offset,Value)-Pair #12 + { 0x19, 0x1C }, // (Offset,Value)-Pair #13 + + // IDirect3DDevice8_CreateVolumeTexture+0x2C : retn 0x20 + { 0x2C, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x2D, 0x20 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateCubeTexture +// ****************************************************************** +SOOVPA<15> IDirect3DDevice8_CreateCubeTexture_1_0_3925 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateCubeTexture+0x00 : mov eax, [esp+0x1C] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x18 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_CreateCubeTexture+0x0C : push eax + { 0x0C, 0x50 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_CreateCubeTexture+0x11 : push 0 + { 0x11, 0x6A }, // (Offset,Value)-Pair #6 + { 0x12, 0x00 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreateCubeTexture+0x13 : push 1 + { 0x13, 0x6A }, // (Offset,Value)-Pair #8 + { 0x14, 0x01 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_CreateCubeTexture+0x18 : mov eax, [esp+0x1C] + { 0x18, 0x8B }, // (Offset,Value)-Pair #10 + { 0x19, 0x44 }, // (Offset,Value)-Pair #11 + { 0x1A, 0x24 }, // (Offset,Value)-Pair #12 + { 0x1B, 0x1C }, // (Offset,Value)-Pair #13 + + // IDirect3DDevice8_CreateCubeTexture+0x25 : retn 0x18 + { 0x25, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x26, 0x18 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateIndexBuffer +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_CreateIndexBuffer_1_0_3925 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateIndexBuffer+0x13 : mov eax, 0x8007000E + { 0x13, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x14, 0x0E }, // (Offset,Value)-Pair #2 + { 0x15, 0x00 }, // (Offset,Value)-Pair #3 + { 0x16, 0x07 }, // (Offset,Value)-Pair #4 + { 0x17, 0x80 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_CreateIndexBuffer+0x18 : retn 0x14 + { 0x18, 0xC2 }, // (Offset,Value)-Pair #6 + { 0x19, 0x14 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreateIndexBuffer+0x2E : mov dword ptr [eax], 0x1010001 + { 0x2E, 0xC7 }, // (Offset,Value)-Pair #8 + { 0x2F, 0x00 }, // (Offset,Value)-Pair #9 + { 0x30, 0x01 }, // (Offset,Value)-Pair #10 + { 0x31, 0x00 }, // (Offset,Value)-Pair #11 + { 0x32, 0x01 }, // (Offset,Value)-Pair #12 + { 0x33, 0x01 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateVertexShader +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_CreateVertexShader_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateVertexShader+0x00 : push ecx; push ebx; push ebp + { 0x00, 0x51 }, // (Offset,Value)-Pair #1 + { 0x01, 0x53 }, // (Offset,Value)-Pair #2 + { 0x02, 0x55 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_CreateVertexShader+0x0A : jz +0x10 + { 0x0A, 0x74 }, // (Offset,Value)-Pair #4 + { 0x0B, 0x10 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_CreateVertexShader+0x43 : shl eax, 0x02 + { 0x43, 0xC1 }, // (Offset,Value)-Pair #6 + { 0x44, 0xE0 }, // (Offset,Value)-Pair #7 + { 0x45, 0x02 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_CreateVertexShader+0x66 : retn 0x10 + { 0x66, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x67, 0x10 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_CreateVertexShader+0x73 : rep stosb + { 0x73, 0xF3 }, // (Offset,Value)-Pair #11 + { 0x74, 0xAB }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderConstant +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetVertexShaderConstant_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShaderConstant+0x11 : mov cl, [ebx+0x0C] + { 0x11, 0x8A }, // (Offset,Value)-Pair #1 + { 0x12, 0x4B }, // (Offset,Value)-Pair #2 + { 0x13, 0x0C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderConstant+0x1A : test cl, 0x10 + { 0x1A, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x1B, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x1C, 0x10 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetVertexShaderConstant+0x63 : jle +0x19 + { 0x63, 0x7E }, // (Offset,Value)-Pair #7 + { 0x64, 0x19 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetVertexShaderConstant+0x9B : retn 0x0C + { 0x9B, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x9C, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetFlickerFilter +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetFlickerFilter_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetFlickerFilter+0x0A : mov edx, [ecx+0x2308] + { 0x0A, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0B, 0x91 }, // (Offset,Value)-Pair #2 + { 0x0C, 0x08 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x23 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetFlickerFilter+0x10 : push 0; push eax; push 0x0B; push edx + { 0x10, 0x6A }, // (Offset,Value)-Pair #5 + { 0x11, 0x00 }, // (Offset,Value)-Pair #6 + { 0x12, 0x50 }, // (Offset,Value)-Pair #7 + { 0x13, 0x6A }, // (Offset,Value)-Pair #8 + { 0x14, 0x0B }, // (Offset,Value)-Pair #9 + { 0x15, 0x52 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetFlickerFilter+0x1C : retn 0x08 + { 0x1C, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x1D, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetSoftDisplayFilter +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetSoftDisplayFilter_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetSoftDisplayFilter+0x0A : mov edx, [ecx+0x2308] + { 0x0A, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0B, 0x91 }, // (Offset,Value)-Pair #2 + { 0x0C, 0x08 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x23 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetSoftDisplayFilter+0x10 : push 0; push eax; push 0x0E; push edx + { 0x10, 0x6A }, // (Offset,Value)-Pair #5 + { 0x11, 0x00 }, // (Offset,Value)-Pair #6 + { 0x12, 0x50 }, // (Offset,Value)-Pair #7 + { 0x13, 0x6A }, // (Offset,Value)-Pair #8 + { 0x14, 0x0E }, // (Offset,Value)-Pair #9 + { 0x15, 0x52 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetSoftDisplayFilter+0x1C : retn 0x08 + { 0x1C, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x1D, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_TexCoordIndex +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x0B : shl eax, 0x07 + { 0x0B, 0xC1 }, // (Offset,Value)-Pair #1 + { 0x0C, 0xE0 }, // (Offset,Value)-Pair #2 + { 0x0D, 0x07 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x24 : cmp eax, 0x20000 + { 0x24, 0x81 }, // (Offset,Value)-Pair #4 + { 0x25, 0xF9 }, // (Offset,Value)-Pair #5 + { 0x28, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x3B : mov edi, 0x8511 + { 0x3B, 0xBF }, // (Offset,Value)-Pair #7 + { 0x3C, 0x11 }, // (Offset,Value)-Pair #8 + { 0x3D, 0x85 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x97 : shl eax, cl + { 0x97, 0xD3 }, // (Offset,Value)-Pair #10 + { 0x98, 0xE0 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_BorderColor +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetTextureState_BorderColor_1_0_3925 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_BorderColor+0x13 : shl eax, 0x07 + { 0x13, 0xC1 }, // (Offset,Value)-Pair #1 + { 0x14, 0xE2 }, // (Offset,Value)-Pair #2 + { 0x15, 0x06 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTextureState_BorderColor+0x16 : add edx, 0x41B24 + { 0x16, 0x81 }, // (Offset,Value)-Pair #4 + { 0x17, 0xC2 }, // (Offset,Value)-Pair #5 + { 0x18, 0x24 }, // (Offset,Value)-Pair #6 + { 0x19, 0x1B }, // (Offset,Value)-Pair #7 + { 0x1A, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetTextureState_BorderColor+0x2A : shl ecx, 7 + { 0x2A, 0xC1 }, // (Offset,Value)-Pair #9 + { 0x2B, 0xE1 }, // (Offset,Value)-Pair #10 + { 0x2C, 0x07 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetTextureState_BorderColor+0x34 : retn 0x08 + { 0x34, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x35, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_PSTextureModes +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_PSTextureModes_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_PSTextureModes+0x0C : or edx, 0x400 + { 0x0C, 0x81 }, // (Offset,Value)-Pair #1 + { 0x0D, 0xCA }, // (Offset,Value)-Pair #2 + { 0x0E, 0x00 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_PSTextureModes+0x12 : mov [eax+0x420], ecx + { 0x12, 0x89 }, // (Offset,Value)-Pair #5 + { 0x13, 0x88 }, // (Offset,Value)-Pair #6 + { 0x14, 0x20 }, // (Offset,Value)-Pair #7 + { 0x15, 0x04 }, // (Offset,Value)-Pair #8 + { 0x16, 0x00 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_PSTextureModes+0x21 : retn 4 + { 0x21, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x22, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilFail +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_StencilFail_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_StencilFail+0x19 : mov ecx, 2 + { 0x19, 0xB9 }, // (Offset,Value)-Pair #1 + { 0x1A, 0x02 }, // (Offset,Value)-Pair #2 + { 0x1B, 0x00 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_StencilFail+0x3E : or ecx, 1 + { 0x3E, 0x83 }, // (Offset,Value)-Pair #4 + { 0x3F, 0xC9 }, // (Offset,Value)-Pair #5 + { 0x40, 0x01 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_StencilFail+0x48 : mov dword ptr [eax], 0x00041D84 + { 0x48, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x49, 0x00 }, // (Offset,Value)-Pair #8 + { 0x4A, 0x84 }, // (Offset,Value)-Pair #9 + { 0x4B, 0x1D }, // (Offset,Value)-Pair #10 + { 0x4C, 0x04 }, // (Offset,Value)-Pair #11 + { 0x4D, 0x00 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_CullMode +// ****************************************************************** +SOOVPA<15> IDirect3DDevice8_SetRenderState_CullMode_1_0_3925 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_CullMode+0x42 : mov dword ptr [eax+8], 0x4039C + { 0x42, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x43, 0x40 }, // (Offset,Value)-Pair #2 + { 0x44, 0x08 }, // (Offset,Value)-Pair #3 + { 0x45, 0x9C }, // (Offset,Value)-Pair #4 + { 0x46, 0x03 }, // (Offset,Value)-Pair #5 + { 0x47, 0x04 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_CullMode+0x49 : add eax, 0x10 + { 0x49, 0x83 }, // (Offset,Value)-Pair #7 + { 0x4A, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x4B, 0x10 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_CullMode+0x5F : retn 4 + { 0x5F, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x60, 0x04 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_CullMode+0x4D : add edx, 0x404 + { 0x4D, 0x81 }, // (Offset,Value)-Pair #12 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #14 + { 0x50, 0x04 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_Simple +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_Simple_1_0_3925 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_Simple+0x05 : add eax, 0x08 + { 0x05, 0x83 }, // (Offset,Value)-Pair #1 + { 0x06, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x07, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_Simple+0x0E : jnb +0x0C + { 0x0E, 0x73 }, // (Offset,Value)-Pair #4 + { 0x0F, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_Simple+0x15 : mov [eax-8], ecx + { 0x15, 0x89 }, // (Offset,Value)-Pair #6 + { 0x16, 0x48 }, // (Offset,Value)-Pair #7 + { 0x17, 0xF8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_Simple+0x18 : mov [eax-4], ecx + { 0x18, 0x89 }, // (Offset,Value)-Pair #9 + { 0x19, 0x50 }, // (Offset,Value)-Pair #10 + { 0x1A, 0xFC }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_Simple+0x2B : jmp +0xD3 + { 0x2B, 0xEB }, // (Offset,Value)-Pair #12 + { 0x2C, 0xD3 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTransform +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTransform_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTransform+0x3A : fld dword ptr [edx+0x28] + { 0x3A, 0xD9 }, // (Offset,Value)-Pair #1 + { 0x3B, 0x42 }, // (Offset,Value)-Pair #2 + { 0x3C, 0x28 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTransform+0x47 : test ah, 0x44 + { 0x47, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x48, 0xC4 }, // (Offset,Value)-Pair #5 + { 0x49, 0x44 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetTransform+0x55 : fnstsw ax + { 0x55, 0xDF }, // (Offset,Value)-Pair #7 + { 0x56, 0xE0 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetTransform+0x7A : fdivp st(1), st + { 0x7A, 0xDE }, // (Offset,Value)-Pair #9 + { 0x7B, 0xF9 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_FogColor +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_FogColor_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_FogColor+0x2E : mov dword ptr [eax], 0x402A8 + { 0x2E, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x2F, 0x00 }, // (Offset,Value)-Pair #2 + { 0x30, 0xA8 }, // (Offset,Value)-Pair #3 + { 0x31, 0x02 }, // (Offset,Value)-Pair #4 + { 0x32, 0x04 }, // (Offset,Value)-Pair #5 + { 0x33, 0x00 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_FogColor+0x37 : add eax, 0x08 + { 0x37, 0x83 }, // (Offset,Value)-Pair #7 + { 0x38, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x39, 0x08 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_FogColor+0x44 : retn 0x04 + { 0x44, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x45, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_FillMode +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_FillMode_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_FillMode+0x23 : mov dword ptr [eax], 0x8038C + { 0x23, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x24, 0x00 }, // (Offset,Value)-Pair #2 + { 0x25, 0x8C }, // (Offset,Value)-Pair #3 + { 0x26, 0x03 }, // (Offset,Value)-Pair #4 + { 0x27, 0x08 }, // (Offset,Value)-Pair #5 + { 0x28, 0x00 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_FillMode+0x2F : add eax, 0x0C + { 0x2F, 0x83 }, // (Offset,Value)-Pair #7 + { 0x30, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x31, 0x0C }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_FillMode+0x3B : retn 0x04 + { 0x3B, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x3C, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilEnable +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_StencilEnable_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_StencilEnable+0x45 : mov dword ptr [eax], 0x41D84 + { 0x45, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x46, 0x00 }, // (Offset,Value)-Pair #2 + { 0x47, 0x84 }, // (Offset,Value)-Pair #3 + { 0x48, 0x1D }, // (Offset,Value)-Pair #4 + { 0x49, 0x04 }, // (Offset,Value)-Pair #5 + { 0x4A, 0x00 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_StencilEnable+0x71 : add eax, 0x08 + { 0x71, 0x83 }, // (Offset,Value)-Pair #7 + { 0x72, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x73, 0x08 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_StencilEnable+0x7D : retn 0x04 + { 0x7D, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x7E, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x0C : mov eax, [esi+0x040C] + { 0x0C, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0D, 0x86 }, // (Offset,Value)-Pair #2 + { 0x0E, 0x0C }, // (Offset,Value)-Pair #3 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #4 + { 0x10, 0x00 }, // (Offset,Value)-Pair #5 + { 0x11, 0x00 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x22 : cmp dl, 0x20 + { 0x22, 0x80 }, // (Offset,Value)-Pair #7 + { 0x23, 0xFA }, // (Offset,Value)-Pair #8 + { 0x24, 0x20 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x74 : retn 0x04 + { 0x74, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x75, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ZBias +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_ZBias_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_ZBias+0x0B : setnz al + { 0x0B, 0x0F }, // (Offset,Value)-Pair #1 + { 0x0C, 0x95 }, // (Offset,Value)-Pair #2 + { 0x0D, 0xC0 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_ZBias+0x14 : fild [esp+0x10] + { 0x14, 0xDB }, // (Offset,Value)-Pair #4 + { 0x15, 0x44 }, // (Offset,Value)-Pair #5 + { 0x16, 0x24 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_ZBias+0x45 : push 0x4E + { 0x45, 0x6A }, // (Offset,Value)-Pair #7 + { 0x46, 0x4E }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_ZBias+0x45 : retn 0x04 + { 0x71, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x72, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ZEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_ZEnable_1_0_3925 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_ZEnable+0x13 : jz +0x11 + { 0x13, 0x74 }, // (Offset,Value)-Pair #1 + { 0x14, 0x11 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x15 : mov edx, [esi+0x0410] + { 0x15, 0x8B }, // (Offset,Value)-Pair #3 + { 0x16, 0x96 }, // (Offset,Value)-Pair #4 + { 0x17, 0x10 }, // (Offset,Value)-Pair #5 + { 0x18, 0x04 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x28 : mov dword ptr [eax], 0x4030 + { 0x28, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x29, 0x00 }, // (Offset,Value)-Pair #8 + { 0x2A, 0x0C }, // (Offset,Value)-Pair #9 + { 0x2B, 0x03 }, // (Offset,Value)-Pair #10 + { 0x2C, 0x04 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x69 : retn 0x04 + { 0x69, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x6A, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Release +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_Release_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Release+0x07 : mov eax, [edi+0x0408] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x87 }, // (Offset,Value)-Pair #2 + { 0x09, 0x08 }, // (Offset,Value)-Pair #3 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_Release+0x0D : cmp eax, 1 + { 0x0D, 0x83 }, // (Offset,Value)-Pair #5 + { 0x0E, 0xF8 }, // (Offset,Value)-Pair #6 + { 0x0F, 0x01 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_Release+0x1B : mov ecx, 0x0AE4 + { 0x1B, 0xB9 }, // (Offset,Value)-Pair #8 + { 0x1C, 0xE4 }, // (Offset,Value)-Pair #9 + { 0x1D, 0x0A }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_Release+0x2E : dec eax + { 0x2E, 0x48 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Present +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_Present_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Present+0x0A : push 2 + { 0x0A, 0x6A }, // (Offset,Value)-Pair #1 + { 0x0B, 0x02 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_Present+0x11 : mov eax, [esi+2518] + { 0x11, 0x8B }, // (Offset,Value)-Pair #3 + { 0x12, 0x86 }, // (Offset,Value)-Pair #4 + { 0x13, 0x18 }, // (Offset,Value)-Pair #5 + { 0x14, 0x25 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_Present+0xBE : shr ebx, 1 + { 0xBE, 0xD1 }, // (Offset,Value)-Pair #7 + { 0xBF, 0xEB }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_Present+0xC0 : xor edi, edi + { 0xC0, 0x33 }, // (Offset,Value)-Pair #9 + { 0xC1, 0xFF }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetShaderConstantMode +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetShaderConstantMode_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetShaderConstantMode+0x26 : mov [ebp+0x2140], eax + { 0x26, 0x89 }, // (Offset,Value)-Pair #1 + { 0x27, 0x85 }, // (Offset,Value)-Pair #2 + { 0x28, 0x40 }, // (Offset,Value)-Pair #3 + { 0x29, 0x21 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetShaderConstantMode+0x51 : mov dword ptr [ebx+0x04], 0x3C + { 0x51, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x52, 0x43 }, // (Offset,Value)-Pair #6 + { 0x53, 0x04 }, // (Offset,Value)-Pair #7 + { 0x54, 0x3C }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetShaderConstantMode+0xE4 : add ebx, 0x0124 + { 0xE4, 0x81 }, // (Offset,Value)-Pair #9 + { 0xE5, 0xC3 }, // (Offset,Value)-Pair #10 + { 0xE6, 0x24 }, // (Offset,Value)-Pair #11 + { 0xE7, 0x01 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetBackBuffer +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetBackBuffer_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetBackBuffer+0x04 : cmp eax, 0xFFFFFFFF + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetBackBuffer+0x0D : jnz +0x07 + { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0E, 0x07 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetBackBuffer+0x1E : lea eax, [ecx+eax*8+0x2150] + { 0x1E, 0x8D }, // (Offset,Value)-Pair #6 + { 0x1F, 0x84 }, // (Offset,Value)-Pair #7 + { 0x20, 0xC1 }, // (Offset,Value)-Pair #8 + { 0x21, 0x50 }, // (Offset,Value)-Pair #9 + { 0x22, 0x21 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_GetBackBuffer+0x31 : retn 0x0C + { 0x31, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x32, 0x0C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetRenderTarget +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_GetRenderTarget_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetRenderTarget+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_GetRenderTarget+0x05 : mov eax, [eax + 0x040C] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x80 }, // (Offset,Value)-Pair #3 + { 0x07, 0x0C }, // (Offset,Value)-Pair #4 + { 0x08, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetRenderTarget+0x11 : mov [ecx], eax + { 0x11, 0x89 }, // (Offset,Value)-Pair #6 + { 0x12, 0x01 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_GetRenderTarget+0x1D : retn 0x04 + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x1E, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDepthStencilSurface +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_GetDepthStencilSurface_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetDepthStencilSurface+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_GetDepthStencilSurface+0x06 : mov eax, [eax + 0x0410] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x80 }, // (Offset,Value)-Pair #3 + { 0x07, 0x10 }, // (Offset,Value)-Pair #4 + { 0x08, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetDepthStencilSurface+0x13 : jnz +0x04 + { 0x13, 0x74 }, // (Offset,Value)-Pair #6 + { 0x14, 0x0B }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_GetDepthStencilSurface+0x16 : call [addr] + { 0x16, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetDepthStencilSurface+0x25 : retn + { 0x25, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x26, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateVertexBuffer +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_CreateVertexBuffer_1_0_3925 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateVertexBuffer+0x03 : push 0x40 + { 0x03, 0x6A }, // (Offset,Value)-Pair #1 + { 0x04, 0x40 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreateVertexBuffer+0x10 : mov eax, [esp+8] + { 0x10, 0x8B }, // (Offset,Value)-Pair #3 + { 0x11, 0x44 }, // (Offset,Value)-Pair #4 + { 0x12, 0x24 }, // (Offset,Value)-Pair #5 + { 0x13, 0x08 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_CreateVertexBuffer+0x48 : mov dword ptr [esi], 0x01000001 + { 0x48, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x49, 0x06 }, // (Offset,Value)-Pair #8 + { 0x4A, 0x01 }, // (Offset,Value)-Pair #9 + { 0x4B, 0x00 }, // (Offset,Value)-Pair #10 + { 0x4D, 0x01 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_CreateVertexBuffer+0x53 : retn 0x14 + { 0x53, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x54, 0x14 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DVertexBuffer8_Lock +// ****************************************************************** +SOOVPA<11> IDirect3DVertexBuffer8_Lock_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DVertexBuffer8_Lock+0x01 : mov bl, [esp+0x18] + { 0x01, 0x8A }, // (Offset,Value)-Pair #1 + { 0x02, 0x5C }, // (Offset,Value)-Pair #2 + { 0x03, 0x24 }, // (Offset,Value)-Pair #3 + { 0x04, 0x18 }, // (Offset,Value)-Pair #4 + + // IDirect3DVertexBuffer8_Lock+0x09 : jnz +0x24 + { 0x09, 0x75 }, // (Offset,Value)-Pair #5 + { 0x0A, 0x1E }, // (Offset,Value)-Pair #6 + + // IDirect3DVertexBuffer8_Lock+0x29 : test bl, 0xA0 + { 0x29, 0xF6 }, // (Offset,Value)-Pair #7 + { 0x2A, 0xC3 }, // (Offset,Value)-Pair #8 + { 0x2B, 0xA0 }, // (Offset,Value)-Pair #9 + + // IDirect3DVertexBuffer8_Lock+0x4A : retn 0x14 + { 0x4A, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x4B, 0x14 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DResource8_Register +// ****************************************************************** +SOOVPA<19> IDirect3DResource8_Register_1_0_3925 = +{ + 0, // Large == 0 + 19, // Count == 19 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DResource8_Register+0x00 : mov ecx, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x4C }, // (Offset,Value)-Pair #2 + { 0x03, 0x04 }, // (Offset,Value)-Pair #3 + + // IDirect3DResource8_Register+0x04 : mov edx, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #4 + { 0x05, 0x54 }, // (Offset,Value)-Pair #5 + { 0x07, 0x08 }, // (Offset,Value)-Pair #6 + + // IDirect3DResource8_Register+0x08 : mov eax, [ecx+0x04] + { 0x08, 0x8B }, // (Offset,Value)-Pair #7 + { 0x09, 0x41 }, // (Offset,Value)-Pair #8 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DResource8_Register+0x0F : and edx, 0x00070000 + { 0x0F, 0x81 }, // (Offset,Value)-Pair #10 + { 0x10, 0xE2 }, // (Offset,Value)-Pair #11 + { 0x13, 0x07 }, // (Offset,Value)-Pair #12 + + // IDirect3DResource8_Register+0x15 : cmp edx, 0x00020000 + { 0x15, 0x81 }, // (Offset,Value)-Pair #13 + { 0x16, 0xFA }, // (Offset,Value)-Pair #14 + { 0x19, 0x02 }, // (Offset,Value)-Pair #15 + + // IDirect3DResource8_Register+0x1B : jnz +0x05 + { 0x1B, 0x74 }, // (Offset,Value)-Pair #16 + { 0x1C, 0x05 }, // (Offset,Value)-Pair #17 + + // IDirect3DResource8_Register+0x25 : retn 0x08 + { 0x25, 0xC2 }, // (Offset,Value)-Pair #18 + { 0x26, 0x08 }, // (Offset,Value)-Pair #19 + } +}; + +// ****************************************************************** +// * IDirect3DResource8_Release +// ****************************************************************** +SOOVPA<11> IDirect3DResource8_Release_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DResource8_Release+0x09 : and ecx, 0xFFFF + { 0x09, 0x81 }, // (Offset,Value)-Pair #1 + { 0x0A, 0xE1 }, // (Offset,Value)-Pair #2 + { 0x0B, 0xFF }, // (Offset,Value)-Pair #3 + { 0x0C, 0xFF }, // (Offset,Value)-Pair #4 + + // IDirect3DResource8_Release+0x14 : and eax, 0x00070000 + { 0x14, 0x25 }, // (Offset,Value)-Pair #5 + { 0x17, 0x07 }, // (Offset,Value)-Pair #6 + + // IDirect3DResource8_Release+0x19 : cmp eax, 0x00050000 + { 0x19, 0x3D }, // (Offset,Value)-Pair #7 + { 0x1C, 0x05 }, // (Offset,Value)-Pair #8 + + // IDirect3DResource8_Release+0x3E : pop esi + { 0x3E, 0x5E }, // (Offset,Value)-Pair #9 + + // IDirect3DResource8_Release+0x4B : retn 0x04 + { 0x4B, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x4C, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DResource8_AddRef +// ****************************************************************** +SOOVPA<10> IDirect3DResource8_AddRef_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DResource8_AddRef+0x07 : test eax, 0xFFFF + { 0x07, 0xA9 }, // (Offset,Value)-Pair #1 + { 0x08, 0xFF }, // (Offset,Value)-Pair #2 + { 0x09, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DResource8_AddRef+0x0E : and eax, 0x00070000 + { 0x0E, 0x25 }, // (Offset,Value)-Pair #4 + { 0x11, 0x07 }, // (Offset,Value)-Pair #5 + + // IDirect3DResource8_AddRef+0x13 : cmp eax, 0x00050000 + { 0x13, 0x3D }, // (Offset,Value)-Pair #6 + { 0x16, 0x05 }, // (Offset,Value)-Pair #7 + + // IDirect3DResource8_AddRef+0x33 : pop esi + { 0x33, 0x5E }, // (Offset,Value)-Pair #8 + + // IDirect3DResource8_AddRef+0x34 : retn 0x04 + { 0x34, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x35, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DResource8_IsBusy +// ****************************************************************** +SOOVPA<11> IDirect3DResource8_IsBusy_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DResource8_IsBusy+0x24 : test eax, 0x780000 + { 0x24, 0xA9 }, // (Offset,Value)-Pair #1 + { 0x25, 0x00 }, // (Offset,Value)-Pair #2 + { 0x26, 0x00 }, // (Offset,Value)-Pair #3 + { 0x27, 0x78 }, // (Offset,Value)-Pair #4 + + // IDirect3DResource8_IsBusy+0x35 : jnz +0x44 + { 0x35, 0x75 }, // (Offset,Value)-Pair #5 + { 0x36, 0x44 }, // (Offset,Value)-Pair #6 + + // IDirect3DResource8_IsBusy+0x4E : mov eax, [ecx+0x14] + { 0x4E, 0x8B }, // (Offset,Value)-Pair #7 + { 0x4F, 0x41 }, // (Offset,Value)-Pair #8 + { 0x50, 0x14 }, // (Offset,Value)-Pair #9 + + // IDirect3DResource8_IsBusy+0x79 : jnb +0x09 + { 0x79, 0x73 }, // (Offset,Value)-Pair #10 + { 0x7A, 0x09 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DSurface8_LockRect +// ****************************************************************** +SOOVPA<16> IDirect3DSurface8_LockRect_1_0_3925 = +{ + 0, // Large == 0 + 16, // Count == 16 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DSurface8_LockRect+0x00 : mov eax, [esp+0x10] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x10 }, // (Offset,Value)-Pair #4 + + // IDirect3DSurface8_LockRect+0x04 : mov ecx, [esp+0x0C] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x4C }, // (Offset,Value)-Pair #6 + { 0x06, 0x24 }, // (Offset,Value)-Pair #7 + { 0x07, 0x0C }, // (Offset,Value)-Pair #8 + + // IDirect3DSurface8_LockRect+0x0C : push eax + { 0x0C, 0x50 }, // (Offset,Value)-Pair #9 + + // IDirect3DSurface8_LockRect+0x11 : push ecx; push edx; push 0; push 0 + { 0x11, 0x51 }, // (Offset,Value)-Pair #10 + { 0x12, 0x52 }, // (Offset,Value)-Pair #11 + { 0x13, 0x6A }, // (Offset,Value)-Pair #12 + { 0x15, 0x6A }, // (Offset,Value)-Pair #13 + + // IDirect3DSurface8_LockRect+0x18 : call [abs] + { 0x18, 0xE8 }, // (Offset,Value)-Pair #14 + + // IDirect3DSurface8_LockRect+0x11 : retn 0x10 + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #15 + { 0x1E, 0x10 }, // (Offset,Value)-Pair #16 + } +}; + +// ****************************************************************** +// * IDirect3DPalette8_Lock +// ****************************************************************** +SOOVPA<13> IDirect3DPalette8_Lock_1_0_3925 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DPalette8_Lock+0x00 : test [esp+0x0C], 0xA0 + { 0x00, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x0C }, // (Offset,Value)-Pair #4 + { 0x04, 0xA0 }, // (Offset,Value)-Pair #5 + + // IDirect3DPalette8_Lock+0x0A : jnz +0x06 + { 0x0A, 0x75 }, // (Offset,Value)-Pair #6 + { 0x0B, 0x06 }, // (Offset,Value)-Pair #7 + + // IDirect3DPalette8_Lock+0x18 : mov ecx, [esp+0x0C] + { 0x18, 0x8B }, // (Offset,Value)-Pair #8 + { 0x19, 0x4C }, // (Offset,Value)-Pair #9 + { 0x1A, 0x24 }, // (Offset,Value)-Pair #10 + { 0x1B, 0x0C }, // (Offset,Value)-Pair #11 + + // IDirect3DPalette8_Lock+0x1C : mov [ecx], eax + { 0x1C, 0x89 }, // (Offset,Value)-Pair #12 + { 0x1D, 0x01 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DTexture8_LockRect +// ****************************************************************** +SOOVPA<17> IDirect3DTexture8_LockRect_1_0_3925 = +{ + 0, // Large == 0 + 17, // Count == 17 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DTexture8_LockRect+0x00 : mov eax, [esp+0x14] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x14 }, // (Offset,Value)-Pair #4 + + // IDirect3DTexture8_LockRect+0x04 : mov ecx, [esp+0x10] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x4C }, // (Offset,Value)-Pair #6 + { 0x06, 0x24 }, // (Offset,Value)-Pair #7 + { 0x07, 0x10 }, // (Offset,Value)-Pair #8 + + // IDirect3DTexture8_LockRect+0x0C : push eax, push ecx, push edx, push eax, push 0 + { 0x0C, 0x50 }, // (Offset,Value)-Pair #9 + { 0x11, 0x51 }, // (Offset,Value)-Pair #10 + { 0x16, 0x52 }, // (Offset,Value)-Pair #11 + { 0x17, 0x50 }, // (Offset,Value)-Pair #12 + { 0x18, 0x6A }, // (Offset,Value)-Pair #13 + { 0x19, 0x00 }, // (Offset,Value)-Pair #14 + + // IDirect3DTexture8_LockRect+0x1B : call [addr] + { 0x1B, 0xE8 }, // (Offset,Value)-Pair #15 + + // IDirect3DTexture8_LockRect+0x20 : retn 0x14 + { 0x20, 0xC2 }, // (Offset,Value)-Pair #16 + { 0x21, 0x14 }, // (Offset,Value)-Pair #17 + } +}; + +// ****************************************************************** +// * IDirect3DVolumeTexture8_LockBox +// ****************************************************************** +SOOVPA<11> IDirect3DVolumeTexture8_LockBox_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DVolumeTexture8_LockBox+0x08 : test bl, 0x20 + { 0x08, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x09, 0xC3 }, // (Offset,Value)-Pair #2 + { 0x0A, 0x20 }, // (Offset,Value)-Pair #3 + + // IDirect3DVolumeTexture8_LockBox+0x40 : test bl, 0x40 + { 0x40, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x41, 0xC3 }, // (Offset,Value)-Pair #5 + { 0x42, 0x40 }, // (Offset,Value)-Pair #6 + + // IDirect3DVolumeTexture8_LockBox+0x83 : lea ecx, [eax+edx] + { 0x83, 0x8D }, // (Offset,Value)-Pair #7 + { 0x84, 0x0C }, // (Offset,Value)-Pair #8 + { 0x85, 0x10 }, // (Offset,Value)-Pair #9 + + // IDirect3DVolumeTexture8_LockBox+0x99 : retn 0x14 + { 0x99, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x9A, 0x14 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DCubeTexture8_LockRect +// ****************************************************************** +SOOVPA<11> IDirect3DCubeTexture8_LockRect_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DCubeTexture8_LockRect+0x06 : test bl, 0x20 + { 0x06, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC3 }, // (Offset,Value)-Pair #2 + { 0x08, 0x20 }, // (Offset,Value)-Pair #3 + + // IDirect3DCubeTexture8_LockRect+0x3F : test bl, 0x40 + { 0x3F, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x40, 0xC3 }, // (Offset,Value)-Pair #5 + { 0x41, 0x40 }, // (Offset,Value)-Pair #6 + + // IDirect3DCubeTexture8_LockRect+0x71 : shr edx, 0x03 + { 0x71, 0xC1 }, // (Offset,Value)-Pair #7 + { 0x72, 0xEA }, // (Offset,Value)-Pair #8 + { 0x73, 0x03 }, // (Offset,Value)-Pair #9 + + // IDirect3DCubeTexture8_LockRect+0x98 : retn 0x18 + { 0x98, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x99, 0x18 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DTexture8_GetSurfaceLevel +// ****************************************************************** +SOOVPA<11> IDirect3DTexture8_GetSurfaceLevel_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DTexture8_GetSurfaceLevel+0x08 : lea [esp+0x14] + { 0x08, 0x8D }, // (Offset,Value)-Pair #1 + { 0x0B, 0x14 }, // (Offset,Value)-Pair #2 + + // IDirect3DTexture8_GetSurfaceLevel+0x17 : mov edx, [esp+0x24] + { 0x17, 0x8B }, // (Offset,Value)-Pair #3 + { 0x1A, 0x24 }, // (Offset,Value)-Pair #4 + + // IDirect3DTexture8_GetSurfaceLevel+0x20 : lea ecx, [esp+0x28] + { 0x23, 0x28 }, // (Offset,Value)-Pair #4 + + // IDirect3DTexture8_GetSurfaceLevel+0x24 : push ecx + { 0x24, 0x51 }, // (Offset,Value)-Pair #6 + + // IDirect3DTexture8_GetSurfaceLevel+0x25 : push edx + { 0x25, 0x52 }, // (Offset,Value)-Pair #7 + + // IDirect3DTexture8_GetSurfaceLevel+0x26 : push 0 + { 0x26, 0x6A }, // (Offset,Value)-Pair #8 + + // IDirect3DTexture8_GetSurfaceLevel+0x43 : call [abs] + { 0x43, 0xE8 }, // (Offset,Value)-Pair #9 + + // IDirect3DTexture8_GetSurfaceLevel+0x4C : retn 0x0C + { 0x4C, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x4D, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * Lock2DSurface +// ****************************************************************** +SOOVPA<11> Lock2DSurface_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC3 }, // (Offset,Value)-Pair #2 + { 0x08, 0x20 }, // (Offset,Value)-Pair #3 + + { 0x3F, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x40, 0xC3 }, // (Offset,Value)-Pair #5 + { 0x41, 0x40 }, // (Offset,Value)-Pair #6 + + { 0x71, 0xC1 }, // (Offset,Value)-Pair #7 + { 0x72, 0xEA }, // (Offset,Value)-Pair #8 + { 0x73, 0x03 }, // (Offset,Value)-Pair #9 + + { 0x98, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x99, 0x18 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * Get2DSurfaceDesc +// ****************************************************************** +SOOVPA<10> Get2DSurfaceDesc_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // 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+0x56 : cmp eax, [edx+0x2154] + { 0x56, 0x3B }, // (Offset,Value)-Pair #5 + { 0x57, 0x82 }, // (Offset,Value)-Pair #6 + { 0x58, 0x54 }, // (Offset,Value)-Pair #7 + { 0x59, 0x21 }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDesc+0xAE : retn 0x0C + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xAF, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * D3DDevice_GetVertexShaderSize +// ****************************************************************** +SOOVPA<7> X_D3DDevice_GetVertexShaderSize_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x85 }, + { 0x07, 0x09 }, + { 0x0A, 0x24 }, + { 0x0D, 0x51 }, + { 0x10, 0x10 }, + { 0x13, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetGammaRamp +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetGammaRamp_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetGammaRamp+0x11 : and eax, 1; push ebx + { 0x11, 0x83 }, // (Offset,Value)-Pair #1 + { 0x12, 0xE0 }, // (Offset,Value)-Pair #2 + { 0x13, 0x01 }, // (Offset,Value)-Pair #3 + { 0x14, 0x53 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetGammaRamp+0x2F : rep movsd + { 0x2F, 0xF3 }, // (Offset,Value)-Pair #5 + { 0x30, 0xA5 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetGammaRamp+0x3E : push ebx; mov ecx, edx + { 0x3E, 0x53 }, // (Offset,Value)-Pair #7 + { 0x3F, 0x8B }, // (Offset,Value)-Pair #8 + { 0x40, 0xCA }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetMaterial +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetMaterial_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetMaterial+0x0B : lea edi, [eax+0xB18] + { 0x0B, 0x8D }, // (Offset,Value)-Pair #1 + { 0x0C, 0xB8 }, // (Offset,Value)-Pair #2 + { 0x0D, 0x18 }, // (Offset,Value)-Pair #3 + { 0x0E, 0x0B }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetMaterial+0x11 : mov ecx, 0x11 + { 0x11, 0xB9 }, // (Offset,Value)-Pair #5 + { 0x12, 0x11 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetMaterial+0x1C : or ecx, 0x20 + { 0x1B, 0x83 }, // (Offset,Value)-Pair #7 + { 0x1C, 0xC9 }, // (Offset,Value)-Pair #8 + { 0x1D, 0x20 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetMaterial+0x23 : retn 0x04 + { 0x23, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x24, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_AddRef +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_AddRef_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_AddRef+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_AddRef+0x05 : mov ecx, [eax+0x0408] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x88 }, // (Offset,Value)-Pair #3 + { 0x07, 0x08 }, // (Offset,Value)-Pair #4 + { 0x08, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_AddRef+0x0B : inc ecx + { 0x0B, 0x41 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_AddRef+0x05 : mov [eax+0x0408], ecx + { 0x0C, 0x89 }, // (Offset,Value)-Pair #7 + { 0x0D, 0x88 }, // (Offset,Value)-Pair #8 + { 0x0E, 0x08 }, // (Offset,Value)-Pair #9 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Unknown1 +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_Unknown1_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Unknown1+0x00 : xor eax, eax + { 0x00, 0x33 }, + { 0x01, 0xC0 }, + // IDirect3DDevice8_Unknown1+0x13 : call ds:AvSendTVEncoderOption + { 0x13, 0xFF }, + { 0x14, 0x15 }, + { 0x15, 0x10 }, + { 0x16, 0x49 }, + { 0x17, 0x2A }, + { 0x18, 0x00 }, + // IDirect3DDevice8_Unknown1+0x1E : retn + { 0x1E, 0xC3 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetViewport +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_GetViewport_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetViewport+0x05 : push esi; push edi + { 0x05, 0x56 }, // (Offset,Value)-Pair #1 + { 0x06, 0x57 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetViewport+0x0B : lea esi, [eax+0x0B00] + { 0x0B, 0x8D }, // (Offset,Value)-Pair #3 + { 0x0C, 0xB0 }, // (Offset,Value)-Pair #4 + { 0x0D, 0x00 }, // (Offset,Value)-Pair #5 + { 0x0E, 0x0B }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetViewport+0x11 : mov ecx, 6 + { 0x11, 0xB9 }, // (Offset,Value)-Pair #7 + { 0x12, 0x06 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetViewport+0x1A : retn 0x04 + { 0x1A, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1B, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetGammaRamp +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_GetGammaRamp_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x8B }, + { 0x0A, 0x00 }, + { 0x10, 0xE1 }, + { 0x16, 0x0C }, + { 0x1C, 0x00 }, + { 0x22, 0x00 }, + { 0x28, 0x04 }, + } +}; +// ****************************************************************** +// * D3DDevice_GetDisplayFieldStatus +// ****************************************************************** +SOOVPA<14> D3DDevice_GetDisplayFieldStatus_1_0_3925 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetDisplayFieldStatus+0x05 : mov edx, [eax+0x2B28] + { 0x05, 0x8B }, + { 0x06, 0x90 }, + { 0x07, 0x28 }, + { 0x08, 0x2B }, + // IDirect3DDevice8_GetDisplayFieldStatus+0x12 : test [eax+0x2510], 0x1200000 + { 0x12, 0xF7 }, + { 0x13, 0x80 }, + { 0x14, 0x10 }, + { 0x15, 0x25 }, + // IDirect3DDevice8_GetDisplayFieldStatus+0x1E : mov dx, 0x80C0 + { 0x1E, 0x66 }, + { 0x1F, 0xBA }, + { 0x20, 0xC0 }, + { 0x21, 0x80 }, + // IDirect3DDevice8_GetDisplayFieldStatus+0x3C : retn 4 + { 0x3C, 0xC2 }, + { 0x3D, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleAntiAlias +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_MultiSampleAntiAlias_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, + { 0x1D, 0x8B }, + { 0x26, 0x8B }, + { 0x2C, 0x8B }, + { 0x38, 0x0B }, + { 0x40, 0x89 }, + { 0x49, 0xC2 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_VertexBlend +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_VertexBlend_1_0_3925 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_VertexBlend+0x0A : or ecx, 2 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #1 + { 0x0B, 0xC9 }, // (Offset,Value)-Pair #2 + { 0x0C, 0x02 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_VertexBlend+0x1A : mov dword ptr [eax], 0x40328 + { 0x1A, 0xC7 }, // (Offset,Value)-Pair #4 + { 0x1B, 0x00 }, // (Offset,Value)-Pair #5 + { 0x1C, 0x28 }, // (Offset,Value)-Pair #6 + { 0x1D, 0x03 }, // (Offset,Value)-Pair #7 + { 0x1E, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_VertexBlend+0x23 : add eax, 8 + { 0x23, 0x83 }, // (Offset,Value)-Pair #9 + { 0x24, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x25, 0x08 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_VertexBlend+0x2F : retn 0x04 + { 0x2F, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x30, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_BackFillMode +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_BackFillMode_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_BackFillMode+0x2B : jnz +0x2 + { 0x2B, 0x75 }, // (Offset,Value)-Pair #1 + { 0x2C, 0x02 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_BackFillMode+0x32 : mov dword ptr [eax], abs + { 0x32, 0xC7 }, // (Offset,Value)-Pair #3 + { 0x33, 0x00 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_BackFillMode+0x3B : add eax, 0x0C; mov [edi], eax; pop edi + { 0x3B, 0x83 }, // (Offset,Value)-Pair #5 + { 0x3C, 0xC0 }, // (Offset,Value)-Pair #6 + { 0x3D, 0x0C }, // (Offset,Value)-Pair #7 + { 0x3E, 0x89 }, // (Offset,Value)-Pair #8 + { 0x3F, 0x07 }, // (Offset,Value)-Pair #9 + { 0x40, 0x5F }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_BackFillMode+0x48 : retn 0x04 + { 0x48, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x49, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_TwoSidedLighting +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetTextureState_TwoSidedLighting_1_0_3925 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x06 : or dword ptr [eax+8], 0x20 + { 0x06, 0x83 }, // (Offset,Value)-Pair #1 + { 0x07, 0x48 }, // (Offset,Value)-Pair #2 + { 0x08, 0x08 }, // (Offset,Value)-Pair #3 + { 0x09, 0x20 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x3B : mov dword ptr [eax], 0x8038C + { 0x3B, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x3C, 0x00 }, // (Offset,Value)-Pair #6 + { 0x3D, 0x8C }, // (Offset,Value)-Pair #7 + { 0x3E, 0x03 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x44 : add eax, 0x0C + { 0x44, 0x83 }, // (Offset,Value)-Pair #9 + { 0x45, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x46, 0x0C }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x51 : retn 0x04 + { 0x51, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x52, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_NormalizeNormals +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x1D : mov [esi], eax + { 0x1D, 0x89 }, // (Offset,Value)-Pair #1 + { 0x1E, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x1F : or dword ptr [esi+8], 2 + { 0x1F, 0x83 }, // (Offset,Value)-Pair #3 + { 0x20, 0x4E }, // (Offset,Value)-Pair #4 + { 0x21, 0x08 }, // (Offset,Value)-Pair #5 + { 0x22, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x2A : retn 0x04 + { 0x2A, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x2B, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_FrontFace +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_FrontFace_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_FrontFace+0x00 : push esi + { 0x00, 0x56 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_FrontFace+0x07 : push esi + { 0x07, 0x56 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_FrontFace+0xD : mov ecx, [esp+0x08] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #3 + { 0x0E, 0x4C }, // (Offset,Value)-Pair #4 + { 0x0F, 0x24 }, // (Offset,Value)-Pair #5 + { 0x10, 0x08 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_FrontFace+0x1A : add eax, 8 + { 0x1A, 0x83 }, // (Offset,Value)-Pair #7 + { 0x1B, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x1C, 0x08 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_TextureFactor +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_TextureFactor_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_TextureFactor+0x07 : mov eax, [esi+0x0414] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x86 }, // (Offset,Value)-Pair #2 + { 0x09, 0x14 }, // (Offset,Value)-Pair #3 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x2E : rep stosd + { 0x2E, 0xF3 }, // (Offset,Value)-Pair #5 + { 0x2F, 0xAB }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x3C : retn 0x04 + { 0x3C, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x3D, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x49 : retn 0x04 + { 0x49, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x4A, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_LogicOp +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_LogicOp_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_LogicOp+0x11 : test ecx, ecx + { 0x11, 0x85 }, // (Offset,Value)-Pair #1 + { 0x12, 0xC9 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_LogicOp+0x2D : mov dword ptr [eax], 0x817BC + { 0x2D, 0xC7 }, // (Offset,Value)-Pair #3 + { 0x2E, 0x00 }, // (Offset,Value)-Pair #4 + { 0x2F, 0xBC }, // (Offset,Value)-Pair #5 + { 0x30, 0x17 }, // (Offset,Value)-Pair #6 + { 0x31, 0x08 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_LogicOp+0x49 : retn 0x04 + { 0x49, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x4A, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_EdgeAntiAlias +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x17 : mov [eax+0x04], ecx + { 0x17, 0x89 }, // (Offset,Value)-Pair #1 + { 0x18, 0x48 }, // (Offset,Value)-Pair #2 + { 0x19, 0x04 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x1A : mov [eax+0x08], ecx + { 0x1A, 0x89 }, // (Offset,Value)-Pair #4 + { 0x1B, 0x48 }, // (Offset,Value)-Pair #5 + { 0x1C, 0x08 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x1D : add eax, 0x0C + { 0x1D, 0x83 }, // (Offset,Value)-Pair #7 + { 0x1E, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x1F, 0x0C }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x29 : retn 0x04 + { 0x29, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x2A, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleMask +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_MultiSampleMask_1_0_3925 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_MultiSampleMask+0x0B : mov ecx, esi + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0xCE }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_MultiSampleMask+0x32 : and ecx, 0x0F; shl edx, 0x10 + { 0x32, 0x83 }, // (Offset,Value)-Pair #3 + { 0x33, 0xE1 }, // (Offset,Value)-Pair #4 + { 0x34, 0x0F }, // (Offset,Value)-Pair #5 + { 0x35, 0xC1 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_MultiSampleMask+0x3A : mov dword ptr [eax], 0x41D7C + { 0x3A, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x3B, 0x00 }, // (Offset,Value)-Pair #8 + { 0x3C, 0x7C }, // (Offset,Value)-Pair #9 + { 0x3D, 0x1D }, // (Offset,Value)-Pair #10 + { 0x3E, 0x04 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_MultiSampleMask+0x49 : retn 0x04 + { 0x49, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x4A, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleMode +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_MultiSampleMode_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x05 : mov ecx, [esp+4] + { 0x05, 0x8B }, // (Offset,Value)-Pair #1 + { 0x06, 0x4C }, // (Offset,Value)-Pair #2 + { 0x07, 0x24 }, // (Offset,Value)-Pair #3 + { 0x08, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x0F : mov edx, [eax+0x410] + { 0x0F, 0x8B }, // (Offset,Value)-Pair #5 + { 0x10, 0x90 }, // (Offset,Value)-Pair #6 + { 0x11, 0x10 }, // (Offset,Value)-Pair #7 + { 0x12, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x15 : mov eax, [eax+0x40C] + { 0x15, 0x8B }, // (Offset,Value)-Pair #9 + { 0x16, 0x80 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x22 : retn 0x04 + { 0x22, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x23, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * D3DDevice_PersistDisplay +// ****************************************************************** +SOOVPA<14> D3DDevice_PersistDisplay_1_0_3925 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // D3DDevice_PersistDisplay+0x25 : mov eax, [ebx+0x408] + { 0x25, 0x8B }, + { 0x26, 0x83 }, + { 0x27, 0x08 }, + { 0x28, 0x04 }, + { 0x29, 0x00 }, + { 0x2A, 0x00 }, + // D3DDevice_PersistDisplay+0x3A : lea edi, [ebx+0x2308] + { 0x3a, 0x8D }, + { 0x3B, 0xBB }, + { 0x3C, 0x08 }, + { 0x3D, 0x23 }, + { 0x3E, 0x00 }, + { 0x3F, 0x00 }, + // D3DDevice_PersistDisplay+0x70 : shl edx, cl + { 0x70, 0xD3 }, + { 0x71, 0xE2 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ShadowFunc +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_3925 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x00 : push esi + { 0x00, 0x56 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x11 : mov dword ptr [eax], 0x41E6C + { 0x11, 0xC7 }, // (Offset,Value)-Pair #2 + { 0x12, 0x00 }, // (Offset,Value)-Pair #3 + { 0x13, 0x6C }, // (Offset,Value)-Pair #4 + { 0x14, 0x1E }, // (Offset,Value)-Pair #5 + { 0x15, 0x04 }, // (Offset,Value)-Pair #6 + { 0x16, 0x00 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x17 : lea edx, [ecx-0x0200] + { 0x17, 0x8D }, // (Offset,Value)-Pair #8 + { 0x18, 0x91 }, // (Offset,Value)-Pair #9 + { 0x19, 0x00 }, // (Offset,Value)-Pair #10 + { 0x1A, 0xFE }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x20 : add eax, 0x08 + { 0x20, 0x83 }, // (Offset,Value)-Pair #12 + { 0x21, 0xC0 }, // (Offset,Value)-Pair #13 + { 0x22, 0x08 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_LineWidth +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_LineWidth_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_LineWidth+0x15 : fmul dword ptr [esi+0x508] + { 0x15, 0xD8 }, // (Offset,Value)-Pair #1 + { 0x16, 0x8E }, // (Offset,Value)-Pair #2 + { 0x17, 0x08 }, // (Offset,Value)-Pair #3 + { 0x18, 0x05 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x32 : cmp edi, 0x1FF + { 0x32, 0x81 }, // (Offset,Value)-Pair #5 + { 0x33, 0xFF }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x3A : mov edi, 0x1FF + { 0x3A, 0xBF }, // (Offset,Value)-Pair #7 + { 0x3B, 0xFF }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x5C : retn 0x04 + { 0x5C, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x5D, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_YuvEnable +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_YuvEnable_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_YuvEnable+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x04 : push edi + { 0x04, 0x56 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x0B : push edi + { 0x0B, 0x56 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x1F : mov [esi], eax + { 0x1F, 0x89 }, // (Offset,Value)-Pair #7 + { 0x20, 0x06 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x22 : retn 0x04 + { 0x22, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x23, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_OcclusionCullEnable +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_3925 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x20 : jz +0x05 + { 0x20, 0x74 }, // (Offset,Value)-Pair #1 + { 0x21, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x3B : cmp [abs], 0x1E00 + { 0x3B, 0x81 }, // (Offset,Value)-Pair #3 + { 0x41, 0x00 }, // (Offset,Value)-Pair #4 + { 0x42, 0x1E }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x4A : mov dword ptr [eax], 0x41D84 + { 0x4A, 0xC7 }, // (Offset,Value)-Pair #6 + { 0x4B, 0x00 }, // (Offset,Value)-Pair #7 + { 0x4C, 0x84 }, // (Offset,Value)-Pair #8 + { 0x4D, 0x1D }, // (Offset,Value)-Pair #9 + { 0x4E, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x59 : retn 0x04 + { 0x59, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x5A, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilCullEnable +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetRenderState_StencilCullEnable_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x56 }, + { 0x16, 0x8B }, + { 0x22, 0xB9 }, + { 0x2E, 0xD2 }, + { 0x3A, 0x0C }, + { 0x46, 0x03 }, + { 0x52, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_DrawVerticesUP +// ****************************************************************** +SOOVPA<8> D3DDevice_DrawVerticesUP_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1F, 0x8B }, + { 0x3E, 0xC0 }, + { 0x5E, 0x03 }, + { 0x7E, 0x07 }, + { 0x9E, 0xF0 }, + { 0xBE, 0x40 }, + { 0xDE, 0x75 }, + { 0xFE, 0x8B }, + } +}; + +// ****************************************************************** +// * D3DDevice_DrawIndexedVerticesUP +// ****************************************************************** +SOOVPA<8> D3DDevice_DrawIndexedVerticesUP_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1F, 0x8B }, + { 0x3E, 0x8B }, + { 0x5E, 0xF0 }, + { 0x7E, 0x8B }, + { 0xA2, 0x8B }, + { 0xBE, 0x83 }, + { 0xDE, 0x75 }, + { 0xFE, 0x75 }, + } +}; + +// ****************************************************************** +// * D3DDevice_DrawVertices +// ****************************************************************** +SOOVPA<8> D3DDevice_DrawVertices_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x12, 0x8B }, + { 0x27, 0x8B }, + { 0x3A, 0x89 }, + { 0x4E, 0xFF }, + { 0x62, 0x81 }, + { 0x76, 0x00 }, + { 0x8A, 0x17 }, + { 0x9E, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetDisplayMode +// ****************************************************************** +SOOVPA<7> D3DDevice_GetDisplayMode_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0xB4 }, + { 0x14, 0x8B }, + { 0x1F, 0x10 }, + { 0x2A, 0x1B }, + { 0x35, 0x8B }, + { 0x41, 0x89 }, + { 0x4B, 0x89 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetTextureState_BumpEnv +// ****************************************************************** +SOOVPA<7> D3DDevice_SetTextureState_BumpEnv_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0E, 0x8B }, + { 0x16, 0x8B }, + { 0x22, 0x24 }, + { 0x2E, 0x24 }, + { 0x3A, 0x04 }, + { 0x46, 0x8B }, + { 0x52, 0xB5 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetTextureState_ColorKeyColor +// ****************************************************************** +SOOVPA<7> D3DDevice_SetTextureState_ColorKeyColor_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x56 }, + { 0x0D, 0x8B }, + { 0x13, 0x8D }, + { 0x1A, 0x8B }, + { 0x21, 0x83 }, + { 0x28, 0x07 }, + { 0x2F, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexData4s +// ****************************************************************** +SOOVPA<8> D3DDevice_SetVertexData4s_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x56 }, + { 0x10, 0x08 }, + { 0x19, 0xBF }, + { 0x22, 0x24 }, + { 0x2B, 0x54 }, + { 0x34, 0x24 }, + { 0x3D, 0x08 }, + { 0x46, 0x00 }, + } +}; + +// ****************************************************************** +// * Direct3D_SetPushBufferSize +// ****************************************************************** +SOOVPA<7> Direct3D_SetPushBufferSize_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x07, 0x08 }, + { 0x0D, 0x89 }, + { 0x0E, 0x0D }, + { 0x13, 0xC2 }, + { 0x14, 0x08 }, + } +}; + +// ****************************************************************** +// * D3DResource_GetType +// ****************************************************************** +SOOVPA<7> D3DResource_GetType_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x13, 0x2A }, + { 0x28, 0x00 }, + { 0x3D, 0x00 }, + { 0x52, 0x74 }, + { 0x67, 0x00 }, + { 0x7C, 0x04 }, + { 0x91, 0x00 }, + } +}; + +// ****************************************************************** +// * D3D_AllocContiguousMemory +// ****************************************************************** +SOOVPA<6> D3D_AllocContiguousMemory_1_0_3925 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x04 }, + { 0x0E, 0x6A }, + { 0x16, 0xC2 }, + { 0x17, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_Deferred +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_Deferred_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_Deferred+0x00 : mov eax, ds:(g_DirtyFromRenderState)-148[ecx*4] + { 0x00, 0x8B }, + { 0x01, 0x04 }, + { 0x02, 0x8D }, + // IDirect3DDevice8_SetRenderState_Deferred+0x07 : or dword ptr ds:g_Device+8,eax + { 0x07, 0x09 }, + { 0x08, 0x05 }, + // IDirect3DDevice8_SetRenderState_Deferred+0x0D : mov dword ptr ds:D3D__RenderState[ecx*4], edx + { 0x0D, 0x89 }, + { 0x0E, 0x14 }, + { 0x0F, 0x8D }, + // IDirect3DDevice8_SetRenderState_Deferred+0x14 : retn + { 0x14, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetLight +// ****************************************************************** +SOOVPA<8> D3DDevice_SetLight_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0x0F }, + { 0x3C, 0xD8 }, + { 0x5B, 0x00 }, + { 0x7A, 0x89 }, + { 0x99, 0xA5 }, + { 0xB8, 0xC1 }, + { 0xD7, 0x00 }, + { 0xF6, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_LightEnable +// ****************************************************************** +SOOVPA<7> D3DDevice_LightEnable_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1A, 0x04 }, + { 0x36, 0x00 }, + { 0x52, 0x00 }, + { 0x6E, 0x75 }, + { 0x8A, 0x88 }, + { 0xA6, 0x75 }, + { 0xC2, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_CreateVertexShader +// ****************************************************************** +SOOVPA<8> D3DDevice_CreateVertexShader_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x85 }, + { 0x3E, 0xE8 }, + { 0x5E, 0x5D }, + { 0x7E, 0x01 }, + { 0x9E, 0x24 }, + { 0xBE, 0x24 }, + { 0xDE, 0x83 }, + { 0xFE, 0xC7 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetProjectionViewportMatrix +// ****************************************************************** +SOOVPA<7> D3DDevice_GetProjectionViewportMatrix_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x35 }, + { 0x07, 0x57 }, + { 0x0A, 0x24 }, + { 0x0E, 0xA0 }, + { 0x12, 0xB9 }, + { 0x16, 0x00 }, + { 0x1A, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetTile +// ****************************************************************** +SOOVPA<7> D3DDevice_GetTile_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x04 }, + { 0x0A, 0x56 }, + { 0x0D, 0x7C }, + { 0x12, 0x40 }, + { 0x17, 0x21 }, + { 0x1C, 0x00 }, + { 0x21, 0x5F }, + } +}; + +// ****************************************************************** +// * D3DDevice_ApplyStateBlock +// ****************************************************************** +SOOVPA<8> D3DDevice_ApplyStateBlock_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0x83 }, + { 0x40, 0x83 }, + { 0x5B, 0x16 }, + { 0x7A, 0x01 }, + { 0x99, 0x46 }, + { 0xB8, 0x06 }, + { 0xD7, 0x39 }, + { 0xF6, 0x51 }, + } +}; + +// ****************************************************************** +// * D3DDevice_CaptureStateBlock +// ****************************************************************** +SOOVPA<7> D3DDevice_CaptureStateBlock_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x76 }, + { 0x3E, 0xE8 }, + { 0x5E, 0x06 }, + { 0x7E, 0x26 }, + { 0x9E, 0xFF }, + { 0xBE, 0x04 }, + { 0xDE, 0xF8 }, + } +}; + +// ****************************************************************** +// * D3DDevice_DeleteStateBlock +// ****************************************************************** +SOOVPA<7> D3DDevice_DeleteStateBlock_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x11, 0x76 }, + { 0x24, 0x3B }, + { 0x37, 0xE8 }, + { 0x4A, 0x50 }, + { 0x5D, 0x74 }, + { 0x70, 0x06 }, + { 0x83, 0xEB }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetBackMaterial +// ****************************************************************** +SOOVPA<8> D3DDevice_GetBackMaterial_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x56 }, + { 0x06, 0x57 }, + { 0x0A, 0x0C }, + { 0x0D, 0x5C }, + { 0x0E, 0x0B }, + { 0x12, 0x11 }, + { 0x16, 0xF3 }, + { 0x1A, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_CreateStateBlock +// ****************************************************************** +SOOVPA<8> D3DDevice_CreateStateBlock_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x8B }, + { 0x3E, 0x89 }, + { 0x5E, 0x24 }, + { 0x7E, 0xF8 }, + { 0x9F, 0x01 }, + { 0xBE, 0xB6 }, + { 0xDE, 0xF8 }, + { 0xFE, 0x76 }, + } +}; + +// ****************************************************************** +// * D3DDevice_DeletePixelShader +// ****************************************************************** +SOOVPA<7> D3DDevice_DeletePixelShader_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x75 }, + { 0x0A, 0x04 }, + { 0x0E, 0x09 }, + { 0x12, 0x04 }, + { 0x18, 0xC2 }, + { 0x1A, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetPixelShaderProgram +// ****************************************************************** +SOOVPA<7> D3DDevice_SetPixelShaderProgram_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0xA1 }, + { 0x0E, 0x88 }, + { 0x16, 0x00 }, + { 0x1E, 0x00 }, + { 0x26, 0x04 }, + { 0x32, 0xC7 }, + { 0x36, 0x00 }, + } +}; + +// ****************************************************************** +// * D3D::KickOffAndWaitForIdle +// ****************************************************************** +// * This is for the real D3D::KickOffAndWaitForIdle +// ****************************************************************** +SOOVPA<5> D3D_KickOffAndWaitForIdle_1_0_3925 = +{ + 0, // Large == 0 + 5, // Count == 5 + + XREF_D3D_KickOffAndWaitForIdle, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x8B }, + { 0x06, 0x48 }, + { 0x07, 0x1C }, + { 0x0A, 0x51 }, + { 0x10, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetModelView +// ****************************************************************** +SOOVPA<7> D3DDevice_SetModelView_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x12, 0x08 }, + { 0x26, 0x53 }, + { 0x3A, 0x8B }, + { 0x4E, 0x80 }, + { 0x62, 0x00 }, + { 0x76, 0x00 }, + { 0x8A, 0x0C }, + } +}; + +// ****************************************************************** +// * D3DDevice_FlushVertexCache +// ****************************************************************** +SOOVPA<8> D3DDevice_FlushVertexCache_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x56 }, + { 0x07, 0x56 }, + { 0x08, 0xE8 }, + { 0x0D, 0xC7 }, + { 0x0F, 0x10 }, + { 0x12, 0x00 }, + { 0x17, 0x00 }, + { 0x1C, 0x08 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetScissors +// ****************************************************************** +SOOVPA<8> D3DDevice_SetScissors_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0x08 }, + { 0x3C, 0x24 }, + { 0x5F, 0x8B }, + { 0x7A, 0x83 }, + { 0x99, 0xE0 }, + { 0xBA, 0xD9 }, + { 0xD9, 0x8B }, + { 0xF6, 0xDB }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexShaderInput +// ****************************************************************** +SOOVPA<8> D3DDevice_SetVertexShaderInput_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x03 }, + { 0x3E, 0x8B }, + { 0x5E, 0xC7 }, + { 0x7E, 0xF8 }, + { 0x9E, 0xC6 }, + { 0xBE, 0x7F }, + { 0xDE, 0xCA }, + { 0xFE, 0x17 }, + } +}; + +// ****************************************************************** +// * D3DDevice_PrimeVertexCache +// ****************************************************************** +SOOVPA<8> D3DDevice_PrimeVertexCache_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0D, 0x00 }, + { 0x1C, 0x55 }, + { 0x2B, 0x00 }, + { 0x3A, 0x24 }, + { 0x49, 0xCB }, + { 0x58, 0x74 }, + { 0x67, 0x00 }, + { 0x76, 0x08 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexData4ub +// ****************************************************************** +SOOVPA<7> D3DDevice_SetVertexData4ub_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x56 }, + { 0x10, 0x08 }, + { 0x19, 0xC9 }, + { 0x22, 0x54 }, + { 0x2B, 0x14 }, + { 0x34, 0x24 }, + { 0x3D, 0xFC }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetPixelShaderConstant +// ****************************************************************** +SOOVPA<7> D3DDevice_SetPixelShaderConstant_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x4C }, + { 0x3E, 0x11 }, + { 0x61, 0xDF }, + { 0x7E, 0xF6 }, + { 0x9E, 0x05 }, + { 0xC0, 0x51 }, + { 0xDE, 0xC4 }, + } +}; + +// ****************************************************************** +// * D3DDevice_InsertCallback +// ****************************************************************** +SOOVPA<7> D3DDevice_InsertCallback_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0D, 0x8B }, + { 0x18, 0x8B }, + { 0x25, 0x50 }, + { 0x32, 0x10 }, + { 0x3F, 0x00 }, + { 0x4C, 0x00 }, + { 0x59, 0x03 }, + } +}; + +// ****************************************************************** +// * D3DDevice_BeginPushBuffer +// ****************************************************************** +SOOVPA<7> D3DDevice_BeginPushBuffer_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0xCE }, + { 0x1B, 0x57 }, + { 0x25, 0x00 }, + { 0x32, 0x06 }, + { 0x3F, 0x03 }, + { 0x4C, 0x04 }, + { 0x59, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_EndPushBuffer +// ****************************************************************** +SOOVPA<7> D3DDevice_EndPushBuffer_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x11, 0x8D }, + { 0x24, 0x8B }, + { 0x37, 0xFC }, + { 0x4A, 0xFF }, + { 0x5D, 0xF7 }, + { 0x70, 0x03 }, + { 0x83, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD] + { 0x05, XREF_D3DRS_ROPZCMPALWAYSREAD }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #2 + { 0x01, 0x44 }, // (Offset,Value)-Pair #3 + { 0x02, 0x24 }, // (Offset,Value)-Pair #4 + { 0x03, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead+0x09 : call [abs] + { 0x09, 0xE8 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead+0x0E : retn 0x04 + { 0x0E, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #8 + { 0x10, 0x00 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_RopZRead +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_RopZRead_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirect3DDevice8_SetRenderState_RopZRead+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD] + { 0x05, XREF_D3DRS_ROPZREAD }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_RopZRead+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #2 + { 0x01, 0x44 }, // (Offset,Value)-Pair #3 + { 0x02, 0x24 }, // (Offset,Value)-Pair #4 + { 0x03, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_RopZRead+0x09 : call [abs] + { 0x09, 0xE8 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_RopZRead+0x0E : retn 0x04 + { 0x0E, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #8 + { 0x10, 0x00 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_DoNotCullUncompressed +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirect3DDevice8_SetRenderState_DoNotCullUncompressed+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD] + { 0x05, XREF_D3DRS_DONOTCULLUNCOMPRESSED }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_DoNotCullUncompressed+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #2 + { 0x01, 0x44 }, // (Offset,Value)-Pair #3 + { 0x02, 0x24 }, // (Offset,Value)-Pair #4 + { 0x03, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_DoNotCullUncompressed+0x09 : call [abs] + { 0x09, 0xE8 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_DoNotCullUncompressed+0x0E : retn 0x04 + { 0x0E, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #8 + { 0x10, 0x00 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * XMETAL_StartPush +// ****************************************************************** +SOOVPA<11> XMETAL_StartPush_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // XMETAL_StartPush+0x00 : mov ecx, [esp+0x4] + { 0x00, 0x8B }, + { 0x01, 0x4C }, + { 0x02, 0x24 }, + { 0x03, 0x04 }, + + // XMETAL_StartPush+0x04 : mov eax, [ecx] + { 0x04, 0x8B }, + { 0x05, 0x01 }, + + // XMETAL_StartPush+0x06 : cmp eax, [ecx+0x4] + { 0x06, 0x3B }, + { 0x07, 0x41 }, + { 0x08, 0x04 }, + + // XMETAL_StartPush+0x10 : retn 4 + { 0x10, 0xC2 }, + { 0x11, 0x04 }, + } +}; + +// ****************************************************************** +// * D3D::SetFence +// ****************************************************************** +SOOVPA<11> D3D_SetFence_1_0_3925 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_D3D_SETFENCE, // Xref Is Saved + 0, // Xref Not Used + + { + // D3D::SetFence+0x0F : mov edi, [esi+0x1C] + { 0x0F, 0x8B }, + { 0x10, 0x7E }, + { 0x11, 0x1C }, + + // D3D::SetFence+0x3D : and ecx, 0x3F + { 0x3D, 0x83 }, + { 0x3E, 0xE1 }, + { 0x3F, 0x3F }, + + // D3D::SetFence+0x77 : mov [esi*ebp*4], edi + { 0x77, 0x89 }, + { 0x78, 0x3C }, + { 0x79, 0xAE }, + + // D3D::SetFence+0x96 : retn 4 + { 0x96, 0xC2 }, + { 0x97, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_InsertFence +// ****************************************************************** +SOOVPA<5> D3DDevice_InsertFence_1_0_3925 = +{ + 0, // Large == 0 + 5, // Count == 5 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x03, XREF_D3D_SETFENCE }, + + { 0x00, 0x6A }, + { 0x01, 0x00 }, + { 0x02, 0xE8 }, + { 0x07, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3DDevice_LoadVertexShaderProgram +// ****************************************************************** +SOOVPA<7> D3DDevice_LoadVertexShaderProgram_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x2D }, + { 0x18, 0x10 }, + { 0x25, 0x00 }, + { 0x32, 0xA5 }, + { 0x3F, 0x8B }, + { 0x4C, 0x00 }, + { 0x59, 0xE8 }, + } +}; + +// ****************************************************************** +// * D3DDevice_DeleteVertexShader +// ****************************************************************** +SOOVPA<6> X_D3DDevice_DeleteVertexShader_1_0_3925 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0xFF }, + { 0x0A, 0x08 }, + { 0x0E, 0x44 }, + + // D3DDevice_DeleteVertexShader+0x16 : retn 4 + { 0x16, 0xC2 }, + { 0x17, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_RunPushBuffer +// ****************************************************************** +SOOVPA<15> D3DDevice_RunPushBuffer_1_0_3925 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XRefNotSaved, + XRefNotUsed, + + { + // D3DDevice_RunPushBuffer+0x5E : and ecx, 4 + { 0x5E, 0x83 }, + { 0x5F, 0xE1 }, + { 0x60, 0x04 }, + + // D3DDevice_RunPushBuffer+0x95 : push 0x308 + { 0x95, 0x68 }, + { 0x96, 0x08 }, + { 0x97, 0x03 }, + { 0x98, 0x00 }, + { 0x99, 0x00 }, + + // D3DDevice_RunPushBuffer+0xF1 : mov dword ptr [eax+8], 0x40100 + { 0xF1, 0xC7 }, + { 0xF2, 0x40 }, + { 0xF3, 0x08 }, + { 0xF4, 0x00 }, + { 0xF5, 0x01 }, + { 0xF6, 0x04 }, + { 0xF7, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_BlockOnFence +// ****************************************************************** +SOOVPA<7> D3DDevice_BlockOnFence_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x8B }, + { 0x02, 0x24 }, + { 0x04, 0x6A }, + { 0x06, 0x50 }, + { 0x0C, 0xC2 }, + { 0x0D, 0x04 }, + { 0x0E, 0x00 }, + } +}; + +// ****************************************************************** +// * Direct3D_EnumAdapterModes +// ****************************************************************** +SOOVPA<8> Direct3D_EnumAdapterModes_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x20, 0x8B }, + { 0x3E, 0xE3 }, + { 0x5E, 0x75 }, + { 0x7E, 0x00 }, + { 0x9E, 0x00 }, + { 0xBE, 0x0F }, + { 0xE2, 0x89 }, + { 0xFE, 0x5D }, + } +}; + +// ****************************************************************** +// * Direct3D_GetAdapterModeCount +// ****************************************************************** +SOOVPA<8> Direct3D_GetAdapterModeCount_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x14, 0x8B }, + { 0x26, 0xE2 }, + { 0x3A, 0x00 }, + { 0x4E, 0x00 }, + { 0x62, 0x19 }, + { 0x76, 0x75 }, + { 0x8A, 0x3B }, + { 0x9E, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_Reset +// ****************************************************************** +SOOVPA<7> D3DDevice_Reset_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x15, 0x8B }, + { 0x2C, 0x8B }, + { 0x43, 0x8B }, + { 0x5A, 0x08 }, + { 0x74, 0x8B }, + { 0x88, 0x50 }, + { 0x9F, 0x03 }, + } +}; + +// ****************************************************************** +// * Direct3D_GetAdapterIdentifier +// ****************************************************************** +SOOVPA<7> Direct3D_GetAdapterIdentifier_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x85 }, + { 0x0A, 0x08 }, + { 0x10, 0x56 }, + { 0x16, 0xB9 }, + { 0x20, 0xF3 }, + { 0x22, 0x5F }, + { 0x28, 0x00 }, + } +}; + +// ****************************************************************** +// * Direct3D_GetDeviceCaps +// ****************************************************************** +SOOVPA<7> Direct3D_GetDeviceCaps_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x85 }, + { 0x0A, 0x08 }, + { 0x10, 0x83 }, + { 0x16, 0x08 }, + { 0x1C, 0xC2 }, + { 0x22, 0x0C }, + { 0x29, 0x33 }, + } +}; + +// ****************************************************************** +// * D3D::SetCommonDebugRegisters +// ****************************************************************** +SOOVPA<10> D3D_SetCommonDebugRegisters_1_0_3925 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x08, 0x96 }, + { 0x09, 0x44 }, + { 0x0A, 0x2B }, + { 0x31, 0x81 }, + { 0x32, 0xE2 }, + { 0x33, 0xFF }, + { 0x34, 0xFF }, + { 0x35, 0xEF }, + { 0x36, 0xE7 }, + } +}; + +// ****************************************************************** +// * D3DDevice_CreateImageSurface +// ****************************************************************** +SOOVPA<7> D3DDevice_CreateImageSurface_1_0_3925 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x24 }, + { 0x0E, 0x44 }, + { 0x12, 0x00 }, + { 0x16, 0xE8 }, + { 0x1B, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3D::BlockOnTime +// ****************************************************************** +SOOVPA<9> D3D_BlockOnTime_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 6 + + XREF_D3D_BLOCKONTIME, // Xref Is Saved + 0, // Xref Not Used + + { + // D3D::BlockOnFence+0x0A : push edi + { 0x0A, 0x57 }, + // D3D::BlockOnFence+0x4E : cmp eax, 0x8000 + { 0x4E, 0x3D }, + { 0x4F, 0x00 }, + { 0x50, 0x80 }, + { 0x51, 0x00 }, + // D3D::BlockOnFence+0x6E : mov ebp, 0x40100 + { 0x6E, 0xBD }, + { 0x6F, 0x00 }, + { 0x70, 0x01 }, + { 0x71, 0x04 } + } +}; + +// ****************************************************************** +// * D3D::BlockOnResource +// ****************************************************************** +SOOVPA<9> D3D_BlockOnResource_1_0_3925 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_D3D_BlockOnResource, // Xref Is Saved + XRefNotUsed, + + { + { 0x34, 0x8B }, // mov edx, [ecx+0x1C] + { 0x35, 0x51 }, + { 0x36, 0x1C }, + { 0x41, 0xC2 }, // retn 4 + { 0x42, 0x04 }, + { 0x43, 0x00 }, + { 0x7E, 0xC2 }, // retn 4 + { 0x7F, 0x04 }, + { 0x80, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_BeginStateBlock +// ****************************************************************** +SOOVPA<6> D3DDevice_BeginStateBlock_1_0_3925 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0xA1 }, + { 0x05, 0x83 }, + { 0x06, 0x48 }, + { 0x07, 0x0C }, + { 0x08, 0x20 }, + { 0x09, 0xE9 }, + } +}; + +// ****************************************************************** +// * D3DDevice_EndStateBlock +// ****************************************************************** +SOOVPA<6> D3DDevice_EndStateBlock_1_0_3925 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0xA1 }, + { 0x05, 0x83 }, + { 0x06, 0x60 }, + { 0x07, 0x0C }, + { 0x08, 0xDF }, + { 0x09, 0xE9 }, + } +}; + +// ****************************************************************** +// * D3D8_1_0_3925 +// ****************************************************************** +OOVPATable D3D8_1_0_3925[] = +{ + // IDirect3D8::CreateDevice + { + (OOVPA*)&IDirect3D8_CreateDevice_1_0_3925, + + XTL::EmuIDirect3D8_CreateDevice, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CreateDevice" + #endif + }, + // IDirect3DDevice8::IsBusy + { + (OOVPA*)&IDirect3DDevice8_IsBusy_1_0_3925, + + XTL::EmuIDirect3DDevice8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_IsBusy" + #endif + }, + // IDirect3DDevice8::GetDeviceCaps + { + (OOVPA*)&IDirect3DDevice8_GetDeviceCaps_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetDeviceCaps, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDeviceCaps" + #endif + }, + // IDirect3DDevice8::BeginVisibilityTest + { + (OOVPA*)&IDirect3DDevice8_BeginVisibilityTest_1_0_3925, + + XTL::EmuIDirect3DDevice8_BeginVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginVisibilityTest" + #endif + }, + // IDirect3DDevice8::EndVisibilityTest + { + (OOVPA*)&IDirect3DDevice8_EndVisibilityTest_1_0_3925, + + XTL::EmuIDirect3DDevice8_EndVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndVisibilityTest" + #endif + }, + // IDirect3DDevice8::GetVisibilityTestResult + { + (OOVPA*)&IDirect3DDevice8_GetVisibilityTestResult_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVisibilityTestResult, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVisibilityTestResult" + #endif + }, + // IDirect3D8::KickOffAndWaitForIdle + { + (OOVPA*)&IDirect3D8_KickOffAndWaitForIdle_1_0_3925, + + XTL::EmuIDirect3D8_KickOffAndWaitForIdle, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_KickOffAndWaitForIdle" + #endif + }, + // IDirect3DDevice8::GetMaterial + { + (OOVPA*)&D3DDevice_GetMaterial_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetMaterial" + #endif + }, + // IDirect3DDevice8::GetBackMaterial + { + (OOVPA*)&D3DDevice_GetBackMaterial_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetBackMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackMaterial" + #endif + }, + // IDirect3DDevice8::LoadVertexShader + { + (OOVPA*)&IDirect3DDevice8_LoadVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_LoadVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShader" + #endif + }, + // IDirect3DDevice8::SelectVertexShader + { + (OOVPA*)&IDirect3DDevice8_SelectVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_SelectVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SelectVertexShader" + #endif + }, + // IDirect3DDevice8::Release + { + (OOVPA*)&IDirect3DDevice8_Release_1_0_3925, + + XTL::EmuIDirect3DDevice8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Release" + #endif + }, + // IDirect3DDevice8::BlockUntilVerticalBlank + { + (OOVPA*)&IDirect3DDevice8_BlockUntilVerticalBlank_1_0_3925, + + XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockUntilVerticalBlank" + #endif + }, + // IDirect3DDevice8::SetVerticalBlankCallback + { + (OOVPA*)&IDirect3DDevice8_SetVerticalBlankCallback_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVerticalBlankCallback" + #endif + }, + // IDirect3DDevice8::SetRenderTarget + { + (OOVPA*)&IDirect3DDevice8_SetRenderTarget_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTarget" + #endif + }, + // IDirect3DDevice8::GetTransform + { + (OOVPA*)&IDirect3DDevice8_GetTransform_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTransform" + #endif + }, + // IDirect3DDevice8::SetStreamSource + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // IDirect3DDevice8::SetVertexShader + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::CreatePixelShader + { + (OOVPA*)&IDirect3DDevice8_CreatePixelShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePixelShader" + #endif + }, + // IDirect3DDevice8::SetPixelShader + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + }, + // IDirect3DDevice8::SetIndices + { + (OOVPA*)&IDirect3DDevice8_SetIndices_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // IDirect3DDevice8::SetViewport + { + (OOVPA*)&IDirect3DDevice8_SetViewport_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport" + #endif + }, + // IDirect3DDevice8::SetTexture + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::DrawIndexedVertices + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_3925, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, + // IDirect3DDevice8::Begin + { + (OOVPA*)&IDirect3DDevice8_Begin_1_0_3925, + + XTL::EmuIDirect3DDevice8_Begin, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Begin" + #endif + }, + // IDirect3DDevice8::SetVertexData2f + { + (OOVPA*)&IDirect3DDevice8_SetVertexData2f_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::SetVertexData2s + { + (OOVPA*)&IDirect3DDevice8_SetVertexData2s_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexData2s, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2s" + #endif + }, + // IDirect3DDevice8::SetVertexData4f + { + (OOVPA*)&IDirect3DDevice8_SetVertexData4f_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexData4f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4f" + #endif + }, + // IDirect3DDevice8::SetVertexDataColor + { + (OOVPA*)&IDirect3DDevice8_SetVertexDataColor_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexDataColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexDataColor" + #endif + }, + // IDirect3DDevice8::End + { + (OOVPA*)&IDirect3DDevice8_End_1_0_3925, + + XTL::EmuIDirect3DDevice8_End, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_End" + #endif + }, + // IDirect3DDevice8::Clear + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_3925, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + // IDirect3DDevice8::CreatePalette + { + (OOVPA*)&IDirect3DDevice8_CreatePalette_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePalette" + #endif + }, + // IDirect3DDevice8::SetPalette + { + (OOVPA*)&IDirect3DDevice8_SetPalette_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetPalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPalette" + #endif + }, + // IDirect3DDevice8::CreateTexture + { + (OOVPA*)&IDirect3DDevice8_CreateTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture" + #endif + }, + // IDirect3DDevice8::CreateVolumeTexture + { + (OOVPA*)&IDirect3DDevice8_CreateVolumeTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVolumeTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVolumeTexture" + #endif + }, + // IDirect3DDevice8::CreateCubeTexture + { + (OOVPA*)&IDirect3DDevice8_CreateCubeTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateCubeTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateCubeTexture" + #endif + }, + // IDirect3DDevice8::CreateIndexBuffer + { + (OOVPA*)&IDirect3DDevice8_CreateIndexBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateIndexBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateIndexBuffer" + #endif + }, + // IDirect3DDevice8::CreateVertexShader + { + (OOVPA*)&IDirect3DDevice8_CreateVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexShader" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant" + #endif + }, + // IDirect3DDevice8::SetFlickerFilter + { + (OOVPA*)&IDirect3DDevice8_SetFlickerFilter_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetFlickerFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetFlickerFilter" + #endif + }, + // IDirect3DDevice8::SetSoftDisplayFilter + { + (OOVPA*)&IDirect3DDevice8_SetSoftDisplayFilter_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetSoftDisplayFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSoftDisplayFilter" + #endif + }, + // IDirect3DDevice8::SetTextureState_TexCoordIndex + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, + // IDirect3DDevice8::SetTextureState_BorderColor + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BorderColor_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BorderColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_PSTextureModes + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_PSTextureModes_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_PSTextureModes, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_PSTextureModes" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilFail + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_Simple + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + }, + // IDirect3DDevice8::SetTransform + { + (OOVPA*)&IDirect3DDevice8_SetTransform_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTransform" + #endif + }, + // IDirect3DDevice8::SetRenderState_FogColor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_Dxt1NoiseEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZBias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZBias_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZBias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZBias" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // IDirect3DDevice8::Present + { + (OOVPA*)&IDirect3DDevice8_Present_1_0_3925, + + XTL::EmuIDirect3DDevice8_Present, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Present" + #endif + }, + // IDirect3DDevice8::SetShaderConstantMode + { + (OOVPA*)&IDirect3DDevice8_SetShaderConstantMode_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetShaderConstantMode" + #endif + }, + // IDirect3DDevice8::GetBackBuffer + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetBackBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer" + #endif + }, + // IDirect3DDevice8::GetRenderTarget + { + (OOVPA*)&IDirect3DDevice8_GetRenderTarget_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetRenderTarget" + #endif + }, + // IDirect3DDevice8::GetDepthStencilSurface + { + (OOVPA*)&IDirect3DDevice8_GetDepthStencilSurface_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetDepthStencilSurface, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDepthStencilSurface" + #endif + }, + // IDirect3DDevice8::CreateVertexBuffer + { + (OOVPA*)&IDirect3DDevice8_CreateVertexBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexBuffer" + #endif + }, + // IDirect3DVertexBuffer8::Lock + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock_1_0_3925, + + XTL::EmuIDirect3DVertexBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock" + #endif + }, + // IDirect3DResource8::Register + { + (OOVPA*)&IDirect3DResource8_Register_1_0_3925, + + XTL::EmuIDirect3DResource8_Register, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Register" + #endif + }, + // IDirect3DResource8::Release + { + (OOVPA*)&IDirect3DResource8_Release_1_0_3925, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Release" + #endif + }, + // IDirect3DResource8::AddRef + { + (OOVPA*)&IDirect3DResource8_AddRef_1_0_3925, + + XTL::EmuIDirect3DResource8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_AddRef" + #endif + }, + // IDirect3DResource8::IsBusy + { + (OOVPA*)&IDirect3DResource8_IsBusy_1_0_3925, + + XTL::EmuIDirect3DResource8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_IsBusy" + #endif + }, + // IDirect3DSurface8::LockRect + { + (OOVPA*)&IDirect3DSurface8_LockRect_1_0_3925, + + XTL::EmuIDirect3DSurface8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_LockRect" + #endif + }, + // IDirect3DPalette8::Lock + { + (OOVPA*)&IDirect3DPalette8_Lock_1_0_3925, + + XTL::EmuIDirect3DPalette8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DPalette8_Lock" + #endif + }, + // IDirect3DTexture8::LockRect + { + (OOVPA*)&IDirect3DTexture8_LockRect_1_0_3925, + + XTL::EmuIDirect3DTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_LockRect" + #endif + }, + // IDirect3DVolumeTexture8::LockBox + { + (OOVPA*)&IDirect3DVolumeTexture8_LockBox_1_0_3925, + + XTL::EmuIDirect3DVolumeTexture8_LockBox, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVolumeTexture8_LockBox" + #endif + }, + // IDirect3DCubeTexture8::LockRect + { + (OOVPA*)&IDirect3DCubeTexture8_LockRect_1_0_3925, + + XTL::EmuIDirect3DCubeTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DCubeTexture8_LockRect" + #endif + }, + // IDirect3DTexture8::GetSurfaceLevel + { + (OOVPA*)&IDirect3DTexture8_GetSurfaceLevel_1_0_3925, + + XTL::EmuIDirect3DTexture8_GetSurfaceLevel, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetSurfaceLevel" + #endif + }, + // Lock2DSurface + { + (OOVPA*)&Lock2DSurface_1_0_3925, + + XTL::EmuLock2DSurface, + + #ifdef _DEBUG_TRACE + "EmuLock2DSurface" + #endif + }, + // Get2DSurfacDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_3925, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc" + #endif + }, + // D3DDevice_GetVertexShaderSize + { + (OOVPA*)&X_D3DDevice_GetVertexShaderSize_1_0_3925, + XTL::EmuIDirect3DDevice8_GetVertexShaderSize, + + #ifdef _DEBUG_TRACE + "D3DDevice_GetVertexShaderSize" + #endif + }, + // IDirect3DDevice8_SetGammaRamp + { + (OOVPA*)&IDirect3DDevice8_SetGammaRamp_1_0_3925, + XTL::EmuIDirect3DDevice8_SetGammaRamp, + + #ifdef _DEBUG_TRACE + "IDirect3DDevice8_SetGammaRamp" + #endif + }, + // IDirect3DDevice8::SetMaterial + { + (OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetMaterial" + #endif + }, + // IDirect3DDevice8::AddRef + { + (OOVPA*)&IDirect3DDevice8_AddRef_1_0_3925, + + XTL::EmuIDirect3DDevice8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_AddRef" + #endif + }, + // IDirect3DDevice8_Unknown1 + { + (OOVPA*)&IDirect3DDevice8_Unknown1_1_0_3925, + + XTL::EmuIDirect3DDevice8_Unknown1, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Unknown1" + #endif + }, + // IDirect3DDevice8::GetViewport + { + (OOVPA*)&IDirect3DDevice8_GetViewport_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetViewport" + #endif + }, + // IDirect3DDevice8::GetGammaRamp + { + (OOVPA*)&IDirect3DDevice8_GetGammaRamp_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetGammaRamp" + #endif + }, + // D3DDevice_GetDisplayFieldStatus + { + (OOVPA*)&D3DDevice_GetDisplayFieldStatus_1_0_3925, + XTL::EmuIDirect3DDevice8_GetDisplayFieldStatus, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDisplayFieldStatus" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleAntiAlias + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleAntiAlias_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_VertexBlend + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_VertexBlend_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_VertexBlend" + #endif + }, + // IDirect3DDevice8::SetRenderState_BackFillMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_BackFillMode_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_BackFillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_BackFillMode" + #endif + }, + // IDirect3DDevice8::SetTextureState_TwoSidedLighting + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TwoSidedLighting_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TwoSidedLighting" + #endif + }, + // IDirect3DDevice8_SetRenderState_NormalizeNormals + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormals" + #endif + }, + // IDirect3DDevice8::SetRenderState_FrontFace + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FrontFace_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_FrontFace, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FrontFace" + #endif + }, + // IDirect3DDevice8::SetRenderState_TextureFactor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // IDirect3DDevice8::SetRenderState_LogicOp + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_LogicOp_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_LogicOp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LogicOp" + #endif + }, + // IDirect3DDevice8::SetRenderState_EdgeAntiAlias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMask + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleMask_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMask, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMask" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleMode_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMode" + #endif + }, + // D3DDevice_PersistDisplay + { + (OOVPA*)&D3DDevice_PersistDisplay_1_0_3925, + XTL::EmuIDirect3DDevice8_PersistDisplay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_PersistDisplay" + #endif + }, + // IDirect3DDevice8::SetRenderState_ShadowFunc + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ShadowFunc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ShadowFunc" + #endif + }, + // IDirect3DDevice8::SetRenderState_LineWidth + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_LineWidth_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_LineWidth, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LineWidth" + #endif + }, + // IDirect3DDevice8::SetRenderState_YuvEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_YuvEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_YuvEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_YuvEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_OcclusionCullEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilCullEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilCullEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilCullEnable" + #endif + }, + // D3DDevice_DrawVerticesUP + { + (OOVPA*)&D3DDevice_DrawVerticesUP_1_0_3925, + XTL::EmuIDirect3DDevice8_DrawVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVerticesUP" + #endif + }, + // D3DDevice_DrawIndexedVerticesUP + { + (OOVPA*)&D3DDevice_DrawIndexedVerticesUP_1_0_3925, + XTL::EmuIDirect3DDevice8_DrawIndexedVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVerticesUP" + #endif + }, + // D3DDevice_DrawVertices + { + (OOVPA*)&D3DDevice_DrawVertices_1_0_3925, + XTL::EmuIDirect3DDevice8_DrawVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVertices" + #endif + }, + // D3DDevice_GetDisplayMode + { + (OOVPA*)&D3DDevice_GetDisplayMode_1_0_3925, + XTL::EmuIDirect3DDevice8_GetDisplayMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDisplayMode" + #endif + }, + // D3DDevice_SetTextureState_BumpEnv + { + (OOVPA*)&D3DDevice_SetTextureState_BumpEnv_1_0_3925, + XTL::EmuIDirect3DDevice8_SetTextureState_BumpEnv, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BumpEnv" + #endif + }, + // D3DDevice_SetTextureState_ColorKeyColor + { + (OOVPA*)&D3DDevice_SetTextureState_ColorKeyColor_1_0_3925, + XTL::EmuIDirect3DDevice8_SetTextureState_ColorKeyColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_ColorKeyColor" + #endif + }, + // D3DDevice_SetVertexData4s + { + (OOVPA*)&D3DDevice_SetVertexData4s_1_0_3925, + XTL::EmuIDirect3DDevice8_SetVertexData4s, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4s" + #endif + }, + // IDirect3D8::SetPushBufferSize + { + (OOVPA*)&Direct3D_SetPushBufferSize_1_0_3925, + XTL::EmuIDirect3D8_SetPushBufferSize, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_SetPushBufferSize" + #endif + }, + // IDirect3DResource8::GetType + // Probably not even necessary... + { + (OOVPA*)&D3DResource_GetType_1_0_3925, + + XTL::EmuIDirect3DResource8_GetType, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_GetType" + #endif + }, + // IDirect3D8_AllocContiguousMemory + { + (OOVPA*)&D3D_AllocContiguousMemory_1_0_3925, + XTL::EmuIDirect3D8_AllocContiguousMemory, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_AllocContiguousMemory" + #endif + }, + // IDirect3DDevice8_SetRenderState_Deferred + /*{ + (OOVPA*)&IDirect3DDevice8_SetRenderState_Deferred_1_0_3925, + XTL::EmuIDirect3DDevice8_SetRenderState_Deferred, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Deferred" + #endif + },*/ + // D3DDevice_SetLight + { + (OOVPA*)&D3DDevice_SetLight_1_0_3925, + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight" + #endif + }, + // D3DDevice_LightEnable + { + (OOVPA*)&D3DDevice_LightEnable_1_0_3925, + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable" + #endif + }, + // D3DDevice_CreateVertexShader + { + (OOVPA*)&D3DDevice_CreateVertexShader_1_0_3925, + XTL::EmuIDirect3DDevice8_CreateVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexShader" + #endif + }, + // IDirect3DDevice8::SetRenderTarget + { + (OOVPA*)&IDirect3DDevice8_SetRenderTarget_1_0_3948, + + XTL::EmuIDirect3DDevice8_SetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTarget (3948)" + #endif + }, + // IDirect3DSurface8::GetDesc + { + (OOVPA*)&D3DSurface_GetDesc_1_0_3925, + + XTL::EmuIDirect3DSurface8_GetDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_GetDesc" + #endif + }, + // IDirect3DDevice8_GetProjectionViewportMatrix + { + (OOVPA*)&D3DDevice_GetProjectionViewportMatrix_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetProjectionViewportMatrix, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetProjectionViewportMatrix" + #endif + }, + // D3DDevice_GetTile + { + (OOVPA*)&D3DDevice_GetTile_1_0_3925, + XTL::EmuIDirect3DDevice8_GetTile, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTile" + #endif + }, + // D3DDevice_ApplyStateBlock + { + (OOVPA*)&D3DDevice_ApplyStateBlock_1_0_3925, + XTL::EmuIDirect3DDevice8_ApplyStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_ApplyStateBlock" + #endif + }, + // D3DDevice_CaptureStateBlock + { + (OOVPA*)&D3DDevice_CaptureStateBlock_1_0_3925, + XTL::EmuIDirect3DDevice8_CaptureStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CaptureStateBlock" + #endif + }, + // D3DDevice_DeleteStateBlock + { + (OOVPA*)&D3DDevice_DeleteStateBlock_1_0_3925, + XTL::EmuIDirect3DDevice8_DeleteStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteStateBlock" + #endif + }, + // D3DDevice_CreateStateBlock + { + + (OOVPA*)&D3DDevice_CreateStateBlock_1_0_3925, + XTL::EmuIDirect3DDevice8_CreateStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateStateBlock" + #endif + }, + // D3DDevice_DeletePixelShader + { + (OOVPA*)&D3DDevice_DeletePixelShader_1_0_3925, + XTL::EmuIDirect3DDevice8_DeletePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeletePixelShader" + #endif + }, + // D3DDevice_SetPixelShaderProgram + { + (OOVPA*)&D3DDevice_SetPixelShaderProgram_1_0_3925, + XTL::EmuIDirect3DDevice8_SetPixelShaderProgram, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderProgram" + #endif + }, + // D3D::KickOffAndWaitForIdle + { + + (OOVPA*)&D3D_KickOffAndWaitForIdle_1_0_3925, + XTL::EmuIDirect3D8_KickOffAndWaitForIdle, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_KickOffAndWaitForIdle" + #endif + }, + // D3DDevice_SetModelView + { + (OOVPA*)&D3DDevice_SetModelView_1_0_3925, + XTL::EmuIDirect3DDevice8_SetModelView, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetModelView" + #endif + }, + // D3DDevice_FlushVertexCache + { + (OOVPA*)&D3DDevice_FlushVertexCache_1_0_3925, + XTL::EmuIDirect3DDevice8_FlushVertexCache, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_FlushVertexCache" + #endif + }, + // D3DDevice_SetScissors + { + (OOVPA*)&D3DDevice_SetScissors_1_0_3925, + XTL::EmuIDirect3DDevice8_SetScissors, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScissors" + #endif + }, + // D3DDevice_SetVertexShaderInput + { + (OOVPA*)&D3DDevice_SetVertexShaderInput_1_0_3925, + XTL::EmuIDirect3DDevice8_SetVertexShaderInput, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderInput" + #endif + }, + // D3DDevice_PrimeVertexCache + { + (OOVPA*)&D3DDevice_PrimeVertexCache_1_0_3925, + XTL::EmuIDirect3DDevice8_PrimeVertexCache, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_PrimeVertexCache" + #endif + }, + // IDirect3DDevice8::SetVertexData4ub + { + (OOVPA*)&D3DDevice_SetVertexData4ub_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexData4ub, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4ub" + #endif + }, + // IDirect3DDevice8::SetPixelShaderConstant + { + (OOVPA*)&D3DDevice_SetPixelShaderConstant_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetPixelShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderConstant" + #endif + }, + // IDirect3DDevice8_InsertCallback + { + (OOVPA*)&D3DDevice_InsertCallback_1_0_3925, + + XTL::EmuIDirect3DDevice8_InsertCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_InsertCallback" + #endif + }, + // IDirect3DDevice8::BeginPushBuffer + { + (OOVPA*)&D3DDevice_BeginPushBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_BeginPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginPushBuffer" + #endif + }, + // IDirect3DDevice8::EndPushBuffer + { + (OOVPA*)&D3DDevice_EndPushBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_EndPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndPushBuffer" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZCmpAlwaysRead + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZRead + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZRead_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_DoNotCullUncompressed + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed" + #endif + }, + // XMETAL_StartPush + /*{ + (OOVPA*)&XMETAL_StartPush_1_0_3925, + + XTL::EmuXMETAL_StartPush, + + #ifdef _DEBUG_TRACE + "EmuXMETAL_StartPush" + #endif + }*/ + // D3D::SetFence (XREF) + { + (OOVPA*)&D3D_SetFence_1_0_3925, 0, + + #ifdef _DEBUG_TRACE + "D3D::SetFence (XREF)" + #endif + }, + // IDirect3DDevice8::InsertFence + { + (OOVPA*)&D3DDevice_InsertFence_1_0_3925, + + XTL::EmuIDirect3DDevice8_InsertFence, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_InsertFence" + #endif + }, + // D3DDevice_LoadVertexShaderProgram + { + (OOVPA*)&D3DDevice_LoadVertexShaderProgram_1_0_3925, + + XTL::EmuIDirect3DDevice8_LoadVertexShaderProgram, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShaderProgram" + #endif + }, + // D3DDevice_DeleteVertexShader + { + (OOVPA*)&X_D3DDevice_DeleteVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_DeleteVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteVertexShader" + #endif + }, + // IDirect3DDevice8::RunPushBuffer + { + (OOVPA*)&D3DDevice_RunPushBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_RunPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_RunPushBuffer" + #endif + }, + // IDirect3DDevice8::BlockOnFence + { + (OOVPA*)&D3DDevice_BlockOnFence_1_0_3925, + + XTL::EmuIDirect3DDevice8_BlockOnFence, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockOnFence" + #endif + }, + // IDirect3DDevice8::Reset + { + (OOVPA*)&D3DDevice_Reset_1_0_3925, + + XTL::EmuIDirect3DDevice8_Reset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Reset" + #endif + }, + // Direct3D_GetAdapterIdentifier + { + (OOVPA*)&Direct3D_GetAdapterIdentifier_1_0_3925, + XTL::EmuIDirect3D8_GetAdapterIdentifier, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_GetAdapterIdentifier" + #endif + }, + // Direct3D_GetDeviceCaps + { + (OOVPA*)&Direct3D_GetDeviceCaps_1_0_3925, + XTL::EmuIDirect3D8_GetDeviceCaps, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_GetDeviceCaps" + #endif + }, + // D3D::SetCommonDebugRegisters + { + (OOVPA*)&D3D_SetCommonDebugRegisters_1_0_3925, + XTL::EmuD3D_SetCommonDebugRegisters, + + #ifdef _DEBUG_TRACE + "EmuD3D::SetCommonDebugRegisters" + #endif + }, + // D3DDevice_CreateImageSurface + { + (OOVPA*)&D3DDevice_CreateImageSurface_1_0_3925, + XTL::EmuIDirect3DDevice8_CreateImageSurface, + + #ifdef _DEBUG_TRACE + "D3DDevice_CreateImageSurface" + #endif + }, + // D3D::BlockOnTime + { + (OOVPA*)&D3D_BlockOnTime_1_0_3925, + XTL::EmuD3D_BlockOnTime, + + #ifdef _DEBUG_TRACE + "D3D::BlockOnTime" + #endif + }, + // D3D::BlockOnResource + { + (OOVPA*)&D3D_BlockOnResource_1_0_3925, + XTL::EmuD3D_BlockOnResource, + + #ifdef _DEBUG_TRACE + "D3D::BlockOnResource" + #endif + }, + // D3DDevice_BeginStateBlock + { + (OOVPA*)&D3DDevice_BeginStateBlock_1_0_3925, + XTL::EmuIDirect3DDevice8_BeginStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginStateBlock" + #endif + }, + // D3DDevice_EndStateBlock + { + (OOVPA*)&D3DDevice_EndStateBlock_1_0_3925, + XTL::EmuIDirect3DDevice8_EndStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndStateBlock" + #endif + }, +}; + +// ****************************************************************** +// * D3D8_1_0_3925_SIZE +// ****************************************************************** +uint32 D3D8_1_0_3925_SIZE = sizeof(D3D8_1_0_3925); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4034.h b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4034.h new file mode 100644 index 000000000..74105c653 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4034.h @@ -0,0 +1,44 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4034.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_1_0_4034_H +#define D3D8_1_0_4034_H + +#include "OOVPA.h" + +extern SOOVPA<14> IDirect3DDevice8_SetRenderState_CullMode_1_0_4034; + +extern OOVPATable D3D8_1_0_4034[]; +extern uint32 D3D8_1_0_4034_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4034.inl b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4034.inl new file mode 100644 index 000000000..8b5ef13f3 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4034.inl @@ -0,0 +1,2781 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4034.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * IDirect3DDevice8_GetGammaRamp +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_GetGammaRamp_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x8B }, + { 0x0A, 0x00 }, + { 0x10, 0xE1 }, + { 0x16, 0x0C }, + { 0x1C, 0x00 }, + { 0x22, 0x00 }, + { 0x28, 0x04 }, + } +}; + + +// ****************************************************************** +// * IDirect3DDevice8_GetCreationParameters +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_GetCreationParameters_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0x8B }, + { 0x0E, 0x8B }, + { 0x16, 0x4E }, + { 0x1E, 0x83 }, + { 0x26, 0x00 }, + { 0x2E, 0x5E }, + { 0x36, 0xC9 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetViewport +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_GetViewport_1_0_4034 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetViewport+0x05 : push esi; push edi + { 0x05, 0x56 }, // (Offset,Value)-Pair #1 + { 0x06, 0x57 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetViewport+0x0B : lea esi, [eax+0x0B50] + { 0x0B, 0x8D }, // (Offset,Value)-Pair #3 + { 0x0C, 0xB0 }, // (Offset,Value)-Pair #4 + { 0x0D, 0x50 }, // (Offset,Value)-Pair #5 + { 0x0E, 0x0B }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetViewport+0x11 : mov ecx, 6 + { 0x11, 0xB9 }, // (Offset,Value)-Pair #7 + { 0x12, 0x06 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetViewport+0x1A : retn 0x04 + { 0x1A, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1B, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetViewport +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetViewport_1_0_4034 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetViewport+0x00 : sub esp, 0x08 + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetViewport+0x2D : mov ebx, [esp+0x14] + { 0x2D, 0x8B }, // (Offset,Value)-Pair #4 + { 0x2E, 0x5C }, // (Offset,Value)-Pair #5 + { 0x2F, 0x24 }, // (Offset,Value)-Pair #6 + { 0x30, 0x14 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetViewport+0x53 : jnz +0x12 + { 0x53, 0x75 }, // (Offset,Value)-Pair #8 + { 0x54, 0x12 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetViewport+0x9B : inc edx + { 0x9B, 0x42 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTransform +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTransform_1_0_4034 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTransform+0x44 : fld dword ptr [edx+0x28] + { 0x44, 0xD9 }, // (Offset,Value)-Pair #1 + { 0x45, 0x42 }, // (Offset,Value)-Pair #2 + { 0x46, 0x28 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTransform+0x51 : test ah, 0x44 + { 0x51, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x52, 0xC4 }, // (Offset,Value)-Pair #5 + { 0x53, 0x44 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetTransform+0x5F : fnstsw ax + { 0x5F, 0xDF }, // (Offset,Value)-Pair #7 + { 0x60, 0xE0 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetTransform+0x84 : fdivp st(1), st + { 0x84, 0xDE }, // (Offset,Value)-Pair #9 + { 0x85, 0xF9 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_CullMode +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetRenderState_CullMode_1_0_4034 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XREF_DXSRSCULLMODE, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirect3DDevice8_SetRenderState_CullMode+0x00 : push esi + { 0x00, 0x56 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_CullMode+0x19 : mov dword ptr [eax], 0x40308 + { 0x19, 0xC7 }, // (Offset,Value)-Pair #2 + { 0x1B, 0x08 }, // (Offset,Value)-Pair #3 + { 0x1C, 0x03 }, // (Offset,Value)-Pair #4 + { 0x1D, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_CullMode+0x24 : add eax, 8 + { 0x24, 0x83 }, // (Offset,Value)-Pair #6 + { 0x25, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x26, 0x08 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_CullMode+0x30 : retn 4 + { 0x30, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x31, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_CullMode+0x53 : add edx, 0x404 + { 0x53, 0x81 }, // (Offset,Value)-Pair #11 + { 0x54, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x55, 0x04 }, // (Offset,Value)-Pair #13 + { 0x56, 0x04 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * D3DDevice_BeginVisibilityTest +// ****************************************************************** +SOOVPA<7> D3DDevice_BeginVisibilityTest_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0A, 0x46 }, + { 0x13, 0xC7 }, + { 0x16, 0x17 }, + { 0x1C, 0x00 }, + { 0x22, 0x48 }, + { 0x28, 0x06 }, + } +}; + +// ****************************************************************** +// * D3DDevice_EndVisibilityTest +// ****************************************************************** +SOOVPA<7> D3DDevice_EndVisibilityTest_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, + { 0x16, 0x5E }, + { 0x22, 0x07 }, + { 0x2E, 0x00 }, + { 0x3A, 0x81 }, + { 0x46, 0x89 }, + { 0x55, 0x5F }, + } +}; + +// ****************************************************************** +// * D3DDevice_CopyRects +// ****************************************************************** +SOOVPA<8> D3DDevice_CopyRects_1_0_4034 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x57 }, + { 0x3E, 0xF6 }, + { 0x5E, 0xEB }, + { 0x7E, 0x00 }, + { 0x9E, 0x10 }, + { 0xBE, 0x24 }, + { 0xDE, 0x22 }, + { 0xFE, 0x14 }, + } +}; + +// ****************************************************************** +// * D3DDevice_DeletePatch +// ****************************************************************** +SOOVPA<7> D3DDevice_DeletePatch_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x0D }, + { 0x0C, 0xA1 }, + { 0x13, 0x34 }, + { 0x1A, 0x4E }, + { 0x21, 0x00 }, + { 0x2A, 0x56 }, + { 0x30, 0x5E }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVertices +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_DrawIndexedVertices_1_0_4034 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawIndexedVertices+0x0E : mov eax, [esi+0x1C] + { 0x0E, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0F, 0x46 }, // (Offset,Value)-Pair #2 + { 0x10, 0x1C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_DrawIndexedVertices+0x20 : push 0x0209 + { 0x20, 0x68 }, // (Offset,Value)-Pair #4 + { 0x21, 0x09 }, // (Offset,Value)-Pair #5 + { 0x22, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_DrawIndexedVertices+0x64 : dec eax + { 0x64, 0x48 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_DrawIndexedVertices+0xF1 : prefetchnta byte ptr [esi+0x3C] + { 0xF1, 0x0F }, // (Offset,Value)-Pair #8 + { 0xF2, 0x18 }, // (Offset,Value)-Pair #9 + { 0xF3, 0x46 }, // (Offset,Value)-Pair #10 + { 0xF4, 0x3C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetStreamSource +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetStreamSource_1_0_4034 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetStreamSource+0x08 : mov edi, [esp+8+0x04] + { 0x08, 0x8B }, // (Offset,Value)-Pair #1 + { 0x09, 0x7C }, // (Offset,Value)-Pair #2 + { 0x0A, 0x24 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x10 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetStreamSource+0x28 : jz +0x26 + { 0x28, 0x74 }, // (Offset,Value)-Pair #5 + { 0x29, 0x26 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetStreamSource+0x70 : or ecx, 0x40 + { 0x70, 0x83 }, // (Offset,Value)-Pair #7 + { 0x71, 0xC9 }, // (Offset,Value)-Pair #8 + { 0x72, 0x40 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetStreamSource+0x7E : or ecx, 0x70 + { 0x7E, 0x83 }, // (Offset,Value)-Pair #10 + { 0x7F, 0xC9 }, // (Offset,Value)-Pair #11 + { 0x80, 0x70 }, // (Offset,Value)-Pair #12 + + // IDirect3DDevice8_SetStreamSource+0x89 : retn 0x0C + { 0x89, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x8A, 0x0C }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * D3DDevice_SetTextureState_BorderColor +// ****************************************************************** +SOOVPA<7> D3DDevice_SetTextureState_BorderColor_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0E, 0xE8 }, + { 0x16, 0x08 }, + { 0x1E, 0x24 }, + { 0x26, 0x24 }, + { 0x2E, 0x89 }, + { 0x39, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetTextureState_ColorKeyColor +// ****************************************************************** +SOOVPA<7> D3DDevice_SetTextureState_ColorKeyColor_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0E, 0xE8 }, + { 0x16, 0x08 }, + { 0x1E, 0x89 }, + { 0x26, 0x04 }, + { 0x2E, 0x07 }, + { 0x36, 0xC2 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVertices +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_DrawVertices_1_0_4034 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawVertices+0x12 : mov edi, [esp+0x0C+0x0C] + { 0x12, 0x8B }, // (Offset,Value)-Pair #1 + { 0x13, 0x7C }, // (Offset,Value)-Pair #2 + { 0x14, 0x24 }, // (Offset,Value)-Pair #3 + { 0x15, 0x18 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_DrawVertices+0x16 : lea esi, [edi-1] + { 0x16, 0x8D }, // (Offset,Value)-Pair #5 + { 0x17, 0x77 }, // (Offset,Value)-Pair #6 + { 0x18, 0xFF }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_DrawVertices+0x7E : shl edi, 0x18 + { 0x7E, 0xC1 }, // (Offset,Value)-Pair #8 + { 0x7F, 0xE7 }, // (Offset,Value)-Pair #9 + { 0x80, 0x18 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_DrawVertices+0x9C : retn 0x0C + { 0x9C, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x9D, 0x0C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LoadVertexShader +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_LoadVertexShader_1_0_4034 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_LoadVertexShader+0x07 : mov al, [ebx+0x08] + { 0x07, 0x8A }, // (Offset,Value)-Pair #1 + { 0x08, 0x43 }, // (Offset,Value)-Pair #2 + { 0x09, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_LoadVertexShader+0x32 : mov dword ptr [eax], 0x00041E9C + { 0x32, 0xC7 }, // (Offset,Value)-Pair #4 + { 0x33, 0x00 }, // (Offset,Value)-Pair #5 + { 0x34, 0x9C }, // (Offset,Value)-Pair #6 + { 0x35, 0x1E }, // (Offset,Value)-Pair #7 + { 0x36, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_LoadVertexShader+0x4E : mov [ebx], ebx + { 0x4E, 0x89 }, // (Offset,Value)-Pair #9 + { 0x4F, 0x13 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * D3DDevice_DrawRectPatch +// ****************************************************************** +SOOVPA<8> D3DDevice_DrawRectPatch_1_0_4034 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x6C }, + { 0x3E, 0x3C }, + { 0x5E, 0x54 }, + { 0x7F, 0x89 }, + { 0x9E, 0x00 }, + { 0xBE, 0xD9 }, + { 0xDE, 0xD9 }, + { 0xFE, 0x86 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetIndices +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetIndices_1_0_4034 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetIndices+0x0E : jz +0x10 + { 0x0E, 0x74 }, // (Offset,Value)-Pair #1 + { 0x0F, 0x10 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetIndices+0x1E : jmp +0x0A + { 0x1E, 0xEB }, // (Offset,Value)-Pair #3 + { 0x1F, 0x0A }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetIndices+0x59 : mov [esi+0x1C], ecx + { 0x59, 0x89 }, // (Offset,Value)-Pair #5 + { 0x5A, 0x4E }, // (Offset,Value)-Pair #6 + { 0x5B, 0x1C }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetIndices+0x76 : mov [esi+0x0504], edi + { 0x76, 0x89 }, // (Offset,Value)-Pair #8 + { 0x77, 0xBE }, // (Offset,Value)-Pair #9 + { 0x78, 0x04 }, // (Offset,Value)-Pair #10 + { 0x79, 0x05 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_EdgeAntiAlias +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_EdgeAntiAlias_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0C, 0x72 }, + { 0x13, 0x8B }, + { 0x1A, 0x03 }, + { 0x21, 0x48 }, + { 0x28, 0x89 }, + { 0x2F, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_FillMode +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_FillMode_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x13, 0x8B }, + { 0x19, 0x8B }, + { 0x22, 0x4C }, + { 0x2B, 0x8C }, + { 0x34, 0x08 }, + { 0x40, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_BackFillMode +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderState_BackFillMode_1_0_4034 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x8B }, + { 0x0B, 0xA3 }, + { 0x14, 0x04 }, + { 0x23, 0x8B }, + { 0x2A, 0xC9 }, + { 0x35, 0xC7 }, + { 0x40, 0x08 }, + { 0x4C, 0x5F }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_FogColor +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_FogColor_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x06 }, + { 0x14, 0x8B }, + { 0x1C, 0x0E }, + { 0x26, 0xE7 }, + { 0x30, 0x00 }, + { 0x3A, 0x89 }, + { 0x44, 0x0D }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_FrontFace +// ****************************************************************** +SOOVPA<6> D3DDevice_SetRenderState_FrontFace_1_0_4034 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0E, 0xE8 }, + { 0x16, 0x08 }, + { 0x1E, 0x48 }, + { 0x2A, 0x89 }, + { 0x30, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_LogicOp +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_LogicOp_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x3B }, + { 0x14, 0x4C }, + { 0x1F, 0x04 }, + { 0x2A, 0x0D }, + { 0x35, 0xBC }, + { 0x40, 0x89 }, + { 0x4E, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleAntiAlias +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_MultiSampleAntiAlias_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, + { 0x17, 0x8B }, + { 0x23, 0x8B }, + { 0x2C, 0x8B }, + { 0x38, 0xC1 }, + { 0x40, 0x7C }, + { 0x4B, 0x08 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleMask +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_MultiSampleMask_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, + { 0x17, 0x8B }, + { 0x23, 0x8B }, + { 0x2C, 0x8B }, + { 0x38, 0x83 }, + { 0x40, 0x7C }, + { 0x4B, 0x08 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_NormalizeNormals +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_NormalizeNormals_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0E, 0xE8 }, + { 0x16, 0x08 }, + { 0x1E, 0x48 }, + { 0x26, 0x0D }, + { 0x2E, 0x00 }, + { 0x36, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_ShadowFunc +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_ShadowFunc_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0C, 0x72 }, + { 0x13, 0x8B }, + { 0x1A, 0x1E }, + { 0x21, 0xFF }, + { 0x28, 0x08 }, + { 0x31, 0x5E }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_Simple +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_Simple_1_0_4034 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_Simple+0x05 : add eax, 0x08 + { 0x05, 0x83 }, // (Offset,Value)-Pair #1 + { 0x06, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x07, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_Simple+0x0E : jnb +0x0C + { 0x0E, 0x73 }, // (Offset,Value)-Pair #4 + { 0x0F, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_Simple+0x15 : mov [eax-8], ecx + { 0x15, 0x89 }, // (Offset,Value)-Pair #6 + { 0x16, 0x48 }, // (Offset,Value)-Pair #7 + { 0x17, 0xF8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_Simple+0x18 : mov [eax-4], ecx + { 0x18, 0x89 }, // (Offset,Value)-Pair #9 + { 0x19, 0x50 }, // (Offset,Value)-Pair #10 + { 0x1A, 0xFC }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_Simple+0x25 : jmp +0xD9 + { 0x25, 0xEB }, // (Offset,Value)-Pair #12 + { 0x26, 0xD9 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_StencilEnable +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_StencilEnable_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x13, 0x8B }, + { 0x20, 0x02 }, + { 0x34, 0x85 }, + { 0x42, 0x75 }, + { 0x53, 0x89 }, + { 0x64, 0x00 }, + { 0x75, 0x83 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_StencilFail +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_StencilFail_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0C, 0x72 }, + { 0x1A, 0xC9 }, + { 0x2A, 0x85 }, + { 0x36, 0x74 }, + { 0x44, 0x83 }, + { 0x52, 0x24 }, + { 0x60, 0x10 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_YuvEnable +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_YuvEnable_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x56 }, + { 0x0B, 0xA3 }, + { 0x10, 0x8B }, + { 0x16, 0x05 }, + { 0x1C, 0x8B }, + { 0x25, 0x89 }, + { 0x28, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_TwoSidedLighting +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_TwoSidedLighting_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, + { 0x18, 0x15 }, + { 0x25, 0x46 }, + { 0x35, 0x8B }, + { 0x43, 0x75 }, + { 0x4C, 0x00 }, + { 0x59, 0x3D }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_VertexBlend +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_VertexBlend_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0xCA }, + { 0x13, 0x89 }, + { 0x19, 0x8B }, + { 0x25, 0x8B }, + { 0x2B, 0x28 }, + { 0x34, 0x08 }, + { 0x3D, 0x5E }, + } +}; + +// ****************************************************************** +// * Direct3D_CheckDeviceFormat +// ****************************************************************** +SOOVPA<7> Direct3D_CheckDeviceFormat_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0E, 0x18 }, + { 0x1E, 0x00 }, + { 0x2E, 0x42 }, + { 0x41, 0x40 }, + { 0x4E, 0x74 }, + { 0x5E, 0x08 }, + { 0x6E, 0x3C }, + } +}; + +// ****************************************************************** +// * Direct3D_SetPushBufferSize +// ****************************************************************** +SOOVPA<7> Direct3D_SetPushBufferSize_1_0_4034 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x07, 0x08 }, + { 0x0D, 0x89 }, + { 0x0E, 0x0D }, + { 0x13, 0xC2 }, + { 0x14, 0x08 }, + } +}; + +// ****************************************************************** +// * Get2DSurfaceDesc +// ****************************************************************** +/*SOOVPA<10> Get2DSurfaceDesc_1_0_4034 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // 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+0x62 : mov eax, [eax+0x21DC] + { 0x56, 0x8B }, // (Offset,Value)-Pair #5 + { 0x57, 0x80 }, // (Offset,Value)-Pair #6 + { 0x58, 0xDC }, // (Offset,Value)-Pair #7 + { 0x59, 0x21 }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDesc+0xAE : retn 0x0C + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xAF, 0x0C }, // (Offset,Value)-Pair #10 + } +};*/ + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ZEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_ZEnable_1_0_4034 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_ZEnable+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x1B : mov edx, [esi+0x2074h] + { 0x1B, 0x8B }, // (Offset,Value)-Pair #3 + { 0x1C, 0x96 }, // (Offset,Value)-Pair #4 + { 0x1D, 0xF4 }, // (Offset,Value)-Pair #5 + { 0x1E, 0x21 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x31 : mov dword ptr [eax], 0x4030C + { 0x31, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x32, 0x00 }, // (Offset,Value)-Pair #8 + { 0x33, 0x0C }, // (Offset,Value)-Pair #9 + { 0x34, 0x03 }, // (Offset,Value)-Pair #10 + { 0x35, 0x04 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x98 : retn 0x04 + { 0x98, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x99, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LightEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_LightEnable_1_0_4034 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_LightEnable+0x0F : cmp ebx, [esi+0x050C] + { 0x0F, 0x3B }, // (Offset,Value)-Pair #1 + { 0x10, 0x9E }, // (Offset,Value)-Pair #2 + { 0x11, 0x0C }, // (Offset,Value)-Pair #3 + { 0x12, 0x05 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_LightEnable+0x6B : test eax, eax + { 0x6B, 0x85 }, // (Offset,Value)-Pair #5 + { 0x6C, 0xC0 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_LightEnable+0x9E : mov eax, [eax+0x8C] + { 0x9E, 0x8B }, // (Offset,Value)-Pair #7 + { 0x9F, 0x80 }, // (Offset,Value)-Pair #8 + { 0xA0, 0x8C }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_LightEnable+0xBC : jz +0x12 + { 0xBC, 0x74 }, // (Offset,Value)-Pair #10 + { 0xBD, 0x12 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_LightEnable+0xE1 : retn 0x08 + { 0xE1, 0xC2 }, // (Offset,Value)-Pair #12 + { 0xE2, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_TextureFactor +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4034 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_TextureFactor+0x07 : mov eax, [esi+0x04E8] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x86 }, // (Offset,Value)-Pair #2 + { 0x09, 0xE8 }, // (Offset,Value)-Pair #3 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x2F : nop + { 0x2F, 0x90 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x41 : retn 0x04 + { 0x41, 0xC2 }, // (Offset,Value)-Pair #6 + { 0x42, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x4E : retn 0x04 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * Get2DSurfaceDesc +// ****************************************************************** +SOOVPA<10> Get2DSurfaceDesc_1_0_4034 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // 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+0x21FC] + { 0x52, 0x8B }, // (Offset,Value)-Pair #5 + { 0x53, 0x90 }, // (Offset,Value)-Pair #6 + { 0x54, 0xFC }, // (Offset,Value)-Pair #7 + { 0x55, 0x21 }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDesc+0xAE : retn 0x0C + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xAF, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Clear +// ****************************************************************** +LOOVPA<9> IDirect3DDevice8_Clear_1_0_4034 = +{ + 1, // Large == 1 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Clear+0x0000 : sub esp, 38h + { 0x0000, 0x83 }, // (Offset,Value)-Pair #1 + { 0x0001, 0xEC }, // (Offset,Value)-Pair #2 + { 0x0002, 0x38 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_Clear+0x000B : mov ebx, [ebp+0x21F4] + { 0x000B, 0x8B }, // (Offset,Value)-Pair #4 + { 0x000C, 0x9D }, // (Offset,Value)-Pair #5 + { 0x000D, 0xF4 }, // (Offset,Value)-Pair #6 + { 0x000E, 0x21 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_Clear+0x0399 : retn 0x18 + { 0x0399, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x039A, 0x18 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetLight +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetLight_1_0_4034 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetLight+0x11 : mov edi, [ebp+0x50C] + { 0x11, 0x8B }, // (Offset,Value)-Pair #1 + { 0x12, 0xBD }, // (Offset,Value)-Pair #2 + { 0x13, 0x0C }, // (Offset,Value)-Pair #3 + { 0x14, 0x05 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetLight+0x30 : shl eax, 0x04 + { 0x30, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x31, 0xE0 }, // (Offset,Value)-Pair #6 + { 0x32, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetLight+0xBD : rep stosb + { 0xBD, 0xF3 }, // (Offset,Value)-Pair #8 + { 0xBE, 0xAB }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetLight+0xFD : mov ecx, [ebx+0x68] + { 0xFD, 0x8B }, // (Offset,Value)-Pair #10 + { 0xFE, 0x4B }, // (Offset,Value)-Pair #11 + { 0xFF, 0x68 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DVertexBuffer8_Lock +// ****************************************************************** +SOOVPA<11> IDirect3DVertexBuffer8_Lock_1_0_4034 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DVertexBuffer8_Lock+0x01 : mov bl, [esp+0x18] + { 0x01, 0x8A }, // (Offset,Value)-Pair #1 + { 0x02, 0x5C }, // (Offset,Value)-Pair #2 + { 0x03, 0x24 }, // (Offset,Value)-Pair #3 + { 0x04, 0x18 }, // (Offset,Value)-Pair #4 + + // IDirect3DVertexBuffer8_Lock+0x09 : jnz +0x24 + { 0x09, 0x75 }, // (Offset,Value)-Pair #5 + { 0x0A, 0x24 }, // (Offset,Value)-Pair #6 + + // IDirect3DVertexBuffer8_Lock+0x2F : test bl, 0xA0 + { 0x2F, 0xF6 }, // (Offset,Value)-Pair #7 + { 0x30, 0xC3 }, // (Offset,Value)-Pair #8 + { 0x31, 0xA0 }, // (Offset,Value)-Pair #9 + + // IDirect3DVertexBuffer8_Lock+0x50 : retn 0x14 + { 0x50, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x51, 0x14 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTexture +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTexture_1_0_4034 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTexture+0x09 : push edi + { 0x09, 0x57 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetTexture+0x21 : jz +0x20 + { 0x21, 0x74 }, // (Offset,Value)-Pair #2 + { 0x22, 0x20 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTexture+0x33 : test ecx, 0x78FFFF + { 0x33, 0xF7 }, // (Offset,Value)-Pair #4 + { 0x34, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x37, 0x78 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetTexture+0x39 : mov [eax], edx + { 0x39, 0x89 }, // (Offset,Value)-Pair #7 + { 0x3A, 0x10 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetTexture+0xC9 : jz +0x4D + { 0xC9, 0x74 }, // (Offset,Value)-Pair #9 + { 0xCA, 0x4D }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPalette +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetPalette_1_0_4034 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPalette+0x0D : mov eax, [edi+esi*4+0x0C08] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0E, 0x84 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xBE }, // (Offset,Value)-Pair #3 + { 0x10, 0x08 }, // (Offset,Value)-Pair #4 + { 0x11, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetPalette+0x76 : add edi, 0x41B20 + { 0x76, 0x81 }, // (Offset,Value)-Pair #6 + { 0x77, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x78, 0x20 }, // (Offset,Value)-Pair #8 + { 0x79, 0x1B }, // (Offset,Value)-Pair #9 + { 0x7A, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetPalette+0x8A : retn 0x08 + { 0x8A, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x8B, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_TexCoordIndex +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4034 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x13 : shl eax, 0x07 + { 0x13, 0xC1 }, // (Offset,Value)-Pair #1 + { 0x14, 0xE0 }, // (Offset,Value)-Pair #2 + { 0x15, 0x07 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x25 : cmp eax, ecx + { 0x25, 0x3B }, // (Offset,Value)-Pair #4 + { 0x26, 0xC1 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x6C : mov edi, 0x2400 + { 0x6C, 0xBF }, // (Offset,Value)-Pair #6 + { 0x6E, 0x24 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0xB4 : shl edx, 0x04 + { 0xB4, 0xC1 }, // (Offset,Value)-Pair #8 + { 0xB5, 0xE2 }, // (Offset,Value)-Pair #9 + { 0xB6, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetMaterial +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetMaterial_1_0_4034 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetMaterial+0x0C : add edi, 0x0B70 + { 0x0C, 0x81 }, // (Offset,Value)-Pair #1 + { 0x0D, 0xC7 }, // (Offset,Value)-Pair #2 + { 0x0E, 0x70 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x0B }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetMaterial+0x12 : mov ecx, 0x11 + { 0x12, 0xB9 }, // (Offset,Value)-Pair #5 + { 0x13, 0x11 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetMaterial+0x1F : or ecx, 0x1000 + { 0x1F, 0x81 }, // (Offset,Value)-Pair #7 + { 0x20, 0xC9 }, // (Offset,Value)-Pair #8 + { 0x21, 0x00 }, // (Offset,Value)-Pair #9 + { 0x22, 0x10 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetMaterial+0x2D : retn 0x04 + { 0x2D, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x2E, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShader +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetVertexShader_1_0_4034 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShader+0x06 : test bl, 1 + { 0x06, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC3 }, // (Offset,Value)-Pair #2 + { 0x08, 0x01 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShader+0x11 : mov eax, [esi+0x04F8] + { 0x11, 0x8B }, // (Offset,Value)-Pair #4 + { 0x12, 0x86 }, // (Offset,Value)-Pair #5 + { 0x13, 0xF8 }, // (Offset,Value)-Pair #6 + { 0x14, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetVertexShader+0x90 : retn 0x04 + { 0x90, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x91, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_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 + } +}; + +// ****************************************************************** +// * D3DDevice_Swap +// ****************************************************************** +SOOVPA<11> D3DDevice_Swap_1_0_4034 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Swap+0x10 : mov ebx, 5 + { 0x10, 0xBB }, // (Offset,Value)-Pair #1 + { 0x11, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_Swap+0x1D : test bl, 3 + { 0x1D, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x1E, 0xC3 }, // (Offset,Value)-Pair #4 + { 0x1F, 0x03 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_Swap+0x30 : mov [esi+0x2C38], eax + { 0x30, 0x89 }, // (Offset,Value)-Pair #6 + { 0x31, 0x86 }, // (Offset,Value)-Pair #7 + { 0x32, 0x38 }, // (Offset,Value)-Pair #8 + { 0x33, 0x2C }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_Swap+0xB0 : retn 4 + { 0xB0, 0xC2 }, // (Offset,Value)-Pair #10 + { 0xB1, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3D8_KickOffAndWaitForIdle +// ****************************************************************** +SOOVPA<9> IDirect3D8_KickOffAndWaitForIdle_1_0_4034 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_KickOffAndWaitForIdle+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3D8_KickOffAndWaitForIdle+0x05 : mov ecx, [eax+0x30] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x48 }, // (Offset,Value)-Pair #3 + { 0x07, 0x30 }, // (Offset,Value)-Pair #4 + + // IDirect3D8_KickOffAndWaitForIdle+0x08 : push 0 + { 0x08, 0x6A }, // (Offset,Value)-Pair #5 + { 0x09, 0x00 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_KickOffAndWaitForIdle+0x0A : push ecx + { 0x0A, 0x51 }, // (Offset,Value)-Pair #7 + + // IDirect3D8_KickOffAndWaitForIdle+0x0B : call [addr] + { 0x0B, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3D8_KickOffAndWaitForIdle+0x10 : retn + { 0x10, 0xC3 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateImageSurface +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_CreateImageSurface_1_0_4034 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateImageSurface+0x2A : push 0x18 + { 0x2A, 0x6A }, // (Offset,Value)-Pair #1 + { 0x2B, 0x18 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreateImageSurface+0x2C : push 0x40 + { 0x2C, 0x6A }, // (Offset,Value)-Pair #3 + { 0x2D, 0x40 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_CreateImageSurface+0x3B : push 0x0404 + { 0x3B, 0x68 }, // (Offset,Value)-Pair #5 + { 0x3C, 0x04 }, // (Offset,Value)-Pair #6 + { 0x3D, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreateImageSurface+0x61 : retn 0x10 + { 0x61, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x62, 0x10 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetBackBuffer +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetBackBuffer_1_0_4034 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetBackBuffer+0x04 : cmp eax, 0xFFFFFFFF + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetBackBuffer+0x0D : jnz +0x07 + { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0E, 0x07 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetBackBuffer+0x18 : sbb eax, eax + { 0x18, 0x1B }, // (Offset,Value)-Pair #6 + { 0x19, 0xC0 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_GetBackBuffer+0x1D : mov eax, [ecx+eax*4+0x21FC] + { 0x1D, 0x8B }, // (Offset,Value)-Pair #8 + { 0x1E, 0x84 }, // (Offset,Value)-Pair #9 + { 0x1F, 0x81 }, // (Offset,Value)-Pair #10 + { 0x20, 0xFC }, // (Offset,Value)-Pair #11 + { 0x21, 0x21 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * D3D8_1_0_4034 +// ****************************************************************** +OOVPATable D3D8_1_0_4034[] = +{ + // IDirect3D8::CreateDevice (* unchanged since 1.0.3925 *) + { + (OOVPA*)&IDirect3D8_CreateDevice_1_0_3925, + + XTL::EmuIDirect3D8_CreateDevice, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CreateDevice" + #endif + }, + // IDirect3DDevice8::Clear + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_4034, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + // IDirect3DResource8::Register + { + (OOVPA*)&IDirect3DResource8_Register_1_0_3925, + + XTL::EmuIDirect3DResource8_Register, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Register" + #endif + }, + // IDirect3DDevice8::CreatePalette + { + (OOVPA*)&IDirect3DDevice8_CreatePalette_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePalette" + #endif + }, + + // ********************** BEG WARNING UNTESTED!!! ******************* + +#if 0 + // IDirect3DDevice8::BeginVisibilityTest + { + (OOVPA*)&IDirect3DDevice8_BeginVisibilityTest_1_0_3925, + + XTL::EmuIDirect3DDevice8_BeginVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginVisibilityTest" + #endif + }, + // IDirect3DDevice8::EndVisibilityTest + { + (OOVPA*)&IDirect3DDevice8_EndVisibilityTest_1_0_3925, + + XTL::EmuIDirect3DDevice8_EndVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndVisibilityTest" + #endif + }, + // IDirect3DDevice8::LoadVertexShader + { + (OOVPA*)&IDirect3DDevice8_LoadVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_LoadVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShader" + #endif + }, + // IDirect3DDevice8::SelectVertexShader + { + (OOVPA*)&IDirect3DDevice8_SelectVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_SelectVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SelectVertexShader" + #endif + }, + // IDirect3DDevice8::Release + { + (OOVPA*)&IDirect3DDevice8_Release_1_0_3925, + + XTL::EmuIDirect3DDevice8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Release" + #endif + }, + // IDirect3DDevice8::BlockUntilVerticalBlank + { + (OOVPA*)&IDirect3DDevice8_BlockUntilVerticalBlank_1_0_3925, + + XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockUntilVerticalBlank" + #endif + }, + // IDirect3DDevice8::SetVerticalBlankCallback + { + (OOVPA*)&IDirect3DDevice8_SetVerticalBlankCallback_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVerticalBlankCallback" + #endif + }, + // IDirect3DDevice8::SetRenderTarget + { + (OOVPA*)&IDirect3DDevice8_SetRenderTarget_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTarget" + #endif + }, + // IDirect3DDevice8::GetTransform + { + (OOVPA*)&IDirect3DDevice8_GetTransform_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTransform" + #endif + }, + // IDirect3DDevice8::SetStreamSource + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // IDirect3DDevice8::SetVertexShader + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::SetPixelShader + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + }, + // IDirect3DDevice8::SetIndices + { + (OOVPA*)&IDirect3DDevice8_SetIndices_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // IDirect3DDevice8::SetViewport + { + (OOVPA*)&IDirect3DDevice8_SetViewport_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport" + #endif + }, + // IDirect3DDevice8::SetTexture + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::DrawIndexedVertices + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_3925, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, + // IDirect3DDevice8::Begin + { + (OOVPA*)&IDirect3DDevice8_Begin_1_0_3925, + + XTL::EmuIDirect3DDevice8_Begin, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Begin" + #endif + }, + // IDirect3DDevice8::SetVertexData2f + { + (OOVPA*)&IDirect3DDevice8_SetVertexData2f_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::SetVertexData4f + { + (OOVPA*)&IDirect3DDevice8_SetVertexData4f_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexData4f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4f" + #endif + }, + // IDirect3DDevice8::SetVertexDataColor + { + (OOVPA*)&IDirect3DDevice8_SetVertexDataColor_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexDataColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexDataColor" + #endif + }, + // IDirect3DDevice8::End + { + (OOVPA*)&IDirect3DDevice8_End_1_0_3925, + + XTL::EmuIDirect3DDevice8_End, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_End" + #endif + }, + // IDirect3DDevice8::Clear + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_3925, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + // IDirect3DDevice8::SetPalette + { + (OOVPA*)&IDirect3DDevice8_SetPalette_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetPalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPalette" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant" + #endif + }, + // IDirect3DDevice8::SetFlickerFilter + { + (OOVPA*)&IDirect3DDevice8_SetFlickerFilter_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetFlickerFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetFlickerFilter" + #endif + }, + // IDirect3DDevice8::SetSoftDisplayFilter + { + (OOVPA*)&IDirect3DDevice8_SetSoftDisplayFilter_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetSoftDisplayFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSoftDisplayFilter" + #endif + }, + // IDirect3DDevice8::SetTextureState_TexCoordIndex + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, + // IDirect3DDevice8::SetTextureState_BorderColor + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BorderColor_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BorderColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_PSTextureModes + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_PSTextureModes_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_PSTextureModes, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_PSTextureModes" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilFail + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullMode + /*{ + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullMode" + #endif + },*/ + // IDirect3DDevice8::SetRenderState_Simple + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + }, + // IDirect3DDevice8::SetRenderState_FogColor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_Dxt1NoiseEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // IDirect3DDevice8::Present + { + (OOVPA*)&IDirect3DDevice8_Present_1_0_3925, + + XTL::EmuIDirect3DDevice8_Present, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Present" + #endif + }, + // IDirect3DDevice8::SetShaderConstantMode + { + (OOVPA*)&IDirect3DDevice8_SetShaderConstantMode_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetShaderConstantMode" + #endif + }, + // IDirect3DDevice8::GetBackBuffer + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetBackBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer" + #endif + }, + // IDirect3DDevice8::GetDepthStencilSurface + { + (OOVPA*)&IDirect3DDevice8_GetDepthStencilSurface_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetDepthStencilSurface, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDepthStencilSurface" + #endif + }, + // IDirect3DVertexBuffer8::Lock + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock_1_0_3925, + + XTL::EmuIDirect3DVertexBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock" + #endif + }, + // IDirect3DResource8::IsBusy + { + (OOVPA*)&IDirect3DResource8_IsBusy_1_0_3925, + + XTL::EmuIDirect3DResource8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_IsBusy" + #endif + }, + // Get2DSurfacDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_3925, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc" + #endif + }, + + // ********************** END WARNING UNTESTED!!! ******************* +#endif + + // IDirect3DDevice8::GetGammaRamp + { + (OOVPA*)&IDirect3DDevice8_GetGammaRamp_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetGammaRamp" + #endif + }, + // IDirect3DDevice8::GetCreationParameters + { + (OOVPA*)&IDirect3DDevice8_GetCreationParameters_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetCreationParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetCreationParameters" + #endif + }, + // IDirect3DDevice8::GetViewport + { + (OOVPA*)&IDirect3DDevice8_GetViewport_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetViewport" + #endif + }, + // IDirect3DDevice8::SetViewport + { + (OOVPA*)&IDirect3DDevice8_SetViewport_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport" + #endif + }, + // IDirect3DDevice8::SetTransform + { + (OOVPA*)&IDirect3DDevice8_SetTransform_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTransform" + #endif + }, + // IDirect3DDevice8::CreatePixelShader (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreatePixelShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePixelShader" + #endif + }, + // D3DDevice_GetVertexShaderSize (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_GetVertexShaderSize_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVertexShaderSize, + + #ifdef _DEBUG_TRACE + "D3DDevice_GetVertexShaderSize" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullMode" + #endif + }, + // IDirect3DDevice8::CreateCubeTexture (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateCubeTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateCubeTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateCubeTexture" + #endif + }, + // IDirect3DDevice8::GetDeviceCaps (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_GetDeviceCaps_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetDeviceCaps, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDeviceCaps" + #endif + }, + // IDirect3DDevice8::CreatePalette (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreatePalette_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePalette" + #endif + }, + // IDirect3DDevice8::CreateTexture (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture" + #endif + }, + // IDirect3DDevice8::CreateVolumeTexture (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateVolumeTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVolumeTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVolumeTexture" + #endif + }, + // IDirect3DDevice8::CreateIndexBuffer (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateIndexBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateIndexBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateIndexBuffer" + #endif + }, + // IDirect3DDevice8::CreateVertexShader (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexShader" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZBias (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZBias_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZBias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZBias" + #endif + }, + // IDirect3DDevice8::CreateVertexBuffer (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateVertexBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexBuffer" + #endif + }, + // IDirect3DResource8::Release (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Release_1_0_3925, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Release" + #endif + }, + // IDirect3DResource8::AddRef (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_AddRef_1_0_3925, + + XTL::EmuIDirect3DResource8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_AddRef" + #endif + }, + // IDirect3DPalette8::Lock (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DPalette8_Lock_1_0_3925, + + XTL::EmuIDirect3DPalette8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DPalette8_Lock" + #endif + }, + // IDirect3DTexture8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DTexture8_LockRect_1_0_3925, + + XTL::EmuIDirect3DTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_LockRect" + #endif + }, + // IDirect3DVolumeTexture8::LockBox (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DVolumeTexture8_LockBox_1_0_3925, + + XTL::EmuIDirect3DVolumeTexture8_LockBox, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVolumeTexture8_LockBox" + #endif + }, + // IDirect3DCubeTexture8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DCubeTexture8_LockRect_1_0_3925, + + XTL::EmuIDirect3DCubeTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DCubeTexture8_LockRect" + #endif + }, + // IDirect3DTexture8::GetSurfaceLevel (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DTexture8_GetSurfaceLevel_1_0_3925, + + XTL::EmuIDirect3DTexture8_GetSurfaceLevel, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetSurfaceLevel" + #endif + }, + // IDirect3DSurface8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DSurface8_LockRect_1_0_3925, + + XTL::EmuIDirect3DSurface8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_LockRect" + #endif + }, + // Lock2DSurface (* unchanged since 3925 *) + { + (OOVPA*)&Lock2DSurface_1_0_3925, + + XTL::EmuLock2DSurface, + + #ifdef _DEBUG_TRACE + "EmuLock2DSurface" + #endif + }, + // IDirect3DDevice8_SetGammaRamp (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_SetGammaRamp_1_0_3925, + XTL::EmuIDirect3DDevice8_SetGammaRamp, + + #ifdef _DEBUG_TRACE + "IDirect3DDevice8_SetGammaRamp" + #endif + }, + // IDirect3DDevice8::DrawVertices + { + (OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_4034, + + XTL::EmuIDirect3DDevice8_DrawVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVertices" + #endif + }, + // IDirect3DDevice8::DrawIndexedVertices + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_4034, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, + // D3DDevice_BeginVisibilityTest + { + (OOVPA*)&D3DDevice_BeginVisibilityTest_1_0_4034, + XTL::EmuIDirect3DDevice8_BeginVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginVisibilityTest" + #endif + }, + // D3DDevice_EndVisibilityTest + { + (OOVPA*)&D3DDevice_EndVisibilityTest_1_0_4034, + XTL::EmuIDirect3DDevice8_EndVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndVisibilityTest" + #endif + }, + // D3DDevice_CopyRects + { + (OOVPA*)&D3DDevice_CopyRects_1_0_4034, + XTL::EmuIDirect3DDevice8_CopyRects, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CopyRects" + #endif + }, + // D3DDevice_DeletePatch (TODO) + /*{ + (OOVPA*)&D3DDevice_DeletePatch_1_0_4034, + XTL::EmuIDirect3DDevice8_DeletePatch, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeletePatch" + #endif + },*/ + // D3DDevice_SetStreamSource + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4034, + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // D3DDevice_SetTextureState_BorderColor + { + (OOVPA*)&D3DDevice_SetTextureState_BorderColor_1_0_4034, + XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BorderColor" + #endif + }, + // D3DDevice_SetTextureState_ColorKeyColor + { + (OOVPA*)&D3DDevice_SetTextureState_ColorKeyColor_1_0_4034, + XTL::EmuIDirect3DDevice8_SetTextureState_ColorKeyColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_ColorKeyColor" + #endif + }, + // D3DDevice_LoadVertexShader + { + (OOVPA*)&IDirect3DDevice8_LoadVertexShader_1_0_4034, + XTL::EmuIDirect3DDevice8_LoadVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShader" + #endif + }, + // IDirect3DDevice8::GetVisibilityTestResult (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_GetVisibilityTestResult_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVisibilityTestResult, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVisibilityTestResult" + #endif + }, + // D3DDevice_DeleteVertexShader (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_DeleteVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_DeleteVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteVertexShader" + #endif + }, + // D3DDevice_DrawRectPatch + { + (OOVPA*)&D3DDevice_DrawRectPatch_1_0_4034, + XTL::EmuIDirect3DDevice8_DrawRectPatch, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawRectPatch" + #endif + }, + // D3DDevice_SetIndices + { + (OOVPA*)&IDirect3DDevice8_SetIndices_1_0_4034, + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // D3DDevice_SetRenderState_EdgeAntiAlias + { + (OOVPA*)&D3DDevice_SetRenderState_EdgeAntiAlias_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias" + #endif + }, + // D3DDevice_SetRenderState_FillMode + { + (OOVPA*)&D3DDevice_SetRenderState_FillMode_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // D3DDevice_SetRenderState_BackFillMode + { + (OOVPA*)&D3DDevice_SetRenderState_BackFillMode_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_BackFillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_BackFillMode" + #endif + }, + // D3DDevice_SetRenderState_FogColor + { + (OOVPA*)&D3DDevice_SetRenderState_FogColor_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // D3DDevice_SetRenderState_FrontFace + { + (OOVPA*)&D3DDevice_SetRenderState_FrontFace_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_FrontFace, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FrontFace" + #endif + }, + // D3DDevice_SetRenderState_LogicOp + { + (OOVPA*)&D3DDevice_SetRenderState_LogicOp_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_LogicOp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LogicOp" + #endif + }, + // D3DDevice_SetRenderState_MultiSampleAntiAlias + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleAntiAlias_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias" + #endif + }, + // D3DDevice_SetRenderState_MultiSampleMask + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleMask_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMask, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMask" + #endif + }, + // D3DDevice_SetRenderState_NormalizeNormals + { + (OOVPA*)&D3DDevice_SetRenderState_NormalizeNormals_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormals" + #endif + }, + // D3DDevice_SetRenderState_ShadowFunc + { + (OOVPA*)&D3DDevice_SetRenderState_ShadowFunc_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_ShadowFunc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ShadowFunc" + #endif + }, + // D3DDevice_SetRenderState_Simple + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + }, + // D3DDevice_SetRenderState_StencilEnable + { + (OOVPA*)&D3DDevice_SetRenderState_StencilEnable_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // D3DDevice_SetRenderState_StencilFail + { + (OOVPA*)&D3DDevice_SetRenderState_StencilFail_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // D3DDevice_SetRenderState_YuvEnable + { + (OOVPA*)&D3DDevice_SetRenderState_YuvEnable_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_YuvEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_YuvEnable" + #endif + }, + // D3DDevice_SetRenderState_TwoSidedLighting + { + (OOVPA*)&D3DDevice_SetRenderState_TwoSidedLighting_1_0_4034, + XTL::EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TwoSidedLighting" + #endif + }, + // D3DDevice_SetRenderState_VertexBlend + { + (OOVPA*)&D3DDevice_SetRenderState_VertexBlend_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_VertexBlend" + #endif + }, + // IDirect3D8_CheckDeviceFormat + { + (OOVPA*)&Direct3D_CheckDeviceFormat_1_0_4034, + XTL::EmuIDirect3D8_CheckDeviceFormat, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CheckDeviceFormat" + #endif + }, + // IDirect3D8_SetPushBufferSize + { + (OOVPA*)&Direct3D_SetPushBufferSize_1_0_4034, + XTL::EmuIDirect3D8_SetPushBufferSize, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_SetPushBufferSize" + #endif + }, + // Get2DSurfacDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_4034, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc" + #endif + }, + // IDirect3DTexture8::GetSurfaceLevel (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DTexture8_GetSurfaceLevel_1_0_3925, + + XTL::EmuIDirect3DTexture8_GetSurfaceLevel, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetSurfaceLevel" + #endif + }, + // D3DDevice_SetRenderState_ZEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // D3DDevice_LightEnable + { + (OOVPA*)&IDirect3DDevice8_LightEnable_1_0_4034, + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable" + #endif + }, + // D3DDevice_SetRenderState_TextureFactor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4034, + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // Direct3D_GetAdapterIdentifier (* unchanged since 3925 *) + { + (OOVPA*)&Direct3D_GetAdapterIdentifier_1_0_3925, + XTL::EmuIDirect3D8_GetAdapterIdentifier, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_GetAdapterIdentifier" + #endif + }, + // IDirect3DSurface8::GetDesc (* unchanged since 3925 *) + { + (OOVPA*)&D3DSurface_GetDesc_1_0_3925, + + XTL::EmuIDirect3DSurface8_GetDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_GetDesc" + #endif + }, + // Get2DSurfacDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_4034, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc" + #endif + }, + // IDirect3DDevice8::SetLight + { + (OOVPA*)&IDirect3DDevice8_SetLight_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight" + #endif + }, + // IDirect3DVertexBuffer8::Lock + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock_1_0_4034, + + XTL::EmuIDirect3DVertexBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock" + #endif + }, + // IDirect3DDevice8::SetTexture + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::SetPalette + { + (OOVPA*)&IDirect3DDevice8_SetPalette_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetPalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPalette" + #endif + }, + // IDirect3DDevice8::SetRenderState_TexCoordIndex + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, + // IDirect3DDevice8::SetMaterial + { + (OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetMaterial" + #endif + }, + // IDirect3DDevice8::SetVertexShader + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::Swap + { + (OOVPA*)&D3DDevice_Swap_1_0_4034, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap" + #endif + }, + // IDirect3D8::KickOffAndWaitForIdle + { + (OOVPA*)&IDirect3D8_KickOffAndWaitForIdle_1_0_4034, + + XTL::EmuIDirect3D8_KickOffAndWaitForIdle, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_KickOffAndWaitForIdle" + #endif + }, + // IDirect3DDevice8::CreateImageSurface (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_CreateImageSurface_1_0_4034, + + XTL::EmuIDirect3DDevice8_CreateImageSurface, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateImageSurface" + #endif + }, + // IDirect3DDevice8::GetBackBuffer + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetBackBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer" + #endif + }, + // D3DDevice_ + /*{ + (OOVPA*)&D3DDevice__1_0_4034, + XTL::EmuIDirect3DDevice8_, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_" + #endif + }, + // D3DDevice_ + { + (OOVPA*)&D3DDevice__1_0_4034, + XTL::EmuIDirect3DDevice8_, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_" + #endif + }, + // D3DDevice_ + { + (OOVPA*)&D3DDevice__1_0_4034, + XTL::EmuIDirect3DDevice8_, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_" + #endif + },*/ +}; + +// ****************************************************************** +// * D3D8_1_0_4034_SIZE +// ****************************************************************** +uint32 D3D8_1_0_4034_SIZE = sizeof(D3D8_1_0_4034); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4134.h b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4134.h new file mode 100644 index 000000000..b566e972e --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4134.h @@ -0,0 +1,45 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4134.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_1_0_4134_H +#define D3D8_1_0_4134_H + +#include "OOVPA.h" + +extern SOOVPA<10> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4134; +//extern SOOVPA<14> IDirect3DDevice8_SetRenderState_CullMode_1_0_4134; + +extern OOVPATable D3D8_1_0_4134[]; +extern uint32 D3D8_1_0_4134_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4134.inl b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4134.inl new file mode 100644 index 000000000..84bba9daa --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4134.inl @@ -0,0 +1,3837 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4134.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_TexCoordIndex +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x13 : shl eax, 0x07 + { 0x13, 0xC1 }, // (Offset,Value)-Pair #1 + { 0x14, 0xE0 }, // (Offset,Value)-Pair #2 + { 0x15, 0x07 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x25 : cmp eax, ecx + { 0x25, 0x3B }, // (Offset,Value)-Pair #4 + { 0x26, 0xC1 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x6C : mov edi, 0x2400 + { 0x6C, 0xBF }, // (Offset,Value)-Pair #6 + { 0x6E, 0x24 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0xB3 : shl edx, 0x04 + { 0xB4, 0xC1 }, // (Offset,Value)-Pair #8 + { 0xB5, 0xE2 }, // (Offset,Value)-Pair #9 + { 0xB6, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTransform +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTransform_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTransform+0x16 : lea edi, [ecx+ebx+0x750] + { 0x16, 0x8D }, // (Offset,Value)-Pair #1 + { 0x17, 0xBC }, // (Offset,Value)-Pair #2 + { 0x18, 0x19 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTransform+0x24 : repe movsd + { 0x24, 0xF3 }, // (Offset,Value)-Pair #4 + { 0x25, 0xA5 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTransform+0x78 : fld [edx+0x3C] + { 0x78, 0xD9 }, // (Offset,Value)-Pair #6 + { 0x79, 0x42 }, // (Offset,Value)-Pair #7 + { 0x7A, 0x3C }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetTransform+0x92 : jmp +0x10 + { 0x92, 0xEB }, // (Offset,Value)-Pair #9 + { 0x93, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3D8_CheckDeviceFormat +// ****************************************************************** +SOOVPA<8> IDirect3D8_CheckDeviceFormat_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_CheckDeviceFormat+0x0D : retn 0x18 + { 0x0D, 0xC2 }, // (Offset,Value)-Pair #1 + { 0x0E, 0x18 }, // (Offset,Value)-Pair #2 + + // IDirect3D8_CheckDeviceFormat+0x15 : jz +0x08 + { 0x15, 0x74 }, // (Offset,Value)-Pair #3 + { 0x16, 0x08 }, // (Offset,Value)-Pair #4 + + // IDirect3D8_CheckDeviceFormat+0x29 : mov cl, 0x80 + { 0x29, 0xB1 }, // (Offset,Value)-Pair #5 + { 0x2A, 0x80 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_CheckDeviceFormat+0x61 : retn 0x18 + { 0x61, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x62, 0x18 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3D8_GetAdapterModeCount +// ****************************************************************** +SOOVPA<12> IDirect3D8_GetAdapterModeCount_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_GetAdapterModeCount+0x25 : add edx, 0xFF + { 0x25, 0x81 }, // (Offset,Value)-Pair #1 + { 0x26, 0xE2 }, // (Offset,Value)-Pair #2 + { 0x27, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3D8_GetAdapterModeCount+0x47 : cmp edi, 0x04 + { 0x47, 0x83 }, // (Offset,Value)-Pair #4 + { 0x48, 0xFF }, // (Offset,Value)-Pair #5 + { 0x49, 0x04 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_GetAdapterModeCount+0x95 : shl eax, 0x02 + { 0x95, 0xC1 }, // (Offset,Value)-Pair #7 + { 0x96, 0xE0 }, // (Offset,Value)-Pair #8 + { 0x97, 0x02 }, // (Offset,Value)-Pair #9 + + // IDirect3D8_GetAdapterModeCount+0x99 : add esp, 0x08 + { 0x99, 0x83 }, // (Offset,Value)-Pair #10 + { 0x9A, 0xC4 }, // (Offset,Value)-Pair #11 + { 0x9B, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3D8_EnumAdapterModes +// ****************************************************************** +SOOVPA<10> IDirect3D8_EnumAdapterModes_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_EnumAdapterModes+0x00 : sub esp, 0x08 + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3D8_EnumAdapterModes+0xD1 : and edx, 0x0A + { 0xD1, 0x83 }, // (Offset,Value)-Pair #4 + { 0xD2, 0xE2 }, // (Offset,Value)-Pair #5 + { 0xD3, 0x0A }, // (Offset,Value)-Pair #6 + + // IDirect3D8_EnumAdapterModes+0xF5 : mov dword ptr[edi+0x10], 0x1E + { 0xF5, 0xC7 }, // (Offset,Value)-Pair #7 + { 0xF6, 0x47 }, // (Offset,Value)-Pair #8 + { 0xF7, 0x10 }, // (Offset,Value)-Pair #9 + { 0xF8, 0x1E }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LoadVertexShader +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_LoadVertexShader_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_LoadVertexShader+0x07 : mov al, [ebx+0x08] + { 0x07, 0x8A }, // (Offset,Value)-Pair #1 + { 0x08, 0x43 }, // (Offset,Value)-Pair #2 + { 0x09, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_LoadVertexShader+0x32 : mov dword ptr [eax], 0x00041E9C + { 0x32, 0xC7 }, // (Offset,Value)-Pair #4 + { 0x33, 0x00 }, // (Offset,Value)-Pair #5 + { 0x34, 0x9C }, // (Offset,Value)-Pair #6 + { 0x35, 0x1E }, // (Offset,Value)-Pair #7 + { 0x36, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_LoadVertexShader+0x4E : mov [ebx], ebx + { 0x4E, 0x89 }, // (Offset,Value)-Pair #9 + { 0x4F, 0x13 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_FogColor +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_FogColor_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_FogColor+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_FogColor+0x09 : cmp eax, [esi+4] + { 0x09, 0x3B }, // (Offset,Value)-Pair #3 + { 0x0A, 0x46 }, // (Offset,Value)-Pair #4 + { 0x0B, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_FogColor+0x25 : shl edi, 0x10 + { 0x25, 0xC1 }, // (Offset,Value)-Pair #6 + { 0x26, 0xE7 }, // (Offset,Value)-Pair #7 + { 0x27, 0x10 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_FogColor+0x40 : mov [esi], eax + { 0x40, 0x89 }, // (Offset,Value)-Pair #9 + { 0x41, 0x06 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Swap +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_Swap_1_0_4134 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Swap+0x10 : mov ebx, 5 + { 0x10, 0xBB }, // (Offset,Value)-Pair #1 + { 0x11, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_Swap+0x1D : test bl, 3 + { 0x1D, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x1E, 0xC3 }, // (Offset,Value)-Pair #4 + { 0x1F, 0x03 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_Swap+0x46 : inc dword ptr [esi+0x2ABC] + { 0x46, 0xFF }, // (Offset,Value)-Pair #6 + { 0x47, 0x86 }, // (Offset,Value)-Pair #7 + { 0x48, 0xBC }, // (Offset,Value)-Pair #8 + { 0x49, 0x2A }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_Swap+0xAE : retn 4 + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #10 + { 0xAF, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Clear +// ****************************************************************** +LOOVPA<9> IDirect3DDevice8_Clear_1_0_4134 = +{ + 1, // Large == 1 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Clear+0x0000 : sub esp, 38h + { 0x0000, 0x83 }, // (Offset,Value)-Pair #1 + { 0x0001, 0xEC }, // (Offset,Value)-Pair #2 + { 0x0002, 0x38 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_Clear+0x000B : mov ebx, [ebp+0x2074] + { 0x000B, 0x8B }, // (Offset,Value)-Pair #4 + { 0x000C, 0x9D }, // (Offset,Value)-Pair #5 + { 0x000D, 0x74 }, // (Offset,Value)-Pair #6 + { 0x000E, 0x20 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_Clear+0x0399 : retn 0x18 + { 0x0399, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x039A, 0x18 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetBackBuffer +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetBackBuffer_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetBackBuffer+0x04 : cmp eax, 0xFFFFFFFF + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetBackBuffer+0x0D : jnz +0x07 + { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0E, 0x07 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetBackBuffer+0x18 : sbb eax, eax + { 0x18, 0x1B }, // (Offset,Value)-Pair #6 + { 0x19, 0xC0 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_GetBackBuffer+0x1D : mov eax, [ecx+eax*4+0x207C] + { 0x1D, 0x8B }, // (Offset,Value)-Pair #8 + { 0x1E, 0x84 }, // (Offset,Value)-Pair #9 + { 0x1F, 0x81 }, // (Offset,Value)-Pair #10 + { 0x20, 0x7C }, // (Offset,Value)-Pair #11 + { 0x21, 0x20 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDepthStencilSurface +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_GetDepthStencilSurface_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetDepthStencilSurface+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_GetDepthStencilSurface+0x05 : mov eax, [eax + 0x2074] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x80 }, // (Offset,Value)-Pair #3 + { 0x07, 0x74 }, // (Offset,Value)-Pair #4 + { 0x08, 0x20 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetDepthStencilSurface+0x11 : mov [ecx], eax + { 0x11, 0x89 }, // (Offset,Value)-Pair #6 + { 0x12, 0x01 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_GetDepthStencilSurface+0x1D : retn 0x04 + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x1E, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderTarget +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderTarget_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderTarget+0x00 : sub esp, 0x3C + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x3C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderTarget+014 : jnz +0x0C + { 0x14, 0x75 }, // (Offset,Value)-Pair #4 + { 0x15, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderTarget+0x44 : push ebp + { 0x44, 0x55 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderTarget+0x79 : shr ecx, 0x14 + { 0x79, 0xC1 }, // (Offset,Value)-Pair #7 + { 0x7A, 0xE9 }, // (Offset,Value)-Pair #8 + { 0x7B, 0x14 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SelectVertexShader +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SelectVertexShader_1_0_4134 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SelectVertexShader+0x13 : mov [esi+0x384], eax + { 0x13, 0x89 }, // (Offset,Value)-Pair #1 + { 0x14, 0x86 }, // (Offset,Value)-Pair #2 + { 0x15, 0x84 }, // (Offset,Value)-Pair #3 + { 0x16, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SelectVertexShader+0x3B : mov dword ptr [eax], 0x00081E94 + { 0x3B, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x3C, 0x00 }, // (Offset,Value)-Pair #6 + { 0x3D, 0x94 }, // (Offset,Value)-Pair #7 + { 0x3E, 0x1E }, // (Offset,Value)-Pair #8 + { 0x3F, 0x08 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SelectVertexShader+0x55 : mov [esi], eax + { 0x55, 0x89 }, // (Offset,Value)-Pair #10 + { 0x56, 0x06 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CopyRects +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_CopyRects_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CopyRects+0x00 : sub esp, 0x01A0 + { 0x00, 0x81 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0xA0 }, // (Offset,Value)-Pair #3 + { 0x03, 0x01 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_CopyRects+0x6E : mov esi, [eax+0x201C] + { 0x6E, 0x8B }, // (Offset,Value)-Pair #5 + { 0x6F, 0xB0 }, // (Offset,Value)-Pair #6 + { 0x70, 0x1C }, // (Offset,Value)-Pair #7 + { 0x71, 0x20 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_CopyRects+0xDD : jnz +0x22 + { 0xDD, 0x75 }, // (Offset,Value)-Pair #9 + { 0xDE, 0x22 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateImageSurface +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_CreateImageSurface_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateImageSurface+0x2A : push 0x18 + { 0x2A, 0x6A }, // (Offset,Value)-Pair #1 + { 0x2B, 0x18 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreateImageSurface+0x2C : push 0x40 + { 0x2C, 0x6A }, // (Offset,Value)-Pair #3 + { 0x2D, 0x40 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_CreateImageSurface+0x3B : push 0x0404 + { 0x3B, 0x68 }, // (Offset,Value)-Pair #5 + { 0x3C, 0x04 }, // (Offset,Value)-Pair #6 + { 0x3D, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreateImageSurface+0x61 : retn 0x10 + { 0x61, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x62, 0x10 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderConstant +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetVertexShaderConstant_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShaderConstant+0x11 : mov cl, [ebx+0x08] + { 0x11, 0x8A }, // (Offset,Value)-Pair #1 + { 0x12, 0x4B }, // (Offset,Value)-Pair #2 + { 0x13, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderConstant+0x1A : test cl, 0x10 + { 0x1A, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x1B, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x1C, 0x10 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetVertexShaderConstant+0x60 : jle +0x19 + { 0x60, 0x7E }, // (Offset,Value)-Pair #7 + { 0x61, 0x19 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetVertexShaderConstant+0x98 : retn 0x0C + { 0x98, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x99, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShader +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetPixelShader_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPixelShader+0x0E : mov esi, [ebx+0x0370] + { 0x0E, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0F, 0xB3 }, // (Offset,Value)-Pair #2 + { 0x10, 0x70 }, // (Offset,Value)-Pair #3 + { 0x11, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetPixelShader+0x3A : or eax, 0x2000 + { 0x3A, 0x0D }, // (Offset,Value)-Pair #5 + { 0x3C, 0x20 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetPixelShader+0x78 : retn 0x04 + { 0x78, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x79, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetPixelShader+0xE3 : rep movsd + { 0xE3, 0xF3 }, // (Offset,Value)-Pair #9 + { 0xE4, 0xA5 }, // (Offset,Value)-Pair #10 + + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_BumpEnv +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetTextureState_BumpEnv_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_BumpEnv+0x18 : jnz +0x03 + { 0x18, 0x75 }, // (Offset,Value)-Pair #1 + { 0x19, 0x03 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetTextureState_BumpEnv+0x1D : test bl, 3 + { 0x1D, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x1E, 0xC3 }, // (Offset,Value)-Pair #4 + { 0x1F, 0x03 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTextureState_BumpEnv+0x32 : mov ecx, [esp+0x14] + { 0x32, 0x8B }, // (Offset,Value)-Pair #6 + { 0x33, 0x4C }, // (Offset,Value)-Pair #7 + { 0x34, 0x24 }, // (Offset,Value)-Pair #8 + { 0x35, 0x18 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetTextureState_BumpEnv+0x50 : shl esi, 5 + { 0x50, 0xC1 }, // (Offset,Value)-Pair #10 + { 0x51, 0xE6 }, // (Offset,Value)-Pair #11 + { 0x52, 0x05 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetIndices +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetIndices_1_0_4134 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetIndices+0x0E : jz +0x10 + { 0x0E, 0x74 }, // (Offset,Value)-Pair #1 + { 0x0F, 0x10 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetIndices+0x1E : jmp +0x0A + { 0x1E, 0xEB }, // (Offset,Value)-Pair #3 + { 0x1F, 0x0A }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetIndices+0x59 : mov [esi+0x1C], ecx + { 0x59, 0x89 }, // (Offset,Value)-Pair #5 + { 0x5A, 0x4E }, // (Offset,Value)-Pair #6 + { 0x5B, 0x1C }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetIndices+0x76 : mov [esi+0x038C], edi + { 0x76, 0x89 }, // (Offset,Value)-Pair #8 + { 0x77, 0xBE }, // (Offset,Value)-Pair #9 + { 0x78, 0x8C }, // (Offset,Value)-Pair #10 + { 0x79, 0x03 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_VertexBlend +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_VertexBlend_1_0_4134 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_VertexBlend+0x06 : or edx, 0x200 + { 0x06, 0x81 }, // (Offset,Value)-Pair #1 + { 0x07, 0xCA }, // (Offset,Value)-Pair #2 + { 0x08, 0x00 }, // (Offset,Value)-Pair #3 + { 0x09, 0x02 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_VertexBlend+0x1E : jb +0x05 + { 0x1E, 0x72 }, // (Offset,Value)-Pair #5 + { 0x1F, 0x05 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_VertexBlend+0x2F : mov [eax+4], ecx + { 0x2F, 0x89 }, // (Offset,Value)-Pair #7 + { 0x30, 0x48 }, // (Offset,Value)-Pair #8 + { 0x31, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_VertexBlend+0x3E : retn 0x04 + { 0x3E, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x3F, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_TextureFactor +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_TextureFactor+0x07 : mov eax, [esi+0x0370] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x86 }, // (Offset,Value)-Pair #2 + { 0x09, 0x70 }, // (Offset,Value)-Pair #3 + { 0x0A, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x2F : nop + { 0x2F, 0x90 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x41 : retn 0x04 + { 0x41, 0xC2 }, // (Offset,Value)-Pair #6 + { 0x42, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x4E : retn 0x04 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_EdgeAntiAlias +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x13 : mov ecx, [esp+0x08] + { 0x13, 0x8B }, // (Offset,Value)-Pair #5 + { 0x14, 0x4C }, // (Offset,Value)-Pair #6 + { 0x15, 0x24 }, // (Offset,Value)-Pair #7 + { 0x16, 0x08 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x2F : retn 0x04 + { 0x2F, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x30, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ZEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_ZEnable_1_0_4134 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_ZEnable+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x1B : mov edx, [esi+0x2074h] + { 0x1B, 0x8B }, // (Offset,Value)-Pair #3 + { 0x1C, 0x96 }, // (Offset,Value)-Pair #4 + { 0x1D, 0x74 }, // (Offset,Value)-Pair #5 + { 0x1E, 0x20 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x31 : mov dword ptr [eax], 0x4030C + { 0x31, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x32, 0x00 }, // (Offset,Value)-Pair #8 + { 0x33, 0x0C }, // (Offset,Value)-Pair #9 + { 0x34, 0x03 }, // (Offset,Value)-Pair #10 + { 0x35, 0x04 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x98 : retn 0x04 + { 0x98, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x99, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilEnable +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_StencilEnable_1_0_4134 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + { + // IDirect3DDevice8_SetRenderState_StencilEnable+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_StencilEnable+0x2C : jz +0x19 + { 0x2C, 0x74 }, // (Offset,Value)-Pair #3 + { 0x2D, 0x19 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_StencilEnable+0x4D : mov dword ptr [eax], 0x00041D84 + { 0x4D, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x4E, 0x00 }, // (Offset,Value)-Pair #6 + { 0x4F, 0x84 }, // (Offset,Value)-Pair #7 + { 0x50, 0x1D }, // (Offset,Value)-Pair #8 + { 0x51, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_StencilEnable+0x81 : retn 0x04 + { 0x81, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x82, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x04 : push esi + { 0x04, 0x56 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x05 : mov esi, dword ptr [addr] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x35 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x0B : mov ecx, esi + { 0x0B, 0x8B }, // (Offset,Value)-Pair #4 + { 0x0C, 0xCE }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x1C : jb +0x05 + { 0x1C, 0x72 }, // (Offset,Value)-Pair #6 + { 0x1D, 0x05 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x38 : shl ecx, 0x10 + { 0x38, 0xC1 }, // (Offset,Value)-Pair #8 + { 0x39, 0xE1 }, // (Offset,Value)-Pair #9 + { 0x3A, 0x10 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x4F : retn 0x04 + { 0x4F, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x50, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetTransform +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetTransform_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetTransform+0x0A : shl ecx, 0x06 + { 0x0A, 0xC1 }, // (Offset,Value)-Pair #1 + { 0x0B, 0xE1 }, // (Offset,Value)-Pair #2 + { 0x0C, 0x06 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetTransform+0x12 : lea esi, [ecx+eax+*numb*] + { 0x12, 0x8D }, // (Offset,Value)-Pair #4 + { 0x13, 0xB4 }, // (Offset,Value)-Pair #5 + { 0x14, 0x01 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetTransform+0x19 : mov ecx, 0x10 + { 0x19, 0xB9 }, // (Offset,Value)-Pair #7 + { 0x1A, 0x10 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetTransform+0x20 : pop edi, pop esi + { 0x20, 0x5F }, // (Offset,Value)-Pair #9 + { 0x21, 0x5E }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_GetTransform+0x22 : retn 0x08 + { 0x22, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x23, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetStreamSource +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetStreamSource_1_0_4134 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetStreamSource+0x08 : mov edi, [esp+8+0x04] + { 0x08, 0x8B }, // (Offset,Value)-Pair #1 + { 0x09, 0x7C }, // (Offset,Value)-Pair #2 + { 0x0A, 0x24 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x10 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetStreamSource+0x28 : jz +0x26 + { 0x28, 0x74 }, // (Offset,Value)-Pair #5 + { 0x29, 0x26 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetStreamSource+0x70 : or ecx, 0x40 + { 0x70, 0x83 }, // (Offset,Value)-Pair #7 + { 0x71, 0xC9 }, // (Offset,Value)-Pair #8 + { 0x72, 0x40 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetStreamSource+0x7E : or ecx, 0x70 + { 0x7E, 0x83 }, // (Offset,Value)-Pair #10 + { 0x7F, 0xC9 }, // (Offset,Value)-Pair #11 + { 0x80, 0x70 }, // (Offset,Value)-Pair #12 + + // IDirect3DDevice8_SetStreamSource+0x89 : retn 0x0C + { 0x89, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x8A, 0x0C }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShader +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetVertexShader_1_0_4134 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShader+0x06 : test bl, 1 + { 0x06, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC3 }, // (Offset,Value)-Pair #2 + { 0x08, 0x01 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShader+0x11 : mov eax, [esi+0x0380] + { 0x11, 0x8B }, // (Offset,Value)-Pair #4 + { 0x12, 0x86 }, // (Offset,Value)-Pair #5 + { 0x13, 0x80 }, // (Offset,Value)-Pair #6 + { 0x14, 0x03 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetVertexShader+0x90 : retn 0x04 + { 0x90, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x91, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_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 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVerticesUP +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_DrawVerticesUP_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawVerticesUP+0x03 : sub esp, 0x14 + { 0x03, 0x83 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x14 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_DrawVerticesUP+0x2F : mov edx, [edi+0x744] + { 0x2F, 0x8B }, // (Offset,Value)-Pair #4 + { 0x30, 0x97 }, // (Offset,Value)-Pair #5 + { 0x31, 0x44 }, // (Offset,Value)-Pair #6 + { 0x32, 0x07 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_DrawVerticesUP+0xC1 : cmp esi, 0x80 + { 0xC1, 0x81 }, // (Offset,Value)-Pair #8 + { 0xC2, 0xFE }, // (Offset,Value)-Pair #9 + { 0xC3, 0x80 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetLight +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetLight_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetLight+0x11 : mov edi, [ebp+0x394] + { 0x11, 0x8B }, // (Offset,Value)-Pair #1 + { 0x12, 0xBD }, // (Offset,Value)-Pair #2 + { 0x13, 0x94 }, // (Offset,Value)-Pair #3 + { 0x14, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetLight+0x30 : shl eax, 0x04 + { 0x30, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x31, 0xE0 }, // (Offset,Value)-Pair #6 + { 0x32, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetLight+0xBD : rep stosb + { 0xBD, 0xF3 }, // (Offset,Value)-Pair #8 + { 0xBE, 0xAB }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetLight+0xFD : mov ecx, [ebx+0x68] + { 0xFD, 0x8B }, // (Offset,Value)-Pair #10 + { 0xFE, 0x4B }, // (Offset,Value)-Pair #11 + { 0xFF, 0x68 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetMaterial +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetMaterial_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetMaterial+0x0C : add edi, 0x0940 + { 0x0C, 0x81 }, // (Offset,Value)-Pair #1 + { 0x0D, 0xC7 }, // (Offset,Value)-Pair #2 + { 0x0E, 0xF0 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x09 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetMaterial+0x12 : mov ecx, 0x11 + { 0x12, 0xB9 }, // (Offset,Value)-Pair #5 + { 0x13, 0x11 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetMaterial+0x1F : or ecx, 0x1000 + { 0x1F, 0x81 }, // (Offset,Value)-Pair #7 + { 0x20, 0xC9 }, // (Offset,Value)-Pair #8 + { 0x21, 0x00 }, // (Offset,Value)-Pair #9 + { 0x22, 0x10 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetMaterial+0x2D : retn 0x04 + { 0x2D, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x2E, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LightEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_LightEnable_1_0_4134 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_LightEnable+0x0F : cmp ebx, [esi+0x0394] + { 0x0F, 0x3B }, // (Offset,Value)-Pair #1 + { 0x10, 0x9E }, // (Offset,Value)-Pair #2 + { 0x11, 0x94 }, // (Offset,Value)-Pair #3 + { 0x12, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_LightEnable+0x6B : test eax, eax + { 0x6B, 0x85 }, // (Offset,Value)-Pair #5 + { 0x6C, 0xC0 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_LightEnable+0x9E : mov eax, [eax+0x8C] + { 0x9E, 0x8B }, // (Offset,Value)-Pair #7 + { 0x9F, 0x80 }, // (Offset,Value)-Pair #8 + { 0xA0, 0x8C }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_LightEnable+0xBC : jz +0x12 + { 0xBC, 0x74 }, // (Offset,Value)-Pair #10 + { 0xBD, 0x12 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_LightEnable+0xE1 : retn 0x08 + { 0xE1, 0xC2 }, // (Offset,Value)-Pair #12 + { 0xE2, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DSurface8_GetDesc +// ****************************************************************** +SOOVPA<15> IDirect3DSurface8_GetDesc_1_0_4134 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DSurface8_GetDesc+0x00 : mov eax, [esp+0x08] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x08 }, // (Offset,Value)-Pair #4 + + // IDirect3DSurface8_GetDesc+0x04 : mov ecx, [esp+0x04] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x4C }, // (Offset,Value)-Pair #6 + { 0x06, 0x24 }, // (Offset,Value)-Pair #7 + { 0x07, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DSurface8_GetDesc+0x08 : push eax + { 0x08, 0x50 }, // (Offset,Value)-Pair #9 + + // IDirect3DSurface8_GetDesc+0x09 : push 0 + { 0x09, 0x6A }, // (Offset,Value)-Pair #10 + { 0x0A, 0x00 }, // (Offset,Value)-Pair #11 + + // IDirect3DSurface8_GetDesc+0x0B : push ecx + { 0x0B, 0x51 }, // (Offset,Value)-Pair #12 + + // IDirect3DSurface8_GetDesc+0x0C : call [abs] + { 0x0C, 0xE8 }, // (Offset,Value)-Pair #13 + + // IDirect3DSurface8_GetDesc+0x11 : retn 0x08 + { 0x11, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x12, 0x08 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_NormalizeNormals +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x25 : or [addr], 0x200 + { 0x25, 0x81 }, // (Offset,Value)-Pair #3 + { 0x26, 0x0D }, // (Offset,Value)-Pair #4 + { 0x2B, 0x00 }, // (Offset,Value)-Pair #5 + { 0x2C, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x36 : retn 0x04 + { 0x36, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x37, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * Get2DSurfaceDesc +// ****************************************************************** +SOOVPA<10> Get2DSurfaceDesc_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // 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+0x21C0] + { 0x52, 0x8B }, // (Offset,Value)-Pair #5 + { 0x53, 0x90 }, // (Offset,Value)-Pair #6 + { 0x54, 0x7C }, // (Offset,Value)-Pair #7 + { 0x55, 0x20 }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDesc+0xAE : retn 0x0C + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xAF, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Reset +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_Reset_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Reset+0x15 : mov ecx, ebp + { 0x15, 0x8B }, // (Offset,Value)-Pair #1 + { 0x16, 0xCD }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_Reset+0x1E : jnz +0xF5 + { 0x1E, 0x75 }, // (Offset,Value)-Pair #3 + { 0x1F, 0xF5 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_Reset+0x27 : mov esi, [esp+0x14] + { 0x27, 0x8B }, // (Offset,Value)-Pair #5 + { 0x28, 0x74 }, // (Offset,Value)-Pair #6 + { 0x29, 0x24 }, // (Offset,Value)-Pair #7 + { 0x2A, 0x14 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_Reset+0x37 : jge +0x10 + { 0x37, 0x7D }, // (Offset,Value)-Pair #9 + { 0x38, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_TwoSidedLighting +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetTextureState_TwoSidedLighting_1_0_4134 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x11 : or edx, 0x1000 + { 0x11, 0x81 }, // (Offset,Value)-Pair #1 + { 0x12, 0xCA }, // (Offset,Value)-Pair #2 + { 0x13, 0x00 }, // (Offset,Value)-Pair #3 + { 0x14, 0x10 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x24 : cmp eax, [esi+4]; push edi + { 0x24, 0x3B }, // (Offset,Value)-Pair #5 + { 0x25, 0x46 }, // (Offset,Value)-Pair #6 + { 0x26, 0x04 }, // (Offset,Value)-Pair #7 + { 0x27, 0x57 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x53 : add eax, 0x0C + { 0x53, 0x83 }, // (Offset,Value)-Pair #9 + { 0x54, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x55, 0x0C }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x60 : retn 0x04 + { 0x60, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x61, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_BackFillMode +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_BackFillMode_1_0_4134 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_BackFillMode+0x1C : jb +0x05 + { 0x1C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x1D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_BackFillMode+0x35 : mov dword ptr [eax], abs + { 0x35, 0xC7 }, // (Offset,Value)-Pair #3 + { 0x36, 0x00 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_BackFillMode+0x3B : add eax, 0x0C; mov [esi], eax; mov [abs], edi + { 0x41, 0x83 }, // (Offset,Value)-Pair #5 + { 0x42, 0xC0 }, // (Offset,Value)-Pair #6 + { 0x43, 0x0C }, // (Offset,Value)-Pair #7 + { 0x44, 0x89 }, // (Offset,Value)-Pair #8 + { 0x45, 0x06 }, // (Offset,Value)-Pair #9 + { 0x46, 0x89 }, // (Offset,Value)-Pair #10 + { 0x47, 0x3D }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_BackFillMode+0x4E : retn 0x04 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_ColorKeyColor +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_ColorKeyColor+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetTextureState_ColorKeyColor+0x27 : add eax, 8; mov [esi], eax; shl ecx, 7 + { 0x27, 0x83 }, // (Offset,Value)-Pair #3 + { 0x28, 0xC0 }, // (Offset,Value)-Pair #4 + { 0x29, 0x08 }, // (Offset,Value)-Pair #5 + { 0x2A, 0x89 }, // (Offset,Value)-Pair #6 + { 0x2B, 0x06 }, // (Offset,Value)-Pair #7 + { 0x2C, 0xC1 }, // (Offset,Value)-Pair #8 + { 0x2D, 0xE1 }, // (Offset,Value)-Pair #9 + { 0x2E, 0x07 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetTextureState_ColorKeyColor+0x36 : retn 0x08 + { 0x36, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x37, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_FrontFace +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_FrontFace_1_0_4134 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirect3DDevice8_SetRenderState_FrontFace+0x36 : jmp IDirect3DDevice8_SetRenderState_CullMode + { 0x36, XREF_DXSRSCULLMODE}, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_FrontFace+0x09 : cmp eax, [esi+4] + { 0x09, 0x3B }, // (Offset,Value)-Pair #2 + { 0x0A, 0x46 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_FrontFace+0x13 : mov ecx, [esp+0x08] + { 0x13, 0x8B }, // (Offset,Value)-Pair #5 + { 0x14, 0x4C }, // (Offset,Value)-Pair #6 + { 0x15, 0x24 }, // (Offset,Value)-Pair #7 + { 0x16, 0x08 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_FrontFace+0x20 : add eax, 8 + { 0x20, 0x83 }, // (Offset,Value)-Pair #9 + { 0x21, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x22, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_LogicOp +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_LogicOp_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_LogicOp+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_LogicOp+0x1B : mov dword ptr [eax], 0x417BC + { 0x1B, 0xC7 }, // (Offset,Value)-Pair #3 + { 0x1C, 0x00 }, // (Offset,Value)-Pair #4 + { 0x1D, 0xBC }, // (Offset,Value)-Pair #5 + { 0x1E, 0x17 }, // (Offset,Value)-Pair #6 + { 0x1F, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_LogicOp+0x4F : retn 0x04 + { 0x4F, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x50, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilFail +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_StencilFail_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_StencilFail+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_StencilFail+0x38 : cmp [abs], 0x1E00 + { 0x38, 0x81 }, // (Offset,Value)-Pair #3 + { 0x3E, 0x00 }, // (Offset,Value)-Pair #4 + { 0x3F, 0x1E }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_StencilFail+0x47 : mov dword ptr [eax], 0x41D84 + { 0x47, 0xC7 }, // (Offset,Value)-Pair #6 + { 0x48, 0x00 }, // (Offset,Value)-Pair #7 + { 0x49, 0x84 }, // (Offset,Value)-Pair #8 + { 0x4A, 0x1D }, // (Offset,Value)-Pair #9 + { 0x4B, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_StencilFail+0x6A : retn 0x04 + { 0x6A, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x6B, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_OcclusionCullEnable +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x15 : jb +0x05 + { 0x15, 0x72 }, // (Offset,Value)-Pair #1 + { 0x16, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x41 : cmp [abs], 0x1E00 + { 0x41, 0x81 }, // (Offset,Value)-Pair #3 + { 0x47, 0x00 }, // (Offset,Value)-Pair #4 + { 0x48, 0x1E }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x50 : mov dword ptr [eax], 0x41D84 + { 0x50, 0xC7 }, // (Offset,Value)-Pair #6 + { 0x51, 0x00 }, // (Offset,Value)-Pair #7 + { 0x52, 0x84 }, // (Offset,Value)-Pair #8 + { 0x53, 0x1D }, // (Offset,Value)-Pair #9 + { 0x54, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x5F : retn 0x04 + { 0x5F, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x60, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilCullEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_StencilCullEnable_1_0_4134 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirect3DDevice8_SetRenderState_StencilCullEnable+0x0C : D3D__RenderState[D3DRS_STENCILCULLENABLE] + { 0x0C, XREF_D3DRS_STENCILCULLENABLE }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_StencilCullEnable+0x15 : jb +0x05 + { 0x15, 0x72 }, // (Offset,Value)-Pair #2 + { 0x16, 0x05 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_StencilCullEnable+0x41 : cmp [abs], 0x1E00 + { 0x41, 0x81 }, // (Offset,Value)-Pair #4 + { 0x47, 0x00 }, // (Offset,Value)-Pair #5 + { 0x48, 0x1E }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_StencilCullEnable+0x50 : mov dword ptr [eax], 0x41D84 + { 0x50, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x51, 0x00 }, // (Offset,Value)-Pair #8 + { 0x52, 0x84 }, // (Offset,Value)-Pair #9 + { 0x53, 0x1D }, // (Offset,Value)-Pair #10 + { 0x54, 0x04 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_StencilCullEnable+0x5F : retn 0x04 + { 0x5F, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x60, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_FillMode +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_FillMode_1_0_4134 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_FillMode+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_FillMode+0x21 : mov ecx, [esp+0x08] + { 0x21, 0x8B }, // (Offset,Value)-Pair #3 + { 0x22, 0x4C }, // (Offset,Value)-Pair #4 + { 0x23, 0x24 }, // (Offset,Value)-Pair #5 + { 0x24, 0x08 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_FillMode+0x25 : jnz +0x02 + { 0x25, 0x75 }, // (Offset,Value)-Pair #7 + { 0x26, 0x02 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_FillMode+0x35 : add eax, 0x0C + { 0x35, 0x83 }, // (Offset,Value)-Pair #9 + { 0x36, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x37, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD] + { 0x05, XREF_D3DRS_ROPZCMPALWAYSREAD }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #2 + { 0x01, 0x44 }, // (Offset,Value)-Pair #3 + { 0x02, 0x24 }, // (Offset,Value)-Pair #4 + { 0x03, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead+0x09 : call [abs] + { 0x09, 0xE8 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead+0x0E : retn 0x04 + { 0x0E, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #8 + { 0x10, 0x00 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_RopZRead +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_RopZRead_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirect3DDevice8_SetRenderState_RopZRead+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD] + { 0x05, XREF_D3DRS_ROPZREAD }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_RopZRead+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #2 + { 0x01, 0x44 }, // (Offset,Value)-Pair #3 + { 0x02, 0x24 }, // (Offset,Value)-Pair #4 + { 0x03, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_RopZRead+0x09 : call [abs] + { 0x09, 0xE8 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_RopZRead+0x0E : retn 0x04 + { 0x0E, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #8 + { 0x10, 0x00 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_DoNotCullUncompressed +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirect3DDevice8_SetRenderState_DoNotCullUncompressed+0x05 : D3D__RenderState[D3DRS_ROPZCMPALWAYSREAD] + { 0x05, XREF_D3DRS_DONOTCULLUNCOMPRESSED }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_DoNotCullUncompressed+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #2 + { 0x01, 0x44 }, // (Offset,Value)-Pair #3 + { 0x02, 0x24 }, // (Offset,Value)-Pair #4 + { 0x03, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_DoNotCullUncompressed+0x09 : call [abs] + { 0x09, 0xE8 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_DoNotCullUncompressed+0x0E : retn 0x04 + { 0x0E, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #8 + { 0x10, 0x00 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x0C : mov eax, [edi+0x2070] + { 0x0C, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0D, 0x86 }, // (Offset,Value)-Pair #2 + { 0x0E, 0x70 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x20 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x6E : add eax, 0x18 + { 0x6E, 0x83 }, // (Offset,Value)-Pair #5 + { 0x6F, 0xC0 }, // (Offset,Value)-Pair #6 + { 0x70, 0x18 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x7C : retn 0x04 + { 0x7C, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x7D, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleMask +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_MultiSampleMask_1_0_4134 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_MultiSampleMask+0x1C : jb +0x05 + { 0x1C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x1D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_MultiSampleMask+0x38 : and ecx, 0x0F; shl edx, 0x10 + { 0x38, 0x83 }, // (Offset,Value)-Pair #3 + { 0x39, 0xE1 }, // (Offset,Value)-Pair #4 + { 0x3A, 0x0F }, // (Offset,Value)-Pair #5 + { 0x3B, 0xC1 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_MultiSampleMask+0x3E : mov dword ptr [eax], 0x41D7C + { 0x3E, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x3F, 0x00 }, // (Offset,Value)-Pair #8 + { 0x40, 0x7C }, // (Offset,Value)-Pair #9 + { 0x41, 0x1D }, // (Offset,Value)-Pair #10 + { 0x42, 0x04 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_MultiSampleMask+0x4F : retn 0x04 + { 0x4F, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x50, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleMode +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_MultiSampleMode_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x0F : mov ecx, [eax+0x2070] + { 0x0F, 0x8B }, // (Offset,Value)-Pair #1 + { 0x10, 0x88 }, // (Offset,Value)-Pair #2 + { 0x11, 0x70 }, // (Offset,Value)-Pair #3 + { 0x12, 0x20 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x15 : cmp ecx, [eax+0x207C] + { 0x15, 0x3B }, // (Offset,Value)-Pair #5 + { 0x16, 0x88 }, // (Offset,Value)-Pair #6 + { 0x17, 0x7C }, // (Offset,Value)-Pair #7 + { 0x18, 0x20 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x1B : jnz +0x0D + { 0x1B, 0x75 }, // (Offset,Value)-Pair #9 + { 0x1C, 0x0D }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x2A : retn 0x04 + { 0x2A, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x2B, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode+0x0F : mov ecx, [eax+0x2070] + { 0x0F, 0x8B }, // (Offset,Value)-Pair #1 + { 0x10, 0x88 }, // (Offset,Value)-Pair #2 + { 0x11, 0x70 }, // (Offset,Value)-Pair #3 + { 0x12, 0x20 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode+0x15 : cmp ecx, [eax+0x207C] + { 0x15, 0x3B }, // (Offset,Value)-Pair #5 + { 0x16, 0x88 }, // (Offset,Value)-Pair #6 + { 0x17, 0x7C }, // (Offset,Value)-Pair #7 + { 0x18, 0x20 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode+0x1B : jz +0x0D + { 0x1B, 0x74 }, // (Offset,Value)-Pair #9 + { 0x1C, 0x0D }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode+0x2A : retn 0x04 + { 0x2A, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x2B, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ShadowFunc +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_4134 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x00 : push esi + { 0x00, 0x56 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x09 : cmp eax, [esi+4] + { 0x09, 0x3B }, // (Offset,Value)-Pair #2 + { 0x0A, 0x46 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #5 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x1D : lea edx, [ecx-0x0200] + { 0x1D, 0x8D }, // (Offset,Value)-Pair #7 + { 0x1E, 0x91 }, // (Offset,Value)-Pair #8 + { 0x1F, 0x00 }, // (Offset,Value)-Pair #9 + { 0x20, 0xFE }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x26 : add eax, 0x08 + { 0x26, 0x83 }, // (Offset,Value)-Pair #11 + { 0x27, 0xC0 }, // (Offset,Value)-Pair #12 + { 0x28, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_YuvEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_YuvEnable_1_0_4134 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_YuvEnable+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x10 : mov eax, [esi] + { 0x10, 0x8B }, // (Offset,Value)-Pair #5 + { 0x11, 0x06 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x12 : cmp eax, [esi+4] + { 0x12, 0x3B }, // (Offset,Value)-Pair #7 + { 0x13, 0x46 }, // (Offset,Value)-Pair #8 + { 0x14, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x15 : jb +0x05 + { 0x15, 0x72 }, // (Offset,Value)-Pair #10 + { 0x16, 0x05 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x28 : retn 0x04 + { 0x28, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x29, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVerticesUP +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_DrawIndexedVerticesUP_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawIndexedVerticesUP+0x4A : or edx, 0x800 + { 0x4A, 0x81 }, // (Offset,Value)-Pair #1 + { 0x4B, 0xCA }, // (Offset,Value)-Pair #2 + { 0x4C, 0x00 }, // (Offset,Value)-Pair #3 + { 0x4D, 0x08 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_DrawIndexedVerticesUP+0x5C : lea edx, [edi+0x6C4] + { 0x5C, 0x8D }, // (Offset,Value)-Pair #5 + { 0x5D, 0x97 }, // (Offset,Value)-Pair #6 + { 0x5E, 0xC4 }, // (Offset,Value)-Pair #7 + { 0x5F, 0x06 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_DrawIndexedVerticesUP+0x6A : mov eax, 0x10 + { 0x6A, 0xB8 }, // (Offset,Value)-Pair #9 + { 0x6B, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShaderConstant +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetPixelShaderConstant_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPixelShaderConstant+0x17 : test eax, eax + { 0x17, 0x85 }, // (Offset,Value)-Pair #1 + { 0x18, 0xC0 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetPixelShaderConstant+0x32 : add edi, 0x04 + { 0x32, 0x83 }, // (Offset,Value)-Pair #3 + { 0x33, 0xC7 }, // (Offset,Value)-Pair #4 + { 0x34, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetPixelShaderConstant+0x47 : jmp +0x07 + { 0x47, 0xEB }, // (Offset,Value)-Pair #6 + { 0x48, 0x07 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetPixelShaderConstant+0xC7 : fstp [esp+??] + { 0xC7, 0xD9 }, // (Offset,Value)-Pair #8 + { 0xC8, 0x1C }, // (Offset,Value)-Pair #9 + { 0xC9, 0x24 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * D3DDevice_DeletePixelShader +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_DeletePixelShader_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x75 }, + { 0x0A, 0x04 }, + { 0x0E, 0x09 }, + { 0x12, 0x04 }, + { 0x18, 0xC2 }, + { 0x1A, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_CullModeB +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_CullModeB_1_0_4134 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XREF_DXSRSCULLMODE, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirect3DDevice8_SetRenderState_CullModeB+0x22 : mov dword ptr [eax], 0x40308 + { 0x22, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x24, 0x08 }, // (Offset,Value)-Pair #2 + { 0x25, 0x03 }, // (Offset,Value)-Pair #3 + { 0x26, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_CullModeB+0x2D : add eax, 8 + { 0x2D, 0x83 }, // (Offset,Value)-Pair #5 + { 0x2E, 0xC0 }, // (Offset,Value)-Pair #6 + { 0x2F, 0x08 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_CullModeB+0x39 : retn 4 + { 0x39, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x3A, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_CullModeB+0x5C : add edx, 0x404 + { 0x5C, 0x81 }, // (Offset,Value)-Pair #10 + { 0x5D, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x5E, 0x04 }, // (Offset,Value)-Pair #12 + { 0x5F, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * D3DDevice_DeleteVertexShader +// ****************************************************************** +SOOVPA<6> X_D3DDevice_DeleteVertexShader_1_0_4134 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0xFF }, + { 0x0A, 0x08 }, + { 0x0E, 0x44 }, + { 0x16, 0xC2 }, + { 0x17, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetScreenSpaceOffset +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetScreenSpaceOffset_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0x56 }, + { 0x07, 0xD8 }, + { 0x08, 0x44 }, + { 0x09, 0x24 }, + { 0x0A, 0x08 }, + { 0x2E, 0x8B }, + { 0x2F, 0x06 }, + } +}; + +// ****************************************************************** +// * D3D::SetFence +// ****************************************************************** +SOOVPA<12> D3D_SetFence_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_D3D_SETFENCE, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x0D, 0x72 }, + { 0x0E, 0x0E }, + { 0x31, 0xBA }, + { 0x32, 0x90 }, + { 0x33, 0x1D }, + { 0x34, 0x04 }, + { 0x35, 0x00 }, + { 0x45, 0x83 }, + { 0x46, 0xE1 }, + { 0x47, 0x3F }, + { 0xAA, 0xC2 }, + { 0xAB, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_LineWidth +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_LineWidth_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0C, 0x89 }, + { 0x18, 0x04 }, + { 0x28, 0xD9 }, + { 0x32, 0x81 }, + { 0x3F, 0x8B }, + { 0x4C, 0x00 }, + { 0x59, 0x06 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BlockUntilVerticalBlank +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_BlockUntilVerticalBlank_1_0_4134 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_BlockUntilVerticalBlank+0x05 : push 0; push 0; push 1 + { 0x05, 0x6A }, // (Offset,Value)-Pair #1 + { 0x06, 0x00 }, // (Offset,Value)-Pair #2 + { 0x07, 0x6A }, // (Offset,Value)-Pair #3 + { 0x08, 0x00 }, // (Offset,Value)-Pair #4 + { 0x09, 0x6A }, // (Offset,Value)-Pair #5 + { 0x0A, 0x01 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x17 : add eax, 0x2430 + { 0x17, 0x05 }, // (Offset,Value)-Pair #7 + { 0x18, 0x30 }, // (Offset,Value)-Pair #8 + { 0x19, 0x24 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x1D : call [KrnlImport] + { 0x1D, 0xFF }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x23 : retn + { 0x23, 0xC3 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetSwapCallback +// ****************************************************************** +/* This may look the same as 4361, but accuracy is not gauranteed. + It might be a SetVerticalBlankCallback that has an identical signature... */ +SOOVPA<12> IDirect3DDevice8_SetSwapCallback_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVerticalBlankCallback+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x04 : mov ecx, [addr] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x0D }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x0A : mov [ecx+0x242C], eax + { 0x0A, 0x89 }, // (Offset,Value)-Pair #7 + { 0x0B, 0x81 }, // (Offset,Value)-Pair #8 + { 0x0C, 0x2C }, // (Offset,Value)-Pair #9 + { 0x0D, 0x24 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x10 : retn 0x04 + { 0x10, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x11, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetTile +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_GetTile_1_0_4134 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetTile+0x13 : lea esi, [ecx+eax*8+0x211C] + { 0x13, 0x8D }, // (Offset,Value)-Pair #1 + { 0x14, 0xB4 }, // (Offset,Value)-Pair #2 + { 0x15, 0xC1 }, // (Offset,Value)-Pair #3 + { 0x16, 0x1C }, // (Offset,Value)-Pair #4 + { 0x17, 0x21 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetTile+0x1A : mov ecx, 0x06 + { 0x1A, 0xB9 }, // (Offset,Value)-Pair #6 + { 0x1B, 0x06 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_GetTile+0x21 : pop edi; pop esi + { 0x21, 0x5F }, // (Offset,Value)-Pair #8 + { 0x22, 0x5E }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_GetTile+0x23 : retn 0x08 + { 0x23, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x24, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTile +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetTile_1_0_4134 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTileNoWait+0x00 : sub esp, 0x18 + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x18 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTileNoWait+0x16 : cmp [esi+4], eax + { 0x16, 0x39 }, // (Offset,Value)-Pair #4 + { 0x17, 0x46 }, // (Offset,Value)-Pair #5 + { 0x18, 0x04 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetTileNoWait+0x3D : lea edi, [edx+ecx*8+0x211C] + { 0x3D, 0x8D }, // (Offset,Value)-Pair #7 + { 0x3E, 0xBC }, // (Offset,Value)-Pair #8 + { 0x3F, 0xCB }, // (Offset,Value)-Pair #9 + { 0x40, 0x1C }, // (Offset,Value)-Pair #10 + { 0x41, 0x21 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * D3DDevice_IsBusy +// ****************************************************************** +SOOVPA<7> D3DDevice_IsBusy_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x8B }, + { 0x0C, 0x90 }, + { 0x13, 0x44 }, + { 0x1A, 0xFF }, + { 0x21, 0x01 }, + { 0x28, 0x00 }, + { 0x2F, 0xD2 }, + } +}; + +// ****************************************************************** +// * D3D::CDevice::KickOff +// ****************************************************************** +SOOVPA<12> D3D_CDevice_KickOff_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 0, // Xref Is Used + + { + // D3D::CDevice::KickOff+0x0D : test al, 4 + { 0x0D, 0xA8 }, + { 0x0E, 0x04 }, + // D3D::CDevice::KickOff+0x11 : mov ecx, [ecx+0x35C] + { 0x11, 0x8B }, + { 0x12, 0x89 }, + { 0x13, 0x5C }, + { 0x14, 0x03 }, + { 0x15, 0x00 }, + { 0x16, 0x00 }, + // D3D::CDevice::KickOff+0x26 : sfence + { 0x26, 0x0F }, + { 0x27, 0xAE }, + { 0x28, 0xF8 }, + // D3D::CDevice::KickOff+0xE3 : retn + { 0xE3, 0xC3 } + } +}; + +// ****************************************************************** +// * D3DDevice_BlockOnFence +// ****************************************************************** +SOOVPA<7> D3DDevice_BlockOnFence_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x8B }, + { 0x02, 0x24 }, + { 0x04, 0x6A }, + { 0x06, 0x50 }, + { 0x0C, 0xC2 }, + { 0x0D, 0x04 }, + { 0x0E, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetRenderTarget +// ****************************************************************** +SOOVPA<8> D3DDevice_GetRenderTarget_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x8B }, + { 0x06, 0x80 }, + { 0x0A, 0x00 }, + { 0x0E, 0x4C }, + { 0x12, 0x01 }, + { 0x16, 0xE8 }, + { 0x1B, 0x33 }, + { 0x1E, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Release +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_Release_1_0_4134 = +{ + 0, // Large == 0 + 11, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Release+0x07 : mov eax, [edi+0x043C] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x87 }, // (Offset,Value)-Pair #2 + { 0x09, 0x3C }, // (Offset,Value)-Pair #3 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_Release+0x0D : cmp eax, 1 + { 0x0D, 0x83 }, // (Offset,Value)-Pair #5 + { 0x0E, 0xF8 }, // (Offset,Value)-Pair #6 + { 0x0F, 0x01 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_Release+0x1B : mov ecx, 0x0AB8 + { 0x1B, 0xB9 }, // (Offset,Value)-Pair #8 + { 0x1C, 0xB8 }, // (Offset,Value)-Pair #9 + { 0x1D, 0x0A }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_Release+0x2E : dec eax + { 0x2E, 0x48 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDisplayMode +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_GetDisplayMode_1_0_4134 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetDisplayMode+0x01 : mov esi, ds:[*] + { 0x01, 0x8B }, // (Offset,Value)-Pair #1 + { 0x02, 0x35 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetDisplayMode+0x18 : shr ecx, 0x14 + { 0x18, 0xC1 }, // (Offset,Value)-Pair #3 + { 0x19, 0xE9 }, // (Offset,Value)-Pair #4 + { 0x1A, 0x14 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetDisplayMode+0x50 : shr eax, 0x0C + { 0x50, 0xC1 }, // (Offset,Value)-Pair #6 + { 0x51, 0xE8 }, // (Offset,Value)-Pair #7 + { 0x52, 0x0C }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetDisplayMode+0x6B : and eax, 0x0A + { 0x6B, 0x83 }, // (Offset,Value)-Pair #9 + { 0x6C, 0xE0 }, // (Offset,Value)-Pair #10 + { 0x6D, 0x0A }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_GetDisplayMode+0x92 : retn 0x04 + { 0x92, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x93, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * D3DDevice_SetShaderConstantMode +// ****************************************************************** +SOOVPA<7> D3DDevice_SetShaderConstantMode_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0xFD }, + { 0x3C, 0x8B }, + { 0x5B, 0x0B }, + { 0x7A, 0x56 }, + { 0x99, 0xC0 }, + { 0xB8, 0x00 }, + { 0xD7, 0xC7 }, + } +}; + +// ****************************************************************** +// * D3D8_1_0_4134 +// ****************************************************************** +OOVPATable D3D8_1_0_4134[] = +{ + // IDirect3D8::CreateDevice (* unchanged since 1.0.3925 *) + { + (OOVPA*)&IDirect3D8_CreateDevice_1_0_3925, + + XTL::EmuIDirect3D8_CreateDevice, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CreateDevice" + #endif + }, + // IDirect3D8::CheckDeviceFormat + { + (OOVPA*)&IDirect3D8_CheckDeviceFormat_1_0_4134, + + XTL::EmuIDirect3D8_CheckDeviceFormat, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CheckDeviceFormat" + #endif + }, + // IDirect3DDevice8::SetRenderState_TexCoordIndex + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullMode (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullMode" + #endif + }, + // IDirect3DDevice8::SetTransform + { + (OOVPA*)&IDirect3DDevice8_SetTransform_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTransform" + #endif + }, + // IDirect3DDevice8::SetRenderState_FogColor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::Swap + { + (OOVPA*)&IDirect3DDevice8_Swap_1_0_4134, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap" + #endif + }, + // IDirect3DDevice8::Clear + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_4134, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + + + // ********************** BEG WARNING UNTESTED!!! ******************* + + + // IDirect3DDevice8::GetDeviceCaps + { + (OOVPA*)&IDirect3DDevice8_GetDeviceCaps_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetDeviceCaps, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDeviceCaps" + #endif + }, + // IDirect3DDevice8::BeginVisibilityTest + { + (OOVPA*)&IDirect3DDevice8_BeginVisibilityTest_1_0_3925, + + XTL::EmuIDirect3DDevice8_BeginVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginVisibilityTest" + #endif + }, + // IDirect3DDevice8::EndVisibilityTest + { + (OOVPA*)&IDirect3DDevice8_EndVisibilityTest_1_0_3925, + + XTL::EmuIDirect3DDevice8_EndVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndVisibilityTest" + #endif + }, + // IDirect3DDevice8::LoadVertexShader + { + (OOVPA*)&IDirect3DDevice8_LoadVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_LoadVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShader" + #endif + }, + // IDirect3DDevice8::LoadVertexShader (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_LoadVertexShader_1_0_4034, + + XTL::EmuIDirect3DDevice8_LoadVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShader" + #endif + }, + // IDirect3DDevice8::SelectVertexShader + { + (OOVPA*)&IDirect3DDevice8_SelectVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_SelectVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SelectVertexShader" + #endif + }, + // IDirect3DDevice8::Release + { + (OOVPA*)&IDirect3DDevice8_Release_1_0_3925, + + XTL::EmuIDirect3DDevice8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Release" + #endif + }, + // IDirect3DDevice8::BlockUntilVerticalBlank + /*{ + (OOVPA*)&IDirect3DDevice8_BlockUntilVerticalBlank_1_0_3925, + + XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockUntilVerticalBlank" + #endif + },*/ + // IDirect3DDevice8::SetVerticalBlankCallback + { + (OOVPA*)&IDirect3DDevice8_SetVerticalBlankCallback_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVerticalBlankCallback" + #endif + }, + // IDirect3DDevice8::GetTransform + { + (OOVPA*)&IDirect3DDevice8_GetTransform_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTransform" + #endif + }, + // IDirect3DDevice8::SetStreamSource + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // IDirect3DDevice8::SetVertexShader + /* { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + },*/ + // IDirect3DDevice8::SetPixelShader + /*{ + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + },*/ + // IDirect3DDevice8::SetIndices + { + (OOVPA*)&IDirect3DDevice8_SetIndices_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // IDirect3DDevice8::SetViewport (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_SetViewport_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport" + #endif + }, + // IDirect3DDevice8::SetTexture + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::Begin + { + (OOVPA*)&IDirect3DDevice8_Begin_1_0_3925, + + XTL::EmuIDirect3DDevice8_Begin, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Begin" + #endif + }, + // IDirect3DDevice8::SetVertexData2f + { + (OOVPA*)&IDirect3DDevice8_SetVertexData2f_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::SetVertexData4f + { + (OOVPA*)&IDirect3DDevice8_SetVertexData4f_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexData4f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4f" + #endif + }, + // IDirect3DDevice8::SetVertexDataColor + { + (OOVPA*)&IDirect3DDevice8_SetVertexDataColor_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexDataColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexDataColor" + #endif + }, + // IDirect3DDevice8::End + { + (OOVPA*)&IDirect3DDevice8_End_1_0_3925, + + XTL::EmuIDirect3DDevice8_End, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_End" + #endif + }, + // IDirect3DDevice8::CreatePalette + { + (OOVPA*)&IDirect3DDevice8_CreatePalette_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePalette" + #endif + }, + // IDirect3DDevice8::SetPalette + { + (OOVPA*)&IDirect3DDevice8_SetPalette_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetPalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPalette" + #endif + }, + // IDirect3DDevice8::CreateTexture + { + (OOVPA*)&IDirect3DDevice8_CreateTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture" + #endif + }, + // IDirect3DDevice8::CreateVolumeTexture + { + (OOVPA*)&IDirect3DDevice8_CreateVolumeTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVolumeTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVolumeTexture" + #endif + }, + // IDirect3DDevice8::CreateCubeTexture + { + (OOVPA*)&IDirect3DDevice8_CreateCubeTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateCubeTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateCubeTexture" + #endif + }, + // IDirect3DDevice8::CreateIndexBuffer + { + (OOVPA*)&IDirect3DDevice8_CreateIndexBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateIndexBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateIndexBuffer" + #endif + }, + // IDirect3DDevice8::CreateVertexShader + { + (OOVPA*)&IDirect3DDevice8_CreateVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexShader" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant" + #endif + }, + // IDirect3DDevice8::SetFlickerFilter + { + (OOVPA*)&IDirect3DDevice8_SetFlickerFilter_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetFlickerFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetFlickerFilter" + #endif + }, + // IDirect3DDevice8::SetSoftDisplayFilter + { + (OOVPA*)&IDirect3DDevice8_SetSoftDisplayFilter_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetSoftDisplayFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSoftDisplayFilter" + #endif + }, + // IDirect3DDevice8::SetTextureState_BorderColor + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BorderColor_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BorderColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_PSTextureModes + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_PSTextureModes_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_PSTextureModes, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_PSTextureModes" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilFail + /*{ + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + },*/ + // IDirect3DDevice8::SetRenderState_Simple + /*{ + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + },*/ + // IDirect3DDevice8::SetRenderState_FogColor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode + /*{ + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + },*/ + // IDirect3DDevice8::SetRenderState_StencilEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_Dxt1NoiseEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZBias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZBias_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZBias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZBias" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // IDirect3DDevice8::Present + { + (OOVPA*)&IDirect3DDevice8_Present_1_0_3925, + + XTL::EmuIDirect3DDevice8_Present, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Present" + #endif + }, + // IDirect3DDevice8::SetShaderConstantMode + /*{ + (OOVPA*)&IDirect3DDevice8_SetShaderConstantMode_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetShaderConstantMode" + #endif + },*/ + // IDirect3DDevice8::GetBackBuffer + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetBackBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer" + #endif + }, + // IDirect3DDevice8::CreateVertexBuffer + { + (OOVPA*)&IDirect3DDevice8_CreateVertexBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexBuffer" + #endif + }, + // IDirect3DVertexBuffer8::Lock + /* { + (OOVPA*)&IDirect3DVertexBuffer8_Lock_1_0_3925, + + XTL::EmuIDirect3DVertexBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock" + #endif + },*/ + // IDirect3DResource8::Register + { + (OOVPA*)&IDirect3DResource8_Register_1_0_3925, + + XTL::EmuIDirect3DResource8_Register, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Register" + #endif + }, + // IDirect3DResource8::Release + { + (OOVPA*)&IDirect3DResource8_Release_1_0_3925, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Release" + #endif + }, + // IDirect3DResource8::AddRef + { + (OOVPA*)&IDirect3DResource8_AddRef_1_0_3925, + + XTL::EmuIDirect3DResource8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_AddRef" + #endif + }, + // IDirect3DResource8::IsBusy + { + (OOVPA*)&IDirect3DResource8_IsBusy_1_0_3925, + + XTL::EmuIDirect3DResource8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_IsBusy" + #endif + }, + // IDirect3DPalette8::Lock + { + (OOVPA*)&IDirect3DPalette8_Lock_1_0_3925, + + XTL::EmuIDirect3DPalette8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DPalette8_Lock" + #endif + }, + // IDirect3DTexture8::LockRect + { + (OOVPA*)&IDirect3DTexture8_LockRect_1_0_3925, + + XTL::EmuIDirect3DTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_LockRect" + #endif + }, + // IDirect3DVolumeTexture8::LockBox + { + (OOVPA*)&IDirect3DVolumeTexture8_LockBox_1_0_3925, + + XTL::EmuIDirect3DVolumeTexture8_LockBox, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVolumeTexture8_LockBox" + #endif + }, + // IDirect3DCubeTexture8::LockRect + { + (OOVPA*)&IDirect3DCubeTexture8_LockRect_1_0_3925, + + XTL::EmuIDirect3DCubeTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DCubeTexture8_LockRect" + #endif + }, + // IDirect3DTexture8::GetSurfaceLevel + { + (OOVPA*)&IDirect3DTexture8_GetSurfaceLevel_1_0_3925, + + XTL::EmuIDirect3DTexture8_GetSurfaceLevel, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetSurfaceLevel" + #endif + }, + // Get2DSurfacDesc + /*{ + (OOVPA*)&Get2DSurfaceDesc_1_0_3925, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc" + #endif + },*/ + + // ********************** END WARNING UNTESTED!!! ******************* + + // IDirect3DDevice8::GetBackBuffer + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer_1_0_4134, + + XTL::EmuIDirect3DDevice8_GetBackBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer" + #endif + }, + // IDirect3DDevice8::GetDepthStencilSurface + { + (OOVPA*)&IDirect3DDevice8_GetDepthStencilSurface_1_0_4134, + + XTL::EmuIDirect3DDevice8_GetDepthStencilSurface, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDepthStencilSurface" + #endif + }, + + // IDirect3DDevice8::SetRenderTarget + { + (OOVPA*)&IDirect3DDevice8_SetRenderTarget_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTarget" + #endif + }, + // IDirect3DDevice8::CreatePixelShader (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreatePixelShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePixelShader" + #endif + }, + // IDirect3DSurface8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DSurface8_LockRect_1_0_3925, + + XTL::EmuIDirect3DSurface8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_LockRect" + #endif + }, + // D3DDevice_DeleteVertexShader (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_DeleteVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_DeleteVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteVertexShader" + #endif + }, + // Lock2DSurface (* unchanged since 3925 *) + { + (OOVPA*)&Lock2DSurface_1_0_3925, + + XTL::EmuLock2DSurface, + + #ifdef _DEBUG_TRACE + "EmuLock2DSurface" + #endif + }, + // IDirect3DDevice8_SetGammaRamp (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_SetGammaRamp_1_0_3925, + XTL::EmuIDirect3DDevice8_SetGammaRamp, + + #ifdef _DEBUG_TRACE + "IDirect3DDevice8_SetGammaRamp" + #endif + }, + // IDirect3DDevice8::LoadVertexShader + { + (OOVPA*)&IDirect3DDevice8_LoadVertexShader_1_0_4134, + + XTL::EmuIDirect3DDevice8_LoadVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShader" + #endif + }, + // IDirect3DDevice8::SelectVertexShader + { + (OOVPA*)&IDirect3DDevice8_SelectVertexShader_1_0_4134, + + XTL::EmuIDirect3DDevice8_SelectVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SelectVertexShader" + #endif + }, + // IDirect3DDevice8::CopyRects + { + (OOVPA*)&IDirect3DDevice8_CopyRects_1_0_4134, + + XTL::EmuIDirect3DDevice8_CopyRects, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CopyRects" + #endif + }, + // IDirect3DDevice8::CreateImageSurface + { + (OOVPA*)&IDirect3DDevice8_CreateImageSurface_1_0_4034, + + XTL::EmuIDirect3DDevice8_CreateImageSurface, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateImageSurface" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant" + #endif + }, + // IDirect3DDevice8::SetPixelShader + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + }, + // IDirect3DDevice8::SetTextureState_BumpEnv + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BumpEnv_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_BumpEnv, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BumpEnv" + #endif + }, + // IDirect3DDevice8::SetIndices + { + (OOVPA*)&IDirect3DDevice8_SetIndices_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // IDirect3DDevice8::SetTexture (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::SetRenderState_VertexBlend + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_VertexBlend_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_VertexBlend" + #endif + }, + // IDirect3DDevice8::SetRenderState_TextureFactor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // IDirect3DDevice8::SetRenderState_EdgeAntiAlias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_Simple (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleAntiAlias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias" + #endif + }, + // IDirect3DDevice8::GetTransform + { + (OOVPA*)&IDirect3DDevice8_GetTransform_1_0_4134, + + XTL::EmuIDirect3DDevice8_GetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTransform" + #endif + }, + // IDirect3DDevice8::SetStreamSource + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // IDirect3DDevice8::SetVertexShader + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::DrawVertices (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_4034, + + XTL::EmuIDirect3DDevice8_DrawVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVertices" + #endif + }, + // IDirect3DDevice8::DrawVerticesUP + { + (OOVPA*)&IDirect3DDevice8_DrawVerticesUP_1_0_4134, + + XTL::EmuIDirect3DDevice8_DrawVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVerticesUP" + #endif + }, + // IDirect3DDevice8::DrawIndexedVertices (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_4034, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, + // IDirect3DDevice8::SetLight + { + (OOVPA*)&IDirect3DDevice8_SetLight_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight" + #endif + }, + // IDirect3DDevice8::SetMaterial + { + (OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetMaterial" + #endif + }, + // IDirect3DDevice8::LightEnable + { + (OOVPA*)&IDirect3DDevice8_LightEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable" + #endif + }, + // IDirect3DVertexBuffer8::Lock (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock_1_0_4034, + + XTL::EmuIDirect3DVertexBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock" + #endif + }, + // Get2DSurfacDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_4134, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc" + #endif + }, + // IDirect3DSurface8::GetDesc + { + (OOVPA*)&IDirect3DSurface8_GetDesc_1_0_4134, + + XTL::EmuIDirect3DSurface8_GetDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_GetDesc" + #endif + }, + // IDirect3DDevice8_SetRenderState_StencilFail + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // IDirect3DDevice8_SetRenderState_NormalizeNormals + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormals" + #endif + }, + // IDirect3DDevice8::Reset + { + (OOVPA*)&IDirect3DDevice8_Reset_1_0_4134, + + XTL::EmuIDirect3DDevice8_Reset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Reset" + #endif + }, + // IDirect3D8::KickOffAndWaitForIdle (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3D8_KickOffAndWaitForIdle_1_0_4034, + + XTL::EmuIDirect3D8_KickOffAndWaitForIdle, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_KickOffAndWaitForIdle" + #endif + }, + // IDirect3DDevice8::SetTextureState_TwoSidedLighting + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TwoSidedLighting_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting" + #endif + }, + // IDirect3DDevice8::SetRenderState_BackFillMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_BackFillMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_BackFillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_BackFillMode" + #endif + }, + // IDirect3DDevice8::SetTextureState_ColorKeyColor + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_ColorKeyColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_ColorKeyColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_FrontFace + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FrontFace_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FrontFace, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FrontFace" + #endif + }, + // IDirect3DDevice8::SetRenderState_LogicOp + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_LogicOp_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_LogicOp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LogicOp" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilFail + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // IDirect3DDevice8::SetRenderState_OcclusionCullEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilCullEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZCmpAlwaysRead + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZRead + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_DoNotCullUncompressed + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed" + #endif + }, + // IDirect3DDevice8::SetRenderState_Dxt1NoiseEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMask + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleMask_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMask, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMask" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleRenderTargetMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_ShadowFunc + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_ShadowFunc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ShadowFunc" + #endif + }, + // IDirect3DDevice8::SetRenderState_YuvEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_YuvEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_YuvEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_YuvEnable" + #endif + }, + // IDirect3DDevice8::DrawIndexedVerticesUP + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVerticesUP_1_0_4134, + + XTL::EmuIDirect3DDevice8_DrawIndexedVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVerticesUP" + #endif + }, + // IDirect3DDevice8::SetPixelShaderConstant + { + (OOVPA*)&IDirect3DDevice8_SetPixelShaderConstant_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetPixelShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderConstant" + #endif + }, + // IDirect3DDevice8::DeletePixelShader + { + (OOVPA*)&IDirect3DDevice8_DeletePixelShader_1_0_4134, + + XTL::EmuIDirect3DDevice8_DeletePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeletePixelShader" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullModeB (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullModeB_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullModeB" + #endif + }, + // D3DDevice_DeleteVertexShader (* unchanged since 4134 *) + { + (OOVPA*)&X_D3DDevice_DeleteVertexShader_1_0_4134, + + XTL::EmuIDirect3DDevice8_DeleteVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteVertexShader" + #endif + }, + // IDirect3DDevice8_SetScreenSpaceOffset + { + (OOVPA*)&IDirect3DDevice8_SetScreenSpaceOffset_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetScreenSpaceOffset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScreenSpaceOffset" + #endif + }, + // D3D::SetFence (XREF) + { + (OOVPA*)&D3D_SetFence_1_0_4134, 0, + + #ifdef _DEBUG_TRACE + "D3D::SetFence (XREF)" + #endif + }, + // IDirect3DDevice8::SetRenderState_LineWidth + { + (OOVPA*)&D3DDevice_SetRenderState_LineWidth_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_LineWidth, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LineWidth" + #endif + }, + + // IDirect3DDevice8::GetGammaRamp (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetGammaRamp_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetGammaRamp" + #endif + }, + // IDirect3DDevice8::BlockUntilVerticalBlank + { + (OOVPA*)&IDirect3DDevice8_BlockUntilVerticalBlank_1_0_4134, + + XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockUntilVerticalBlank" + #endif + }, + // IDirect3DDevice8::SetSwapCallback + { + (OOVPA*)&IDirect3DDevice8_SetSwapCallback_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetSwapCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSwapCallback" + #endif + }, + // IDirect3DDevice8::GetTile + { + (OOVPA*)&IDirect3DDevice8_GetTile_1_0_4134, + + XTL::EmuIDirect3DDevice8_GetTile, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTile" + #endif + }, + // IDirect3DDevice8::SetTile + { + (OOVPA*)&IDirect3DDevice8_SetTile_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTileNoWait, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTile" + #endif + }, + // IDirect3DDevice8::IsBusy + { + (OOVPA*)&D3DDevice_IsBusy_1_0_4134, + + XTL::EmuIDirect3DDevice8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_IsBusy" + #endif + }, + // D3DDevice_GetVertexShaderSize (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_GetVertexShaderSize_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVertexShaderSize, + + #ifdef _DEBUG_TRACE + "D3DDevice_GetVertexShaderSize" + #endif + }, + // D3D::CDevice::KickOff + { + (OOVPA*)&D3D_CDevice_KickOff_1_0_4134, + + XTL::EmuD3DDevice_KickOff, + + #ifdef _DEBUG_TRACE + "D3D::CDevice::KickOff" + #endif + }, + // IDirect3DDevice8::InsertFence (* unchanged since 3925 *) + { + (OOVPA*)&D3DDevice_InsertFence_1_0_3925, + + XTL::EmuIDirect3DDevice8_InsertFence, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_InsertFence" + #endif + }, + // IDirect3DDevice8::BlockOnFence + { + (OOVPA*)&D3DDevice_BlockOnFence_1_0_4134, + + XTL::EmuIDirect3DDevice8_BlockOnFence, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockOnFence" + #endif + }, + // IDirect3DDevice8::GetRenderTarget + { + (OOVPA*)&D3DDevice_GetRenderTarget_1_0_4134, + + XTL::EmuIDirect3DDevice8_GetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetRenderTarget" + #endif + }, + // IDirect3DDevice8::Release + { + (OOVPA*)&IDirect3DDevice8_Release_1_0_4134, + + XTL::EmuIDirect3DDevice8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Release" + #endif + }, + // IDirect3DDevice8::GetDisplayMode + { + (OOVPA*)&IDirect3DDevice8_GetDisplayMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_GetDisplayMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDisplayMode" + #endif + }, + // Direct3D_GetAdapterIdentifier (* unchanged since 3925 *) + { + (OOVPA*)&Direct3D_GetAdapterIdentifier_1_0_3925, + XTL::EmuIDirect3D8_GetAdapterIdentifier, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_GetAdapterIdentifier" + #endif + }, + // D3DDevice_SetShaderConstantMode + { + (OOVPA*)&D3DDevice_SetShaderConstantMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetShaderConstantMode" + #endif + }, + // IDirect3DDevice8::GetCreationParameters (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetCreationParameters_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetCreationParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetCreationParameters" + #endif + }, + // IDirect3DDevice8::GetVisibilityTestResult (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_GetVisibilityTestResult_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVisibilityTestResult, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVisibilityTestResult" + #endif + }, +}; + +// ****************************************************************** +// * D3D8_1_0_4134_SIZE +// ****************************************************************** +uint32 D3D8_1_0_4134_SIZE = sizeof(D3D8_1_0_4134); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4361.h b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4361.h new file mode 100644 index 000000000..ca06d6f2b --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4361.h @@ -0,0 +1,44 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4361.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_1_0_4361_H +#define D3D8_1_0_4361_H + +#include "OOVPA.h" + +extern SOOVPA<10> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4361; + +extern OOVPATable D3D8_1_0_4361[]; +extern uint32 D3D8_1_0_4361_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4361.inl b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4361.inl new file mode 100644 index 000000000..77615dfc2 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4361.inl @@ -0,0 +1,3749 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4361.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * IDirect3D8_CreateDevice +// ****************************************************************** +SOOVPA<8> IDirect3D8_CreateDevice_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_CreateDevice+0x07 : jnz +0x0A + { 0x07, 0x75 }, // (Offset,Value)-Pair #1 + { 0x08, 0x0A }, // (Offset,Value)-Pair #2 + + // IDirect3D8_CreateDevice+0x86 : repe stosd + { 0x86, 0xF3 }, // (Offset,Value)-Pair #3 + { 0x87, 0xAB }, // (Offset,Value)-Pair #4 + + // IDirect3D8_CreateDevice+0x89 : mov eax, esi + { 0x89, 0x8B }, // (Offset,Value)-Pair #5 + { 0x8A, 0xC6 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_CreateDevice+0xA0 : retn 0x18 + { 0xA0, 0xC2 }, // (Offset,Value)-Pair #7 + { 0xA1, 0x18 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3D8_CheckDeviceFormat +// ****************************************************************** +SOOVPA<8> IDirect3D8_CheckDeviceFormat_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_CheckDeviceFormat+0x0D : retn 0x18 + { 0x0D, 0xC2 }, // (Offset,Value)-Pair #1 + { 0x0E, 0x18 }, // (Offset,Value)-Pair #2 + + // IDirect3D8_CheckDeviceFormat+0x15 : jz +0x08 + { 0x15, 0x74 }, // (Offset,Value)-Pair #3 + { 0x16, 0x08 }, // (Offset,Value)-Pair #4 + + // IDirect3D8_CheckDeviceFormat+0x29 : mov cl, 0x80 + { 0x29, 0xB1 }, // (Offset,Value)-Pair #5 + { 0x2A, 0x80 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_CheckDeviceFormat+0x61 : retn 0x18 + { 0x61, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x62, 0x18 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVerticalBlankCallback +// ****************************************************************** +SOOVPA<6> IDirect3DDevice8_SetVerticalBlankCallback_1_0_4361 = +{ + 0, // Large == 0 + 6, // Count == 7 + + XRefNotSaved, + 0, // XRef Is Used + + { + { 0x01, 0x44 }, + { 0x03, 0x04 }, + { 0x05, 0x0D }, + { 0x0C, 0x30 }, + { 0x0D, 0x24 }, + { 0x11, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3D8_GetAdapterModeCount +// ****************************************************************** +SOOVPA<12> IDirect3D8_GetAdapterModeCount_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_GetAdapterModeCount+0x25 : add edx, 0xFF + { 0x25, 0x81 }, // (Offset,Value)-Pair #1 + { 0x26, 0xE2 }, // (Offset,Value)-Pair #2 + { 0x27, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3D8_GetAdapterModeCount+0x47 : cmp edi, 0x04 + { 0x47, 0x83 }, // (Offset,Value)-Pair #4 + { 0x48, 0xFF }, // (Offset,Value)-Pair #5 + { 0x49, 0x04 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_GetAdapterModeCount+0x95 : shl eax, 0x02 + { 0x95, 0xC1 }, // (Offset,Value)-Pair #7 + { 0x96, 0xE0 }, // (Offset,Value)-Pair #8 + { 0x97, 0x02 }, // (Offset,Value)-Pair #9 + + // IDirect3D8_GetAdapterModeCount+0x99 : add esp, 0x08 + { 0x99, 0x83 }, // (Offset,Value)-Pair #10 + { 0x9A, 0xC4 }, // (Offset,Value)-Pair #11 + { 0x9B, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3D8_GetAdapterDisplayMode +// ****************************************************************** +SOOVPA<13> IDirect3D8_GetAdapterDisplayMode_1_0_4361 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_GetAdapterDisplayMode+0x08 : mov eax, 0x8876086C + { 0x08, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x09, 0x6C }, // (Offset,Value)-Pair #2 + { 0x0A, 0x08 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x76 }, // (Offset,Value)-Pair #4 + { 0x0C, 0x88 }, // (Offset,Value)-Pair #5 + + // IDirect3D8_GetAdapterDisplayMode+0x18 : jnz +0x17 + { 0x18, 0x75 }, // (Offset,Value)-Pair #6 + { 0x19, 0x17 }, // (Offset,Value)-Pair #7 + + // IDirect3D8_GetAdapterDisplayMode+0x31 : mov ecx, [edx+0x2080] + { 0x31, 0x8B }, // (Offset,Value)-Pair #8 + { 0x32, 0x8A }, // (Offset,Value)-Pair #9 + { 0x33, 0x80 }, // (Offset,Value)-Pair #10 + { 0x34, 0x20 }, // (Offset,Value)-Pair #11 + + // IDirect3D8_GetAdapterDisplayMode+0xBD : retn 0x08 + { 0xBD, 0xC2 }, // (Offset,Value)-Pair #12 + { 0xBE, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3D8_EnumAdapterModes +// ****************************************************************** +SOOVPA<10> IDirect3D8_EnumAdapterModes_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_EnumAdapterModes+0x00 : sub esp, 0x08 + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3D8_EnumAdapterModes+0xD1 : and edx, 0x0A + { 0xD1, 0x83 }, // (Offset,Value)-Pair #4 + { 0xD2, 0xE2 }, // (Offset,Value)-Pair #5 + { 0xD3, 0x0A }, // (Offset,Value)-Pair #6 + + // IDirect3D8_EnumAdapterModes+0xF5 : mov dword ptr[edi+0x10], 0x1E + { 0xF5, 0xC7 }, // (Offset,Value)-Pair #7 + { 0xF6, 0x47 }, // (Offset,Value)-Pair #8 + { 0xF7, 0x10 }, // (Offset,Value)-Pair #9 + { 0xF8, 0x1E }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SelectVertexShader +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SelectVertexShader_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SelectVertexShader+0x13 : mov [esi+0x384], eax + { 0x13, 0x89 }, // (Offset,Value)-Pair #1 + { 0x14, 0x86 }, // (Offset,Value)-Pair #2 + { 0x15, 0x84 }, // (Offset,Value)-Pair #3 + { 0x16, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SelectVertexShader+0x3B : mov dword ptr [eax], 0x00081E94 + { 0x3B, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x3C, 0x00 }, // (Offset,Value)-Pair #6 + { 0x3D, 0x94 }, // (Offset,Value)-Pair #7 + { 0x3E, 0x1E }, // (Offset,Value)-Pair #8 + { 0x3F, 0x08 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SelectVertexShader+0x55 : mov [esi], eax + { 0x55, 0x89 }, // (Offset,Value)-Pair #10 + { 0x56, 0x06 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_AddRef +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_AddRef_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_AddRef+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_AddRef+0x05 : mov ecx, [eax+0x0440] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x88 }, // (Offset,Value)-Pair #3 + { 0x07, 0x40 }, // (Offset,Value)-Pair #4 + { 0x08, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_AddRef+0x0B : inc ecx + { 0x0B, 0x41 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_AddRef+0x05 : mov [eax+0x0440], ecx + { 0x0C, 0x89 }, // (Offset,Value)-Pair #7 + { 0x0D, 0x88 }, // (Offset,Value)-Pair #8 + { 0x0E, 0x40 }, // (Offset,Value)-Pair #9 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3D_ClearStateBlockFlags +// ****************************************************************** +SOOVPA<9> IDirect3D_ClearStateBlockFlags_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_CLEARSTATEBLOCKFLAGS, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirect3D_ClearStateBlockFlags+0x0A : movzx ecx, 0x82 + { 0x0A, 0xB9 }, // (Offset,Value)-Pair #1 + { 0x0B, 0x82 }, // (Offset,Value)-Pair #2 + + // IDirect3D_ClearStateBlockFlags+0x16 : mov ecx, [edx+0x0390] + { 0x16, 0x8B }, // (Offset,Value)-Pair #3 + { 0x17, 0x8A }, // (Offset,Value)-Pair #4 + { 0x18, 0x90 }, // (Offset,Value)-Pair #5 + { 0x19, 0x03 }, // (Offset,Value)-Pair #6 + + // IDirect3D_ClearStateBlockFlags+0x2F : add ecx, 0x90 + { 0x2F, 0x81 }, // (Offset,Value)-Pair #7 + { 0x30, 0xC1 }, // (Offset,Value)-Pair #8 + { 0x31, 0x90 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3D_RecordStateBlock +// ****************************************************************** +SOOVPA<10> IDirect3D_RecordStateBlock_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_RECORDSTATEBLOCK, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirect3D_RecordStateBlock+0x0F : mov eax, [edi+0x0390] + { 0x0F, 0x8B }, // (Offset,Value)-Pair #1 + { 0x10, 0x87 }, // (Offset,Value)-Pair #2 + { 0x11, 0x90 }, // (Offset,Value)-Pair #3 + { 0x12, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3D_RecordStateBlock+0x95 : add ebx, ecx + { 0x95, 0x03 }, // (Offset,Value)-Pair #5 + { 0x96, 0xD9 }, // (Offset,Value)-Pair #6 + + // IDirect3D_RecordStateBlock+0xD5 : mov dword ptr [esi+0x0C], 1 + { 0xD5, 0xC7 }, // (Offset,Value)-Pair #7 + { 0xD6, 0x46 }, // (Offset,Value)-Pair #8 + { 0xD7, 0x0C }, // (Offset,Value)-Pair #9 + { 0xD8, 0x01 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetGammaRamp +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetGammaRamp_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetGammaRamp+0x11 : and eax, 1; push ebx + { 0x11, 0x83 }, // (Offset,Value)-Pair #1 + { 0x12, 0xE0 }, // (Offset,Value)-Pair #2 + { 0x13, 0x01 }, // (Offset,Value)-Pair #3 + { 0x14, 0x53 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetGammaRamp+0x2F : rep movsd + { 0x2F, 0xF3 }, // (Offset,Value)-Pair #5 + { 0x30, 0xA5 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetGammaRamp+0x3E : push ebx; mov ecx, edx + { 0x3E, 0x53 }, // (Offset,Value)-Pair #7 + { 0x3F, 0x8B }, // (Offset,Value)-Pair #8 + { 0x40, 0xCA }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BeginStateBlock +// ****************************************************************** +SOOVPA<6> IDirect3DDevice8_BeginStateBlock_1_0_4361 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirect3DDevice8_BeginStateBlock+0x0F : call [ClearStateBlockFlags] + { 0x0A, XREF_CLEARSTATEBLOCKFLAGS }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_BeginStateBlock+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_BeginStateBlock+0x05 : mov [eax+8], 0x20 + { 0x05, 0x83 }, // (Offset,Value)-Pair #3 + { 0x06, 0x48 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + { 0x08, 0x20 }, // (Offset,Value)-Pair #6 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CaptureStateBlock +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_CaptureStateBlock_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CaptureStateBlock+0x36 : mov eax, [edi+eax*4+0x0A78] + { 0x36, 0x8B }, // (Offset,Value)-Pair #1 + { 0x37, 0x84 }, // (Offset,Value)-Pair #2 + { 0x38, 0x87 }, // (Offset,Value)-Pair #3 + { 0x39, 0x78 }, // (Offset,Value)-Pair #4 + { 0x3A, 0x0A }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_CaptureStateBlock+0xA9 : cmp dword ptr [esi+0x0C], 0 + { 0xA9, 0x83 }, // (Offset,Value)-Pair #6 + { 0xAA, 0x7E }, // (Offset,Value)-Pair #7 + { 0xAB, 0x0C }, // (Offset,Value)-Pair #8 + { 0xAC, 0x00 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * D3DDevice_DeleteStateBlock +// ****************************************************************** +SOOVPA<7> D3DDevice_DeleteStateBlock_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x11, 0x76 }, + { 0x24, 0x3B }, + { 0x37, 0xE8 }, + { 0x4A, 0x50 }, + { 0x5D, 0x74 }, + { 0x70, 0x06 }, + { 0x83, 0xEB }, + } +}; + + +// ****************************************************************** +// * IDirect3DDevice8_ApplyStateBlock +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_ApplyStateBlock_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_ApplyStateBlock+0x0E : lea esi, [edi+0x3C] + { 0x0E, 0x8D }, // (Offset,Value)-Pair #1 + { 0x0F, 0x77 }, // (Offset,Value)-Pair #2 + { 0x10, 0x3C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_ApplyStateBlock+0x34 : cmp [edi+8], ebp + { 0x34, 0x39 }, // (Offset,Value)-Pair #4 + { 0x35, 0x6F }, // (Offset,Value)-Pair #5 + { 0x36, 0x08 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_ApplyStateBlock+0x9E : sub eax, 0x60 + { 0x9E, 0x83 }, // (Offset,Value)-Pair #7 + { 0x9F, 0xE8 }, // (Offset,Value)-Pair #8 + { 0xA0, 0x60 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_EndStateBlock +// ****************************************************************** +SOOVPA<6> IDirect3DDevice8_EndStateBlock_1_0_4361 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirect3DDevice8_EndStateBlock+0x0F : call [ClearStateBlockFlags] + { 0x0A, XREF_RECORDSTATEBLOCK }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_EndStateBlock+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_EndStateBlock+0x05 : and [eax+8], 0xFFFFFFDF + { 0x05, 0x83 }, // (Offset,Value)-Pair #3 + { 0x06, 0x60 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + { 0x08, 0xDF }, // (Offset,Value)-Pair #6 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CopyRects +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_CopyRects_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CopyRects+0x00 : sub esp, 0x01A0 + { 0x00, 0x81 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0xA0 }, // (Offset,Value)-Pair #3 + { 0x03, 0x01 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_CopyRects+0x6E : mov esi, [eax+0x201C] + { 0x6E, 0x8B }, // (Offset,Value)-Pair #5 + { 0x6F, 0xB0 }, // (Offset,Value)-Pair #6 + { 0x70, 0x1C }, // (Offset,Value)-Pair #7 + { 0x71, 0x20 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_CopyRects+0xDD : jnz +0x22 + { 0xDD, 0x75 }, // (Offset,Value)-Pair #9 + { 0xDE, 0x22 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateImageSurface +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_CreateImageSurface_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateImageSurface+0x2A : push 0x18 + { 0x2A, 0x6A }, // (Offset,Value)-Pair #1 + { 0x2B, 0x18 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreateImageSurface+0x2C : push 0x40 + { 0x2C, 0x6A }, // (Offset,Value)-Pair #3 + { 0x2D, 0x40 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_CreateImageSurface+0x3B : push 0x0404 + { 0x3B, 0x68 }, // (Offset,Value)-Pair #5 + { 0x3C, 0x04 }, // (Offset,Value)-Pair #6 + { 0x3D, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreateImageSurface+0x61 : retn 0x10 + { 0x61, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x62, 0x10 }, // (Offset,Value)-Pair #9 + } +}; + + +// ****************************************************************** +// * IDirect3DDevice8_GetRenderTarget +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_GetRenderTarget_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetRenderTarget+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_GetRenderTarget+0x05 : mov eax, [eax + 0x2070] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x80 }, // (Offset,Value)-Pair #3 + { 0x07, 0x70 }, // (Offset,Value)-Pair #4 + { 0x08, 0x20 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetRenderTarget+0x11 : mov [ecx], eax + { 0x11, 0x89 }, // (Offset,Value)-Pair #6 + { 0x12, 0x01 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_GetRenderTarget+0x1D : retn 0x04 + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x1E, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderConstant +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetVertexShaderConstant_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShaderConstant+0x11 : mov cl, [ebx+0x08] + { 0x11, 0x8A }, // (Offset,Value)-Pair #1 + { 0x12, 0x4B }, // (Offset,Value)-Pair #2 + { 0x13, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderConstant+0x1A : test cl, 0x10 + { 0x1A, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x1B, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x1C, 0x10 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetVertexShaderConstant+0x60 : jle +0x19 + { 0x60, 0x7E }, // (Offset,Value)-Pair #7 + { 0x61, 0x19 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetVertexShaderConstant+0x98 : retn 0x0C + { 0x98, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x99, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShader +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetPixelShader_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPixelShader+0x0E : mov esi, [ebx+0x0370] + { 0x0E, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0F, 0xB3 }, // (Offset,Value)-Pair #2 + { 0x10, 0x70 }, // (Offset,Value)-Pair #3 + { 0x11, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetPixelShader+0x3A : or eax, 0x2000 + { 0x3A, 0x0D }, // (Offset,Value)-Pair #5 + { 0x3C, 0x20 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetPixelShader+0x78 : retn 0x04 + { 0x78, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x79, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetPixelShader+0xE3 : rep movsd + { 0xE3, 0xF3 }, // (Offset,Value)-Pair #9 + { 0xE4, 0xA5 }, // (Offset,Value)-Pair #10 + + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetViewport +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_GetViewport_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetViewport+0x05 : push esi; push edi + { 0x05, 0x56 }, // (Offset,Value)-Pair #1 + { 0x06, 0x57 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetViewport+0x0B : lea esi, [eax+0x9D0] + { 0x0B, 0x8D }, // (Offset,Value)-Pair #3 + { 0x0C, 0xB0 }, // (Offset,Value)-Pair #4 + { 0x0D, 0xD0 }, // (Offset,Value)-Pair #5 + { 0x0E, 0x09 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetViewport+0x11 : mov ecx, 6 + { 0x11, 0xB9 }, // (Offset,Value)-Pair #7 + { 0x12, 0x06 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetViewport+0x1A : retn 0x04 + { 0x1A, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1B, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_BumpEnv +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetTextureState_BumpEnv_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_BumpEnv+0x18 : jnz +0x03 + { 0x18, 0x75 }, // (Offset,Value)-Pair #1 + { 0x19, 0x03 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetTextureState_BumpEnv+0x1D : test bl, 3 + { 0x1D, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x1E, 0xC3 }, // (Offset,Value)-Pair #4 + { 0x1F, 0x03 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTextureState_BumpEnv+0x32 : mov ecx, [esp+0x14] + { 0x32, 0x8B }, // (Offset,Value)-Pair #6 + { 0x33, 0x4C }, // (Offset,Value)-Pair #7 + { 0x34, 0x24 }, // (Offset,Value)-Pair #8 + { 0x35, 0x18 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetTextureState_BumpEnv+0x50 : shl esi, 5 + { 0x50, 0xC1 }, // (Offset,Value)-Pair #10 + { 0x51, 0xE6 }, // (Offset,Value)-Pair #11 + { 0x52, 0x05 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_BorderColor +// ****************************************************************** +SOOVPA<15> IDirect3DDevice8_SetTextureState_BorderColor_1_0_4361 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_BorderColor+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetTextureState_BorderColor+0x19 : shl edx, 6 + { 0x19, 0xC1 }, // (Offset,Value)-Pair #3 + { 0x1A, 0xE2 }, // (Offset,Value)-Pair #4 + { 0x1B, 0x06 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTextureState_BorderColor+0x2B : add eax, 8; mov [esi], eax; shl ecx, 7 + { 0x2B, 0x83 }, // (Offset,Value)-Pair #6 + { 0x2C, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x2D, 0x08 }, // (Offset,Value)-Pair #8 + { 0x2E, 0x89 }, // (Offset,Value)-Pair #9 + { 0x2F, 0x06 }, // (Offset,Value)-Pair #10 + { 0x30, 0xC1 }, // (Offset,Value)-Pair #11 + { 0x31, 0xE1 }, // (Offset,Value)-Pair #12 + { 0x32, 0x07 }, // (Offset,Value)-Pair #13 + + // IDirect3DDevice8_SetTextureState_BorderColor+0x3A : retn 0x08 + { 0x3A, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x3B, 0x08 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetIndices +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetIndices_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetIndices+0x0E : jz +0x10 + { 0x0E, 0x74 }, // (Offset,Value)-Pair #1 + { 0x0F, 0x10 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetIndices+0x1E : jmp +0x0A + { 0x1E, 0xEB }, // (Offset,Value)-Pair #3 + { 0x1F, 0x0A }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetIndices+0x59 : mov [esi+0x1C], ecx + { 0x59, 0x89 }, // (Offset,Value)-Pair #5 + { 0x5A, 0x4E }, // (Offset,Value)-Pair #6 + { 0x5B, 0x1C }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetIndices+0x76 : mov [esi+0x038C], edi + { 0x76, 0x89 }, // (Offset,Value)-Pair #8 + { 0x77, 0xBE }, // (Offset,Value)-Pair #9 + { 0x78, 0x8C }, // (Offset,Value)-Pair #10 + { 0x79, 0x03 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTexture +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTexture_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTexture+0x09 : push edi + { 0x09, 0x57 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetTexture+0x21 : jz +0x20 + { 0x21, 0x74 }, // (Offset,Value)-Pair #2 + { 0x22, 0x20 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTexture+0x33 : test ecx, 0x78FFFF + { 0x33, 0xF7 }, // (Offset,Value)-Pair #4 + { 0x34, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x37, 0x78 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetTexture+0x39 : mov [eax], edx + { 0x39, 0x89 }, // (Offset,Value)-Pair #7 + { 0x3A, 0x10 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetTexture+0xC9 : jz +0x4D + { 0xC9, 0x74 }, // (Offset,Value)-Pair #9 + { 0xCA, 0x4D }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SwitchTexture +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SwitchTexture_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SwitchTexture+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SwitchTexture+0x05 : add eax, 0x0C + { 0x05, 0x83 }, // (Offset,Value)-Pair #2 + { 0x06, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x07, 0x0C }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SwitchTexture+0x0E : jnb +0x15 + { 0x0E, 0x73 }, // (Offset,Value)-Pair #5 + { 0x0F, 0x15 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SwitchTexture+0x22 : retn 0x04 + { 0x22, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x23, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SwitchTexture+0x2E : jmp +0xD0 + { 0x2E, 0xEB }, // (Offset,Value)-Pair #9 + { 0x2F, 0xD0 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDisplayMode +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_GetDisplayMode_1_0_4361 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetDisplayMode+0x01 : mov esi, ds:[*] + { 0x01, 0x8B }, // (Offset,Value)-Pair #1 + { 0x02, 0x35 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetDisplayMode+0x18 : shr ecx, 0x14 + { 0x18, 0xC1 }, // (Offset,Value)-Pair #3 + { 0x19, 0xE9 }, // (Offset,Value)-Pair #4 + { 0x1A, 0x14 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetDisplayMode+0x50 : shr eax, 0x0C + { 0x50, 0xC1 }, // (Offset,Value)-Pair #6 + { 0x51, 0xE8 }, // (Offset,Value)-Pair #7 + { 0x52, 0x0C }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetDisplayMode+0x6B : and eax, 0x0A + { 0x6B, 0x83 }, // (Offset,Value)-Pair #9 + { 0x6C, 0xE0 }, // (Offset,Value)-Pair #10 + { 0x6D, 0x0A }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_GetDisplayMode+0x92 : retn 0x04 + { 0x92, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x93, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Swap +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_Swap_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Swap+0x10 : mov ebx, 5 + { 0x10, 0xBB }, // (Offset,Value)-Pair #1 + { 0x11, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_Swap+0x1D : test bl, 3 + { 0x1D, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x1E, 0xC3 }, // (Offset,Value)-Pair #4 + { 0x1F, 0x03 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_Swap+0x46 : inc dword ptr [esi+0x2AC4] + { 0x46, 0xFF }, // (Offset,Value)-Pair #6 + { 0x47, 0x86 }, // (Offset,Value)-Pair #7 + { 0x48, 0xC4 }, // (Offset,Value)-Pair #8 + { 0x49, 0x2A }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_Swap+0xAE : retn 4 + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #10 + { 0xAF, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_EnableOverlay +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_EnableOverlay_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_EnableOverlay+0x0B : mov ecx, [eax+0x8700] + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x88 }, // (Offset,Value)-Pair #2 + { 0x0E, 0x87 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_EnableOverlay+0x15 : jz +0x0A + { 0x15, 0x74 }, // (Offset,Value)-Pair #4 + { 0x16, 0x0A }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_EnableOverlay+0x5A : mov [eax+0x8918], ecx + { 0x5A, 0x89 }, // (Offset,Value)-Pair #6 + { 0x5B, 0x88 }, // (Offset,Value)-Pair #7 + { 0x5C, 0x18 }, // (Offset,Value)-Pair #8 + { 0x5D, 0x89 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_EnableOverlay+0x60 : retn 0x04 + { 0x60, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x61, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_UpdateOverlay +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_UpdateOverlay_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_UpdateOverlay+0x0F : mov [eax+0x2A90], ecx + { 0x0F, 0x89 }, // (Offset,Value)-Pair #1 + { 0x10, 0x88 }, // (Offset,Value)-Pair #2 + { 0x11, 0x90 }, // (Offset,Value)-Pair #3 + { 0x12, 0x2A }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_UpdateOverlay+0x86 : and ecx, 0xFFFFFFFE + { 0x86, 0x83 }, // (Offset,Value)-Pair #5 + { 0x87, 0xE1 }, // (Offset,Value)-Pair #6 + { 0x88, 0xFE }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_UpdateOverlay+0xA2 : mov [esi+0x8920], ecx + { 0xA2, 0x89 }, // (Offset,Value)-Pair #8 + { 0xA3, 0x8E }, // (Offset,Value)-Pair #9 + { 0xA4, 0x20 }, // (Offset,Value)-Pair #10 + { 0xA5, 0x89 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BlockUntilVerticalBlank +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_BlockUntilVerticalBlank_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_BlockUntilVerticalBlank+0x05 : push 0; push 0; push 1 + { 0x05, 0x6A }, // (Offset,Value)-Pair #1 + { 0x06, 0x00 }, // (Offset,Value)-Pair #2 + { 0x07, 0x6A }, // (Offset,Value)-Pair #3 + { 0x08, 0x00 }, // (Offset,Value)-Pair #4 + { 0x09, 0x6A }, // (Offset,Value)-Pair #5 + { 0x0A, 0x01 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x17 : add eax, 0x2434 + { 0x17, 0x05 }, // (Offset,Value)-Pair #7 + { 0x18, 0x34 }, // (Offset,Value)-Pair #8 + { 0x19, 0x24 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x1D : call [KrnlImport] + { 0x1D, 0xFF }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x23 : retn + { 0x23, 0xC3 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_TexCoordIndex +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x0D : shl eax, 0x07 + { 0x0D, 0xC1 }, // (Offset,Value)-Pair #1 + { 0x0E, 0xE0 }, // (Offset,Value)-Pair #2 + { 0x0F, 0x07 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x24 : cmp eax, ecx + { 0x24, 0x3B }, // (Offset,Value)-Pair #4 + { 0x25, 0xC1 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x6B : mov esi, 0x2400 + { 0x6B, 0xBE }, // (Offset,Value)-Pair #6 + { 0x6D, 0x24 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0xB3 : shl edx, 0x04 + { 0xB3, 0xC1 }, // (Offset,Value)-Pair #8 + { 0xB4, 0xE2 }, // (Offset,Value)-Pair #9 + { 0xB5, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_VertexBlend +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_VertexBlend_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_VertexBlend+0x06 : or edx, 0x200 + { 0x06, 0x81 }, // (Offset,Value)-Pair #1 + { 0x07, 0xCA }, // (Offset,Value)-Pair #2 + { 0x08, 0x00 }, // (Offset,Value)-Pair #3 + { 0x09, 0x02 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_VertexBlend+0x1E : jb +0x05 + { 0x1E, 0x72 }, // (Offset,Value)-Pair #5 + { 0x1F, 0x05 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_VertexBlend+0x2F : mov [eax+4], ecx + { 0x2F, 0x89 }, // (Offset,Value)-Pair #7 + { 0x30, 0x48 }, // (Offset,Value)-Pair #8 + { 0x31, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_VertexBlend+0x3E : retn 0x04 + { 0x3E, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x3F, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_TextureFactor +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_TextureFactor+0x07 : mov eax, [esi+0x0370] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x86 }, // (Offset,Value)-Pair #2 + { 0x09, 0x70 }, // (Offset,Value)-Pair #3 + { 0x0A, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x2F : nop + { 0x2F, 0x90 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x41 : retn 0x04 + { 0x41, 0xC2 }, // (Offset,Value)-Pair #6 + { 0x42, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x4E : retn 0x04 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_EdgeAntiAlias +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x13 : mov ecx, [esp+0x08] + { 0x13, 0x8B }, // (Offset,Value)-Pair #5 + { 0x14, 0x4C }, // (Offset,Value)-Pair #6 + { 0x15, 0x24 }, // (Offset,Value)-Pair #7 + { 0x16, 0x08 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x2F : retn 0x04 + { 0x2F, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x30, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_FillMode +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_FillMode_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_FillMode+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_FillMode+0x21 : mov ecx, [esp+0x08] + { 0x21, 0x8B }, // (Offset,Value)-Pair #3 + { 0x22, 0x4C }, // (Offset,Value)-Pair #4 + { 0x23, 0x24 }, // (Offset,Value)-Pair #5 + { 0x24, 0x08 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_FillMode+0x25 : jnz +0x02 + { 0x25, 0x75 }, // (Offset,Value)-Pair #7 + { 0x26, 0x02 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_FillMode+0x35 : add eax, 0x0C + { 0x35, 0x83 }, // (Offset,Value)-Pair #9 + { 0x36, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x37, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_Simple +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_Simple_1_0_4361 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_Simple+0x05 : add eax, 0x08 + { 0x05, 0x83 }, // (Offset,Value)-Pair #1 + { 0x06, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x07, 0x08 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_Simple+0x0E : jnb +0x0C + { 0x0E, 0x73 }, // (Offset,Value)-Pair #4 + { 0x0F, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_Simple+0x15 : mov [eax-8], ecx + { 0x15, 0x89 }, // (Offset,Value)-Pair #6 + { 0x16, 0x48 }, // (Offset,Value)-Pair #7 + { 0x17, 0xF8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_Simple+0x18 : mov [eax-4], ecx + { 0x18, 0x89 }, // (Offset,Value)-Pair #9 + { 0x19, 0x50 }, // (Offset,Value)-Pair #10 + { 0x1A, 0xFC }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_Simple+0x25 : jmp +0xD9 + { 0x25, 0xEB }, // (Offset,Value)-Pair #12 + { 0x26, 0xD9 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ZEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_ZEnable_1_0_4361 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_ZEnable+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x1B : mov edx, [esi+0x2074h] + { 0x1B, 0x8B }, // (Offset,Value)-Pair #3 + { 0x1C, 0x96 }, // (Offset,Value)-Pair #4 + { 0x1D, 0x74 }, // (Offset,Value)-Pair #5 + { 0x1E, 0x20 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x31 : mov dword ptr [eax], 0x4030C + { 0x31, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x32, 0x00 }, // (Offset,Value)-Pair #8 + { 0x33, 0x0C }, // (Offset,Value)-Pair #9 + { 0x34, 0x03 }, // (Offset,Value)-Pair #10 + { 0x35, 0x04 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x98 : retn 0x04 + { 0x98, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x99, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilEnable +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_StencilEnable_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + { + // IDirect3DDevice8_SetRenderState_StencilEnable+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_StencilEnable+0x2C : jz +0x19 + { 0x2C, 0x74 }, // (Offset,Value)-Pair #3 + { 0x2D, 0x19 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_StencilEnable+0x4D : mov dword ptr [eax], 0x00041D84 + { 0x4D, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x4E, 0x00 }, // (Offset,Value)-Pair #6 + { 0x4F, 0x84 }, // (Offset,Value)-Pair #7 + { 0x50, 0x1D }, // (Offset,Value)-Pair #8 + { 0x51, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_StencilEnable+0x81 : retn 0x04 + { 0x81, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x82, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x04 : push esi + { 0x04, 0x56 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x05 : mov esi, dword ptr [addr] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x35 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x0B : mov ecx, esi + { 0x0B, 0x8B }, // (Offset,Value)-Pair #4 + { 0x0C, 0xCE }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x1C : jb +0x05 + { 0x1C, 0x72 }, // (Offset,Value)-Pair #6 + { 0x1D, 0x05 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x38 : shl ecx, 0x10 + { 0x38, 0xC1 }, // (Offset,Value)-Pair #8 + { 0x39, 0xE1 }, // (Offset,Value)-Pair #9 + { 0x3A, 0x10 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x4F : retn 0x04 + { 0x4F, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x50, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetTransform +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetTransform_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetTransform+0x0A : shl ecx, 0x06 + { 0x0A, 0xC1 }, // (Offset,Value)-Pair #1 + { 0x0B, 0xE1 }, // (Offset,Value)-Pair #2 + { 0x0C, 0x06 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetTransform+0x12 : lea esi, [ecx+eax+*numb*] + { 0x12, 0x8D }, // (Offset,Value)-Pair #4 + { 0x13, 0xB4 }, // (Offset,Value)-Pair #5 + { 0x14, 0x01 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetTransform+0x19 : mov ecx, 0x10 + { 0x19, 0xB9 }, // (Offset,Value)-Pair #7 + { 0x1A, 0x10 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetTransform+0x20 : pop edi, pop esi + { 0x20, 0x5F }, // (Offset,Value)-Pair #9 + { 0x21, 0x5E }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_GetTransform+0x22 : retn 0x08 + { 0x22, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x23, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetStreamSource +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetStreamSource_1_0_4361 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetStreamSource+0x08 : mov edi, [esp+8+0x04] + { 0x08, 0x8B }, // (Offset,Value)-Pair #1 + { 0x09, 0x7C }, // (Offset,Value)-Pair #2 + { 0x0A, 0x24 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x10 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetStreamSource+0x28 : jz +0x26 + { 0x28, 0x74 }, // (Offset,Value)-Pair #5 + { 0x29, 0x26 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetStreamSource+0x70 : or ecx, 0x40 + { 0x70, 0x83 }, // (Offset,Value)-Pair #7 + { 0x71, 0xC9 }, // (Offset,Value)-Pair #8 + { 0x72, 0x40 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetStreamSource+0x7E : or ecx, 0x70 + { 0x7E, 0x83 }, // (Offset,Value)-Pair #10 + { 0x7F, 0xC9 }, // (Offset,Value)-Pair #11 + { 0x80, 0x70 }, // (Offset,Value)-Pair #12 + + // IDirect3DDevice8_SetStreamSource+0x89 : retn 0x0C + { 0x89, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x8A, 0x0C }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShader +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetVertexShader_1_0_4361 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShader+0x06 : test bl, 1 + { 0x06, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC3 }, // (Offset,Value)-Pair #2 + { 0x08, 0x01 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShader+0x11 : mov eax, [esi+0x0380] + { 0x11, 0x8B }, // (Offset,Value)-Pair #4 + { 0x12, 0x86 }, // (Offset,Value)-Pair #5 + { 0x13, 0x80 }, // (Offset,Value)-Pair #6 + { 0x14, 0x03 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetVertexShader+0x90 : retn 0x04 + { 0x90, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x91, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_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 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVertices +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_DrawVertices_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawVertices+0x12 : mov edi, [esp+0x0C+0x0C] + { 0x12, 0x8B }, // (Offset,Value)-Pair #1 + { 0x13, 0x7C }, // (Offset,Value)-Pair #2 + { 0x14, 0x24 }, // (Offset,Value)-Pair #3 + { 0x15, 0x18 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_DrawVertices+0x16 : lea esi, [edi-1] + { 0x16, 0x8D }, // (Offset,Value)-Pair #5 + { 0x17, 0x77 }, // (Offset,Value)-Pair #6 + { 0x18, 0xFF }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_DrawVertices+0x7E : shl edi, 0x18 + { 0x7E, 0xC1 }, // (Offset,Value)-Pair #8 + { 0x7F, 0xE7 }, // (Offset,Value)-Pair #9 + { 0x80, 0x18 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_DrawVertices+0x9C : retn 0x0C + { 0x9C, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x9D, 0x0C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVerticesUP +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_DrawVerticesUP_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawVerticesUP+0x03 : sub esp, 0x14 + { 0x03, 0x83 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x14 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_DrawVerticesUP+0x2F : mov edx, [edi+0x744] + { 0x2F, 0x8B }, // (Offset,Value)-Pair #4 + { 0x30, 0x97 }, // (Offset,Value)-Pair #5 + { 0x31, 0x44 }, // (Offset,Value)-Pair #6 + { 0x32, 0x07 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_DrawVerticesUP+0xC1 : cmp esi, 0x80 + { 0xC1, 0x81 }, // (Offset,Value)-Pair #8 + { 0xC2, 0xFE }, // (Offset,Value)-Pair #9 + { 0xC3, 0x80 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVertices +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_DrawIndexedVertices_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawIndexedVertices+0x0E : mov eax, [esi+0x1C] + { 0x0E, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0F, 0x46 }, // (Offset,Value)-Pair #2 + { 0x10, 0x1C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_DrawIndexedVertices+0x20 : push 0x0209 + { 0x20, 0x68 }, // (Offset,Value)-Pair #4 + { 0x21, 0x09 }, // (Offset,Value)-Pair #5 + { 0x22, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_DrawIndexedVertices+0x64 : dec eax + { 0x64, 0x48 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_DrawIndexedVertices+0xF1 : prefetchnta byte ptr [esi+0x3C] + { 0xF1, 0x0F }, // (Offset,Value)-Pair #8 + { 0xF2, 0x18 }, // (Offset,Value)-Pair #9 + { 0xF3, 0x46 }, // (Offset,Value)-Pair #10 + { 0xF4, 0x3C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetLight +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetLight_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetLight+0x11 : mov edi, [ebp+0x394] + { 0x11, 0x8B }, // (Offset,Value)-Pair #1 + { 0x12, 0xBD }, // (Offset,Value)-Pair #2 + { 0x13, 0x94 }, // (Offset,Value)-Pair #3 + { 0x14, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetLight+0x30 : shl eax, 0x04 + { 0x30, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x31, 0xE0 }, // (Offset,Value)-Pair #6 + { 0x32, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetLight+0xBD : rep stosb + { 0xBD, 0xF3 }, // (Offset,Value)-Pair #8 + { 0xBE, 0xAB }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetLight+0xFD : mov ecx, [ebx+0x68] + { 0xFD, 0x8B }, // (Offset,Value)-Pair #10 + { 0xFE, 0x4B }, // (Offset,Value)-Pair #11 + { 0xFF, 0x68 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetMaterial +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetMaterial_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetMaterial+0x0C : add edi, 0x0940 + { 0x0C, 0x81 }, // (Offset,Value)-Pair #1 + { 0x0D, 0xC7 }, // (Offset,Value)-Pair #2 + { 0x0E, 0xF0 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x09 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetMaterial+0x12 : mov ecx, 0x11 + { 0x12, 0xB9 }, // (Offset,Value)-Pair #5 + { 0x13, 0x11 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetMaterial+0x1F : or ecx, 0x1000 + { 0x1F, 0x81 }, // (Offset,Value)-Pair #7 + { 0x20, 0xC9 }, // (Offset,Value)-Pair #8 + { 0x21, 0x00 }, // (Offset,Value)-Pair #9 + { 0x22, 0x10 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetMaterial+0x2D : retn 0x04 + { 0x2D, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x2E, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LightEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_LightEnable_1_0_4361 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_LightEnable+0x0F : cmp ebx, [esi+0x0394] + { 0x0F, 0x3B }, // (Offset,Value)-Pair #1 + { 0x10, 0x9E }, // (Offset,Value)-Pair #2 + { 0x11, 0x94 }, // (Offset,Value)-Pair #3 + { 0x12, 0x03 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_LightEnable+0x6B : test eax, eax + { 0x6B, 0x85 }, // (Offset,Value)-Pair #5 + { 0x6C, 0xC0 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_LightEnable+0x9E : mov eax, [eax+0x8C] + { 0x9E, 0x8B }, // (Offset,Value)-Pair #7 + { 0x9F, 0x80 }, // (Offset,Value)-Pair #8 + { 0xA0, 0x8C }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_LightEnable+0xBC : jz +0x12 + { 0xBC, 0x74 }, // (Offset,Value)-Pair #10 + { 0xBD, 0x12 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_LightEnable+0xE1 : retn 0x08 + { 0xE1, 0xC2 }, // (Offset,Value)-Pair #12 + { 0xE2, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DVertexBuffer8_Lock +// ****************************************************************** +SOOVPA<11> IDirect3DVertexBuffer8_Lock_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DVertexBuffer8_Lock+0x01 : mov bl, [esp+0x18] + { 0x01, 0x8A }, // (Offset,Value)-Pair #1 + { 0x02, 0x5C }, // (Offset,Value)-Pair #2 + { 0x03, 0x24 }, // (Offset,Value)-Pair #3 + { 0x04, 0x18 }, // (Offset,Value)-Pair #4 + + // IDirect3DVertexBuffer8_Lock+0x09 : jnz +0x24 + { 0x09, 0x75 }, // (Offset,Value)-Pair #5 + { 0x0A, 0x24 }, // (Offset,Value)-Pair #6 + + // IDirect3DVertexBuffer8_Lock+0x2F : test bl, 0xA0 + { 0x2F, 0xF6 }, // (Offset,Value)-Pair #7 + { 0x30, 0xC3 }, // (Offset,Value)-Pair #8 + { 0x31, 0xA0 }, // (Offset,Value)-Pair #9 + + // IDirect3DVertexBuffer8_Lock+0x50 : retn 0x14 + { 0x50, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x51, 0x14 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DResource8_Release +// ****************************************************************** +SOOVPA<13> IDirect3DResource8_Release_1_0_4361 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DResource8_Release+0x09 : and ecx, 0xFFFF + { 0x09, 0x81 }, // (Offset,Value)-Pair #1 + { 0x0A, 0xE1 }, // (Offset,Value)-Pair #2 + { 0x0B, 0xFF }, // (Offset,Value)-Pair #3 + { 0x0C, 0xFF }, // (Offset,Value)-Pair #4 + + // IDirect3DResource8_Release+0x0F : cmp ecx, 1 + { 0x0F, 0x83 }, // (Offset,Value)-Pair #5 + { 0x10, 0xF9 }, // (Offset,Value)-Pair #6 + { 0x11, 0x01 }, // (Offset,Value)-Pair #7 + + // IDirect3DResource8_Release+0x12 : jnz +0x2E + { 0x12, 0x75 }, // (Offset,Value)-Pair #8 + { 0x13, 0x2E }, // (Offset,Value)-Pair #9 + + // IDirect3DResource8_Release+0x2F : test eax, 0x780000 + { 0x2F, 0xA9 }, // (Offset,Value)-Pair #10 + { 0x32, 0x78 }, // (Offset,Value)-Pair #11 + + // IDirect3DResource8_Release+0x4B : retn 0x04 + { 0x4B, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x4C, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DResource8_IsBusy +// ****************************************************************** +SOOVPA<11> IDirect3DResource8_IsBusy_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DResource8_IsBusy+0x24 : test eax, 0x780000 + { 0x24, 0xA9 }, // (Offset,Value)-Pair #1 + { 0x25, 0x00 }, // (Offset,Value)-Pair #2 + { 0x26, 0x00 }, // (Offset,Value)-Pair #3 + { 0x27, 0x78 }, // (Offset,Value)-Pair #4 + + // IDirect3DResource8_IsBusy+0x35 : jnz +0x41 + { 0x35, 0x75 }, // (Offset,Value)-Pair #5 + { 0x36, 0x41 }, // (Offset,Value)-Pair #6 + + // IDirect3DResource8_IsBusy+0x4E : mov eax, [ecx+0x14] + { 0x4E, 0x8B }, // (Offset,Value)-Pair #7 + { 0x4F, 0x41 }, // (Offset,Value)-Pair #8 + { 0x50, 0x14 }, // (Offset,Value)-Pair #9 + + // IDirect3DResource8_IsBusy+0x76 : jnb +0x09 + { 0x76, 0x73 }, // (Offset,Value)-Pair #10 + { 0x77, 0x09 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DSurface8_GetDesc +// ****************************************************************** +SOOVPA<15> IDirect3DSurface8_GetDesc_1_0_4361 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DSurface8_GetDesc+0x00 : mov eax, [esp+0x08] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x08 }, // (Offset,Value)-Pair #4 + + // IDirect3DSurface8_GetDesc+0x04 : mov ecx, [esp+0x04] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x4C }, // (Offset,Value)-Pair #6 + { 0x06, 0x24 }, // (Offset,Value)-Pair #7 + { 0x07, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DSurface8_GetDesc+0x08 : push eax + { 0x08, 0x50 }, // (Offset,Value)-Pair #9 + + // IDirect3DSurface8_GetDesc+0x09 : push 0 + { 0x09, 0x6A }, // (Offset,Value)-Pair #10 + { 0x0A, 0x00 }, // (Offset,Value)-Pair #11 + + // IDirect3DSurface8_GetDesc+0x0B : push ecx + { 0x0B, 0x51 }, // (Offset,Value)-Pair #12 + + // IDirect3DSurface8_GetDesc+0x0C : call [abs] + { 0x0C, 0xE8 }, // (Offset,Value)-Pair #13 + + // IDirect3DSurface8_GetDesc+0x11 : retn 0x08 + { 0x11, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x12, 0x08 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * IDirect3DBaseTexture8_GetLevelCount +// ****************************************************************** +SOOVPA<13> IDirect3DBaseTexture8_GetLevelCount_1_0_4361 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DBaseTexture8_GetLevelCount+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DBaseTexture8_GetLevelCount+0x04 : movzx eax, [eax+0x0E] + { 0x04, 0x0F }, // (Offset,Value)-Pair #5 + { 0x05, 0xB6 }, // (Offset,Value)-Pair #6 + { 0x06, 0x40 }, // (Offset,Value)-Pair #7 + { 0x07, 0x0E }, // (Offset,Value)-Pair #8 + + // IDirect3DBaseTexture8_GetLevelCount+0x08 : and eax, 0x0F + { 0x08, 0x83 }, // (Offset,Value)-Pair #9 + { 0x09, 0xE0 }, // (Offset,Value)-Pair #10 + { 0x0A, 0x0F }, // (Offset,Value)-Pair #11 + + // IDirect3DBaseTexture8_GetLevelCount+0x0B : retn 0x04 + { 0x0B, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x0C, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * Get2DSurfaceDesc +// ****************************************************************** +SOOVPA<10> Get2DSurfaceDesc_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // 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+0x21C0] + { 0x52, 0x8B }, // (Offset,Value)-Pair #5 + { 0x53, 0x90 }, // (Offset,Value)-Pair #6 + { 0x54, 0x7C }, // (Offset,Value)-Pair #7 + { 0x55, 0x20 }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDesc+0xAE : retn 0x0C + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xAF, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilFail +// ****************************************************************** +/* Blueshogun96 8/29/08: This is the same as 4432. Copied and pasted. Lazy, I know... */ +SOOVPA<12> IDirect3DDevice8_SetRenderState_StencilFail_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_StencilFail+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_StencilFail+0x38 : cmp [abs], 0x1E00 + { 0x38, 0x81 }, // (Offset,Value)-Pair #3 + { 0x3E, 0x00 }, // (Offset,Value)-Pair #4 + { 0x3F, 0x1E }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_StencilFail+0x47 : mov dword ptr [eax], 0x41D84 + { 0x47, 0xC7 }, // (Offset,Value)-Pair #6 + { 0x48, 0x00 }, // (Offset,Value)-Pair #7 + { 0x49, 0x84 }, // (Offset,Value)-Pair #8 + { 0x4A, 0x1D }, // (Offset,Value)-Pair #9 + { 0x4B, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_StencilFail+0x6A : retn 0x04 + { 0x6A, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x6B, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_NormalizeNormals +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x25 : or [addr], 0x200 + { 0x25, 0x81 }, // (Offset,Value)-Pair #3 + { 0x26, 0x0D }, // (Offset,Value)-Pair #4 + { 0x2B, 0x00 }, // (Offset,Value)-Pair #5 + { 0x2C, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x36 : retn 0x04 + { 0x36, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x37, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPalette +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetPalette_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPalette+0x0D : mov eax, [edi+esi*4+0x0A88] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0E, 0x84 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xBE }, // (Offset,Value)-Pair #3 + { 0x10, 0x88 }, // (Offset,Value)-Pair #4 + { 0x11, 0x0A }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetPalette+0x76 : add edi, 0x41B20 + { 0x76, 0x81 }, // (Offset,Value)-Pair #6 + { 0x77, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x78, 0x20 }, // (Offset,Value)-Pair #8 + { 0x79, 0x1B }, // (Offset,Value)-Pair #9 + { 0x7A, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetPalette+0x8A : retn 0x08 + { 0x8A, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x8B, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + + +// ****************************************************************** +// * IDirect3DDevice8_SetShaderConstantMode +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetShaderConstantMode_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetShaderConstantMode+0x26 : mov [ebx+0x20D8], eax + { 0x26, 0x89 }, // (Offset,Value)-Pair #1 + { 0x27, 0x83 }, // (Offset,Value)-Pair #2 + { 0x28, 0x18 }, // (Offset,Value)-Pair #3 + { 0x29, 0x20 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetShaderConstantMode+0x50 : mov dword ptr [eax+0x04], 0x3C + { 0x50, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x51, 0x40 }, // (Offset,Value)-Pair #6 + { 0x52, 0x04 }, // (Offset,Value)-Pair #7 + { 0x53, 0x3C }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetShaderConstantMode+0xE7 : add esi, 0x0124 + { 0xE7, 0x81 }, // (Offset,Value)-Pair #9 + { 0xE8, 0xC6 }, // (Offset,Value)-Pair #10 + { 0xE9, 0x24 }, // (Offset,Value)-Pair #11 + { 0xEA, 0x01 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetFlickerFilter +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetFlickerFilter_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetFlickerFilter+0x1C : mov eax, [eax+0x2268] + { 0x1D, 0x80 }, // (Offset,Value)-Pair #2 + { 0x1E, 0x7C }, // (Offset,Value)-Pair #3 + { 0x1F, 0x22 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetFlickerFilter+0x22 : push 0; push esi; push 0x0B; push eax + { 0x22, 0x6A }, // (Offset,Value)-Pair #5 + { 0x23, 0x00 }, // (Offset,Value)-Pair #6 + { 0x24, 0x56 }, // (Offset,Value)-Pair #7 + { 0x25, 0x6A }, // (Offset,Value)-Pair #8 + { 0x26, 0x0B }, // (Offset,Value)-Pair #9 + { 0x27, 0x50 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetFlickerFilter+0x3F : retn 0x04 + { 0x3F, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x40, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetFlickerFilter +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetSoftDisplayFilter_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetSoftDisplayFilter+0x25 : mov edx, [eax+0x2268] + { 0x25, 0x8B }, // (Offset,Value)-Pair #1 + { 0x26, 0x90 }, // (Offset,Value)-Pair #2 + { 0x27, 0x68 }, // (Offset,Value)-Pair #3 + { 0x28, 0x22 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetSoftDisplayFilter+0x2B : push 0; push esi; push 0x0E; push edx + { 0x2B, 0x6A }, // (Offset,Value)-Pair #5 + { 0x2C, 0x00 }, // (Offset,Value)-Pair #6 + { 0x2D, 0x56 }, // (Offset,Value)-Pair #7 + { 0x2E, 0x6A }, // (Offset,Value)-Pair #8 + { 0x2F, 0x0E }, // (Offset,Value)-Pair #9 + { 0x30, 0x52 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetSoftDisplayFilter+0x4E : retn 0x04 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * D3DDevice_PrimeVertexCache +// ****************************************************************** +SOOVPA<7> D3DDevice_PrimeVertexCache_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0E, 0xE8 }, + { 0x1E, 0xEE }, + { 0x2E, 0xC1 }, + { 0x3E, 0x24 }, + { 0x4E, 0x8B }, + { 0x5E, 0x04 }, + { 0x6E, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_BeginPush +// ****************************************************************** +SOOVPA<7> D3DDevice_BeginPush_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x6A }, + { 0x08, 0x00 }, + { 0x10, 0x8B }, + { 0x12, 0x24 }, + { 0x17, 0xE8 }, + { 0x1C, 0x8B }, + { 0x21, 0x01 }, + } +}; + +// ****************************************************************** +// * D3DDevice_EndPush +// ****************************************************************** +SOOVPA<8> D3DDevice_EndPush_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x8B }, + { 0x02, 0x24 }, + { 0x04, 0x8B }, + { 0x0A, 0x89 }, + { 0x0B, 0x01 }, + { 0x0C, 0xC2 }, + { 0x0D, 0x04 }, + { 0x0E, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_Begin +// ****************************************************************** +SOOVPA<7> D3DDevice_Begin_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0xE8 }, + { 0x0C, 0x8B }, + { 0x13, 0xE8 }, + { 0x1A, 0x24 }, + { 0x21, 0x00 }, + { 0x28, 0x89 }, + { 0x2F, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_End +// ****************************************************************** +SOOVPA<7> D3DDevice_End_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0E, 0xE8 }, + { 0x16, 0x17 }, + { 0x1E, 0x00 }, + { 0x26, 0x46 }, + { 0x2E, 0x01 }, + { 0x36, 0x08 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexData2f +// ****************************************************************** +SOOVPA<8> D3DDevice_SetVertexData2f_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0C, 0x72 }, + { 0x13, 0x8B }, + { 0x1A, 0x80 }, + { 0x21, 0x0C }, + { 0x28, 0x89 }, + { 0x2F, 0xC0 }, + { 0x36, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexData4f +// ****************************************************************** +SOOVPA<7> D3DDevice_SetVertexData4f_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0x46 }, + { 0x16, 0x08 }, + { 0x22, 0x09 }, + { 0x2E, 0x24 }, + { 0x3A, 0x24 }, + { 0x46, 0x8B }, + { 0x52, 0x14 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexData4ub +// ****************************************************************** +SOOVPA<7> D3DDevice_SetVertexData4ub_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x06 }, + { 0x13, 0x8B }, + { 0x1C, 0x04 }, + { 0x26, 0x0F }, + { 0x30, 0x24 }, + { 0x3A, 0x24 }, + { 0x44, 0x89 }, + } +}; + +// ****************************************************************** +// * D3DDevice_Release +// ****************************************************************** +SOOVPA<8> D3DDevice_Release_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0C, 0x00 }, + { 0x13, 0xCF }, + { 0x1A, 0xC0 }, + { 0x25, 0xA3 }, + { 0x2A, 0xF3 }, + { 0x2F, 0x89 }, + { 0x36, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3DDevice_BeginPushBuffer +// ****************************************************************** +SOOVPA<7> D3DDevice_BeginPushBuffer_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0xCE }, + { 0x1B, 0x89 }, + { 0x25, 0x00 }, + { 0x32, 0x06 }, + { 0x3F, 0x03 }, + { 0x4C, 0x04 }, + { 0x59, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_EndPushBuffer +// ****************************************************************** +SOOVPA<7> D3DDevice_EndPushBuffer_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x11, 0x8D }, + { 0x24, 0x8B }, + { 0x37, 0x58 }, + { 0x4A, 0xFF }, + { 0x5D, 0xF7 }, + { 0x70, 0x03 }, + { 0x83, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetPushBufferOffset +// ****************************************************************** +SOOVPA<7> D3DDevice_GetPushBufferOffset_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x14, 0xB8 }, + { 0x2A, 0x8B }, + { 0x40, 0x47 }, + { 0x56, 0x89 }, + { 0x6C, 0xAB }, + { 0x82, 0x04 }, + { 0x98, 0x89 }, + } +}; + +// ****************************************************************** +// * D3DDevice_RunPushBuffer +// ****************************************************************** +SOOVPA<8> D3DDevice_RunPushBuffer_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x07 }, + { 0x3E, 0x00 }, + { 0x5E, 0x46 }, + { 0x7E, 0x24 }, + { 0x9E, 0x18 }, + { 0xBE, 0x74 }, + { 0xE2, 0x8B }, + { 0xFE, 0x24 }, + } +}; + +// ****************************************************************** +// * D3DDevice_CreateCubeTexture +// ****************************************************************** +SOOVPA<8> D3DDevice_CreateCubeTexture_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x18 }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x00 }, + { 0x17, 0x50 }, + { 0x1C, 0x6A }, + { 0x25, 0xC2 }, + { 0x26, 0x18 }, + } +}; + +// ****************************************************************** +// * D3DCubeTexture_GetCubeMapSurface +// ****************************************************************** +SOOVPA<7> D3DCubeTexture_GetCubeMapSurface_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x44 }, + { 0x14, 0x24 }, + { 0x1F, 0x50 }, + { 0x2A, 0x50 }, + { 0x35, 0x8B }, + { 0x40, 0x24 }, + { 0x4B, 0x5E }, + } +}; + +// ****************************************************************** +// * D3D8_1_0_4361 +// ****************************************************************** +OOVPATable D3D8_1_0_4361[] = +{ + // IDirect3D8::CreateDevice + { + (OOVPA*)&IDirect3D8_CreateDevice_1_0_4361, + + XTL::EmuIDirect3D8_CreateDevice, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CreateDevice" + #endif + }, + // IDirect3D8::CheckDeviceFormat + { + (OOVPA*)&IDirect3D8_CheckDeviceFormat_1_0_4361, + + XTL::EmuIDirect3D8_CheckDeviceFormat, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CheckDeviceFormat" + #endif + }, + // IDirect3DDevice8::LoadVertexShader (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_LoadVertexShader_1_0_4034, + + XTL::EmuIDirect3DDevice8_LoadVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShader" + #endif + }, + // IDirect3DDevice8::SelectVertexShader + { + (OOVPA*)&IDirect3DDevice8_SelectVertexShader_1_0_4361, + + XTL::EmuIDirect3DDevice8_SelectVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SelectVertexShader" + #endif + }, + // IDirect3DDevice8::SetRenderTarget (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderTarget_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTarget" + #endif + }, + // IDirect3DDevice8::AddRef + { + (OOVPA*)&IDirect3DDevice8_AddRef_1_0_4361, + + XTL::EmuIDirect3DDevice8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_AddRef" + #endif + }, + // IDirect3D::ClearStateBlockFlags + { + (OOVPA*)&IDirect3D_ClearStateBlockFlags_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D_ClearStateBlockFlags (XREF)" + #endif + }, + // IDirect3DDevice8::SetGammaRamp + { + (OOVPA*)&IDirect3DDevice8_SetGammaRamp_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetGammaRamp" + #endif + }, + // IDirect3D::RecordStateBlock + { + (OOVPA*)&IDirect3D_RecordStateBlock_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D_RecordStateBlock (XREF)" + #endif + }, + // IDirect3DDevice8::BeginStateBlock + { + (OOVPA*)&IDirect3DDevice8_BeginStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_BeginStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginStateBlock" + #endif + }, + // IDirect3DDevice8::CaptureStateBlock + { + (OOVPA*)&IDirect3DDevice8_CaptureStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_CaptureStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CaptureStateBlock" + #endif + }, + // D3DDevice_DeleteStateBlock + { + (OOVPA*)&D3DDevice_DeleteStateBlock_1_0_4361, + XTL::EmuIDirect3DDevice8_DeleteStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteStateBlock" + #endif + }, + // IDirect3DDevice8::ApplyStateBlock + { + (OOVPA*)&IDirect3DDevice8_ApplyStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_ApplyStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_ApplyStateBlock" + #endif + }, + // IDirect3DDevice8::EndStateBlock + { + (OOVPA*)&IDirect3DDevice8_EndStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_EndStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndStateBlock" + #endif + }, + // IDirect3DDevice8::CopyRects + { + (OOVPA*)&IDirect3DDevice8_CopyRects_1_0_4361, + + XTL::EmuIDirect3DDevice8_CopyRects, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CopyRects" + #endif + }, + // IDirect3DDevice8::CreateImageSurface + { + (OOVPA*)&IDirect3DDevice8_CreateImageSurface_1_0_4361, + + XTL::EmuIDirect3DDevice8_CreateImageSurface, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateImageSurface" + #endif + }, + // IDirect3DDevice8::GetBackBuffer (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer_1_0_4134, + + XTL::EmuIDirect3DDevice8_GetBackBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer" + #endif + }, + // IDirect3DDevice8::GetRenderTarget + { + (OOVPA*)&IDirect3DDevice8_GetRenderTarget_1_0_4361, + + XTL::EmuIDirect3DDevice8_GetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetRenderTarget" + #endif + }, + // IDirect3DDevice8::GetDepthStencilSurface (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_GetDepthStencilSurface_1_0_4134, + + XTL::EmuIDirect3DDevice8_GetDepthStencilSurface, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDepthStencilSurface" + #endif + }, + // IDirect3DDevice8::CreateVertexShader (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexShader" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant" + #endif + }, + // IDirect3DDevice8::CreatePixelShader (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreatePixelShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePixelShader" + #endif + }, + // IDirect3DDevice8::SetPixelShader + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + }, + // IDirect3DDevice8::SetViewport (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_SetViewport_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport" + #endif + }, + // IDirect3DDevice8::GetViewport + { + (OOVPA*)&IDirect3DDevice8_GetViewport_1_0_4361, + + XTL::EmuIDirect3DDevice8_GetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetViewport" + #endif + }, + // IDirect3DDevice8::SetTextureState_BumpEnv + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BumpEnv_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BumpEnv, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BumpEnv" + #endif + }, + // IDirect3DDevice8::SetTextureState_BorderColor + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BorderColor_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BorderColor" + #endif + }, + // IDirect3DDevice8::CreateTexture (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture" + #endif + }, + // IDirect3DDevice8::SetIndices + { + (OOVPA*)&IDirect3DDevice8_SetIndices_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // IDirect3DDevice8::SetTexture + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::SwitchTexture + { + (OOVPA*)&IDirect3DDevice8_SwitchTexture_1_0_4361, + + XTL::EmuIDirect3DDevice8_SwitchTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SwitchTexture" + #endif + }, + // IDirect3DDevice8::GetDisplayMode + { + (OOVPA*)&IDirect3DDevice8_GetDisplayMode_1_0_4361, + + XTL::EmuIDirect3DDevice8_GetDisplayMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDisplayMode" + #endif + }, + // IDirect3DDevice8::Clear (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_4134, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + // IDirect3DDevice8::Swap + { + (OOVPA*)&IDirect3DDevice8_Swap_1_0_4361, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap" + #endif + }, + // IDirect3DDevice8::CreateVertexBuffer (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateVertexBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexBuffer" + #endif + }, + // IDirect3DDevice8::EnableOverlay + { + (OOVPA*)&IDirect3DDevice8_EnableOverlay_1_0_4361, + + XTL::EmuIDirect3DDevice8_EnableOverlay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EnableOverlay" + #endif + }, + // IDirect3DDevice8::UpdateOverlay + { + (OOVPA*)&IDirect3DDevice8_UpdateOverlay_1_0_4361, + + XTL::EmuIDirect3DDevice8_UpdateOverlay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_UpdateOverlay" + #endif + }, + // IDirect3DDevice8::BlockUntilVerticalBlank + { + (OOVPA*)&IDirect3DDevice8_BlockUntilVerticalBlank_1_0_4361, + + XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockUntilVerticalBlank" + #endif + }, + // IDirect3DDevice8::SetTextureState_TexCoordIndex + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, + // IDirect3DDevice8::SetRenderState_VertexBlend + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_VertexBlend_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_VertexBlend" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullMode (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_TextureFactor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // IDirect3DDevice8::SetRenderState_EdgeAntiAlias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_FogColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_Simple + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleAntiAlias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias" + #endif + }, + // IDirect3DDevice8::SetTransform (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTransform_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTransform" + #endif + }, + // IDirect3DDevice8::GetTransform + { + (OOVPA*)&IDirect3DDevice8_GetTransform_1_0_4361, + + XTL::EmuIDirect3DDevice8_GetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTransform" + #endif + }, + // IDirect3DDevice8::SetStreamSource + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // IDirect3DDevice8::SetVertexShader + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::DrawVertices + { + (OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_4361, + + XTL::EmuIDirect3DDevice8_DrawVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVertices" + #endif + }, + // IDirect3DDevice8::DrawVerticesUP + { + (OOVPA*)&IDirect3DDevice8_DrawVerticesUP_1_0_4361, + + XTL::EmuIDirect3DDevice8_DrawVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVerticesUP" + #endif + }, + // IDirect3DDevice8::DrawIndexedVertices + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_4361, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, + // IDirect3DDevice8::SetLight + { + (OOVPA*)&IDirect3DDevice8_SetLight_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight" + #endif + }, + // IDirect3DDevice8::SetMaterial + { + (OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetMaterial" + #endif + }, + // IDirect3DDevice8::LightEnable + { + (OOVPA*)&IDirect3DDevice8_LightEnable_1_0_4361, + + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable" + #endif + }, + // IDirect3DVertexBuffer8::Lock + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock_1_0_4361, + + XTL::EmuIDirect3DVertexBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock" + #endif + }, + // IDirect3DResource8::Register (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Register_1_0_3925, + + XTL::EmuIDirect3DResource8_Register, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Register" + #endif + }, + // IDirect3DResource8::Release + { + (OOVPA*)&IDirect3DResource8_Release_1_0_4361, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Release" + #endif + }, + // IDirect3DResource8::IsBusy + { + (OOVPA*)&IDirect3DResource8_IsBusy_1_0_4361, + + XTL::EmuIDirect3DResource8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_IsBusy" + #endif + }, + // Get2DSurfacDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_4361, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc" + #endif + }, + // IDirect3DSurface8::GetDesc + { + (OOVPA*)&IDirect3DSurface8_GetDesc_1_0_4361, + + XTL::EmuIDirect3DSurface8_GetDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_GetDesc" + #endif + }, + // IDirect3DSurface8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DSurface8_LockRect_1_0_3925, + + XTL::EmuIDirect3DSurface8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_LockRect" + #endif + }, + // IDirect3DBaseTexture8::GetLevelCount + { + (OOVPA*)&IDirect3DBaseTexture8_GetLevelCount_1_0_4361, + + XTL::EmuIDirect3DBaseTexture8_GetLevelCount, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DBaseTexture8_GetLevelCount" + #endif + }, + // IDirect3DTexture8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DTexture8_LockRect_1_0_3925, + + XTL::EmuIDirect3DTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_LockRect" + #endif + }, + // IDirect3DTexture8::GetSurfaceLevel (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DTexture8_GetSurfaceLevel_1_0_3925, + + XTL::EmuIDirect3DTexture8_GetSurfaceLevel, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetSurfaceLevel" + #endif + }, + // IDirect3DDevice8_SetRenderState_StencilFail + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // IDirect3DDevice8_SetRenderState_NormalizeNormals + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormals" + #endif + }, + // IDirect3DDevice8_GetDeviceCaps (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_GetDeviceCaps_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetDeviceCaps, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDeviceCaps" + #endif + }, + // IDirect3DDevice8::CreatePalette (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreatePalette_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePalette" + #endif + }, + // IDirect3DDevice8::CreateIndexBuffer + // TODO: This needs to be verified on 4361, not just 4242! + { + (OOVPA*)&IDirect3DDevice8_CreateIndexBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateIndexBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateIndexBuffer" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZBias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZBias_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZBias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZBias" + #endif + }, + // IDirect3DResource8::AddRef + { + (OOVPA*)&IDirect3DResource8_AddRef_1_0_3925, + + XTL::EmuIDirect3DResource8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_AddRef" + #endif + }, + // IDirect3DResource8::Release + { + (OOVPA*)&IDirect3DResource8_Release_1_0_3925, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Release" + #endif + }, + // IDirect3DPalette8::Lock (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DPalette8_Lock_1_0_3925, + + XTL::EmuIDirect3DPalette8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DPalette8_Lock" + #endif + }, + // IDirect3DCubeTexture8::LockRect + // TODO: This needs to be verified on 4361, not just 4242! + { + (OOVPA*)&IDirect3DCubeTexture8_LockRect_1_0_3925, + + XTL::EmuIDirect3DCubeTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DCubeTexture8_LockRect_4242" + #endif + }, + // IDirect3DDevice8::SetPalette + { + (OOVPA*)&IDirect3DDevice8_SetPalette_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetPalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPalette" + #endif + }, + // IDirect3DDevice8::Reset (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_Reset_1_0_4134, + + XTL::EmuIDirect3DDevice8_Reset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Reset" + #endif + }, + // IDirect3D8::KickOffAndWaitForIdle (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3D8_KickOffAndWaitForIdle_1_0_4034, + + XTL::EmuIDirect3D8_KickOffAndWaitForIdle, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_KickOffAndWaitForIdle" + #endif + }, + // IDirect3DDevice8::SetTextureState_TwoSidedLighting (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TwoSidedLighting_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting" + #endif + }, + // IDirect3DDevice8::SetRenderState_BackFillMode (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_BackFillMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_BackFillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_BackFillMode" + #endif + }, + // IDirect3DDevice8::SetTextureState_ColorKeyColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_ColorKeyColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_ColorKeyColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_FrontFace (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FrontFace_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FrontFace, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FrontFace" + #endif + }, + // IDirect3DDevice8::SetRenderState_LogicOp (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_LogicOp_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_LogicOp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LogicOp" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilFail (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // IDirect3DDevice8::SetRenderState_OcclusionCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZCmpAlwaysRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_DoNotCullUncompressed (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed" + #endif + }, + // IDirect3DDevice8::SetRenderState_Dxt1NoiseEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMask (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleMask_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMask, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMask" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMode (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleRenderTargetMode (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_ShadowFunc (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_ShadowFunc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ShadowFunc" + #endif + }, + // IDirect3DDevice8::SetRenderState_YuvEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_YuvEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_YuvEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_YuvEnable" + #endif + }, + // IDirect3DDevice8::DrawIndexedVerticesUP (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVerticesUP_1_0_4134, + + XTL::EmuIDirect3DDevice8_DrawIndexedVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVerticesUP" + #endif + }, + // IDirect3DDevice8::SetPixelShaderConstant (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetPixelShaderConstant_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetPixelShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderConstant" + #endif + }, + // IDirect3DDevice8::DeletePixelShader (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_DeletePixelShader_1_0_4134, + + XTL::EmuIDirect3DDevice8_DeletePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeletePixelShader" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullModeB (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullModeB_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullModeB" + #endif + }, + // D3DDevice_DeleteVertexShader (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_DeleteVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_DeleteVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteVertexShader" + #endif + }, + // IDirect3DDevice8_SetScreenSpaceOffset (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetScreenSpaceOffset_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetScreenSpaceOffset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScreenSpaceOffset" + #endif + }, + // D3D::SetFence (XREF) (* unchanged since 4134 *) + { + (OOVPA*)&D3D_SetFence_1_0_4134, 0, + + #ifdef _DEBUG_TRACE + "D3D::SetFence (XREF)" + #endif + }, + // IDirect3DDevice8::SetRenderState_LineWidth (* unchanged since 4134 *) + { + (OOVPA*)&D3DDevice_SetRenderState_LineWidth_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_LineWidth, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LineWidth" + #endif + }, + // IDirect3DDevice8::SetSwapCallback (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetSwapCallback_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetSwapCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSwapCallback" + #endif + }, + // IDirect3DDevice8::GetTile (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_GetTile_1_0_4134, + + XTL::EmuIDirect3DDevice8_GetTile, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTile" + #endif + }, + // IDirect3DDevice8::SetTile (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTile_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTileNoWait, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTile" + #endif + }, + // IDirect3DDevice8::IsBusy (* unchanged since 4134 *) + { + (OOVPA*)&D3DDevice_IsBusy_1_0_4134, + + XTL::EmuIDirect3DDevice8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_IsBusy" + #endif + }, + // IDirect3DDevice8::GetGammaRamp (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetGammaRamp_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetGammaRamp" + #endif + }, + // IDirect3DDevice8::GetCreationParameters (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetCreationParameters_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetCreationParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetCreationParameters" + #endif + }, + // IDirect3DDevice8::GetVisibilityTestResult (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_GetVisibilityTestResult_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVisibilityTestResult, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVisibilityTestResult" + #endif + }, + // IDirect3DDevice8::SetShaderConstantMode + { + (OOVPA*)&IDirect3DDevice8_SetShaderConstantMode_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetShaderConstantMode" + #endif + }, + // IDirect3DDevice8::SetFlickerFilter + { + (OOVPA*)&IDirect3DDevice8_SetFlickerFilter_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetFlickerFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetFlickerFilter" + #endif + }, + // IDirect3DDevice8::SetSoftDisplayFilter + { + (OOVPA*)&IDirect3DDevice8_SetSoftDisplayFilter_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetSoftDisplayFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSoftDisplayFilter" + #endif + }, + // D3DDevice_PrimeVertexCache + { + (OOVPA*)&D3DDevice_PrimeVertexCache_1_0_4361, + XTL::EmuIDirect3DDevice8_PrimeVertexCache, + + #ifdef _DEBUG_TRACE + "D3DDevice_PrimeVertexCache" + #endif + }, + // D3DDevice_BeginPush + { + (OOVPA*)&D3DDevice_BeginPush_1_0_4361, + XTL::EmuIDirect3DDevice8_BeginPush, + + #ifdef _DEBUG_TRACE + "D3DDevice_BeginPush" + #endif + }, + // D3DDevice_EndPush + { + (OOVPA*)&D3DDevice_EndPush_1_0_4361, + XTL::EmuIDirect3DDevice8_EndPush, + + #ifdef _DEBUG_TRACE + "D3DDevice_EndPush" + #endif + }, + // IDirect3DDevice8::Begin + { + (OOVPA*)&D3DDevice_Begin_1_0_4361, + + XTL::EmuIDirect3DDevice8_Begin, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Begin" + #endif + }, + // IDirect3DDevice8::End + { + (OOVPA*)&D3DDevice_End_1_0_4361, + + XTL::EmuIDirect3DDevice8_End, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_End" + #endif + }, + // IDirect3DDevice8::SetVerticalBlankCallback + { + (OOVPA*)&IDirect3DDevice8_SetVerticalBlankCallback_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVerticalBlankCallback" + #endif + }, + // IDirect3DDevice8::SetVertexData2f + { + (OOVPA*)&D3DDevice_SetVertexData2f_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::SetVertexData4f + { + (OOVPA*)&D3DDevice_SetVertexData4f_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexData4f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4f" + #endif + }, + // IDirect3DDevice8::SetVertexData4ub + { + (OOVPA*)&D3DDevice_SetVertexData4ub_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexData4ub, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4ub" + #endif + }, + // D3DDevice_GetVertexShaderSize (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_GetVertexShaderSize_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVertexShaderSize, + + #ifdef _DEBUG_TRACE + "D3DDevice_GetVertexShaderSize" + #endif + }, + // IDirect3DDevice8::BlockOnFence (* unchanged since 4134 *) + { + (OOVPA*)&D3DDevice_BlockOnFence_1_0_4134, + + XTL::EmuIDirect3DDevice8_BlockOnFence, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockOnFence" + #endif + }, + // Direct3D_GetAdapterIdentifier (* unchanged since 3925 *) + { + (OOVPA*)&Direct3D_GetAdapterIdentifier_1_0_3925, + XTL::EmuIDirect3D8_GetAdapterIdentifier, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_GetAdapterIdentifier" + #endif + }, + // IDirect3DDevice8::Release + { + (OOVPA*)&D3DDevice_Release_1_0_4361, + + XTL::EmuIDirect3DDevice8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Release" + #endif + }, + // IDirect3DDevice8::BeginPushBuffer + { + (OOVPA*)&D3DDevice_BeginPushBuffer_1_0_4361, + + XTL::EmuIDirect3DDevice8_BeginPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginPushBuffer" + #endif + }, + // IDirect3DDevice8::EndPushBuffer + { + (OOVPA*)&D3DDevice_EndPushBuffer_1_0_4361, + + XTL::EmuIDirect3DDevice8_EndPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndPushBuffer" + #endif + }, + // IDirect3DDevice8::RunPushBuffer + { + (OOVPA*)&D3DDevice_RunPushBuffer_1_0_4361, + + XTL::EmuIDirect3DDevice8_RunPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_RunPushBuffer" + #endif + }, + // IDirect3DDevice8::GetPushBufferOffset + { + (OOVPA*)&D3DDevice_GetPushBufferOffset_1_0_4361, + + XTL::EmuIDirect3DDevice8_GetPushBufferOffset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetPushBufferOffset" + #endif + }, + // IDirect3DDevice8::CreateCubeTexture + { + (OOVPA*)&D3DDevice_CreateCubeTexture_1_0_4361, + + XTL::EmuIDirect3DDevice8_CreateCubeTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateCubeTexture" + #endif + }, + // IDirect3DCubeTexture8::GetCubeMapSurface + { + (OOVPA*)&D3DCubeTexture_GetCubeMapSurface_1_0_4361, + + XTL::EmuIDirect3DCubeTexture8_GetCubeMapSurface, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DCubeTexture8_GetCubeMapSurface" + #endif + }, + // Lock2DSurface (* unchanged since 3925 *) + { + (OOVPA*)&Lock2DSurface_1_0_3925, + + XTL::EmuLock2DSurface, + + #ifdef _DEBUG_TRACE + "EmuLock2DSurface" + #endif + }, +}; + +// ****************************************************************** +// * D3D8_1_0_4361_SIZE +// ****************************************************************** +uint32 D3D8_1_0_4361_SIZE = sizeof(D3D8_1_0_4361); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4432.h b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4432.h new file mode 100644 index 000000000..b2bf178d9 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4432.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.4432.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_1_0_4432_H +#define D3D8_1_0_4432_H + +#include "OOVPA.h" + +extern OOVPATable D3D8_1_0_4432[]; +extern uint32 D3D8_1_0_4432_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4432.inl b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4432.inl new file mode 100644 index 000000000..19edb7738 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4432.inl @@ -0,0 +1,2097 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4432.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * IDirect3D8_CreateDevice +// ****************************************************************** +SOOVPA<8> IDirect3D8_CreateDevice_1_0_4432 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_CreateDevice+0x07 : jnz +0x0A + { 0x07, 0x75 }, // (Offset,Value)-Pair #1 + { 0x08, 0x0A }, // (Offset,Value)-Pair #2 + + // IDirect3D8_CreateDevice+0x86 : repe stosd + { 0x86, 0xF3 }, // (Offset,Value)-Pair #3 + { 0x87, 0xAB }, // (Offset,Value)-Pair #4 + + // IDirect3D8_CreateDevice+0x89 : mov eax, esi + { 0x89, 0x8B }, // (Offset,Value)-Pair #5 + { 0x8A, 0xC6 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_CreateDevice+0xA0 : retn 0x18 + { 0xA0, 0xC2 }, // (Offset,Value)-Pair #7 + { 0xA1, 0x18 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetRenderTarget +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_GetRenderTarget_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetRenderTarget+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_GetRenderTarget+0x05 : mov eax, [eax + 0x2070] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x80 }, // (Offset,Value)-Pair #3 + { 0x07, 0x70 }, // (Offset,Value)-Pair #4 + { 0x08, 0x20 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetRenderTarget+0x15 : push eax + { 0x15, 0x50 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetRenderTarget+0x13 : jz + 0x06 + { 0x13, 0x74 }, // (Offset,Value)-Pair #7 + { 0x14, 0x06 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetRenderTarget+0x16 : call [addr] + { 0x16, 0xE8 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_GetRenderTarget+0x1D : retn 0x04 + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x1E, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDepthStencilSurface +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_GetDepthStencilSurface_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetDepthStencilSurface+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_GetDepthStencilSurface+0x05 : mov eax, [eax + 0x2074] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x80 }, // (Offset,Value)-Pair #3 + { 0x07, 0x74 }, // (Offset,Value)-Pair #4 + { 0x08, 0x20 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetDepthStencilSurface+0x15 : push eax + { 0x15, 0x50 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetDepthStencilSurface+0x13 : jnz +0x0B + { 0x13, 0x74 }, // (Offset,Value)-Pair #7 + { 0x14, 0x0B }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetDepthStencilSurface+0x16 : call [addr] + { 0x16, 0xE8 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_GetDepthStencilSurface+0x25 : retn 0x04 + { 0x25, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x26, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShader +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetPixelShader_1_0_4432 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPixelShader+0x22 : or ecx, 0x4800 + { 0x22, 0x81 }, // (Offset,Value)-Pair #1 + { 0x23, 0xC9 }, // (Offset,Value)-Pair #2 + { 0x24, 0x00 }, // (Offset,Value)-Pair #3 + { 0x25, 0x48 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetPixelShader+0x3A : or eax, 0x2000 + { 0x3A, 0x0D }, // (Offset,Value)-Pair #5 + { 0x3C, 0x20 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetPixelShader+0x78 : retn 0x04 + { 0x78, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x79, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetPixelShader+0xE3 : rep movsd + { 0xE3, 0xF3 }, // (Offset,Value)-Pair #9 + { 0xE4, 0xA5 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_TwoSidedLighting +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetTextureState_TwoSidedLighting_1_0_4432 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x11 : or edx, 0x1000 + { 0x11, 0x81 }, // (Offset,Value)-Pair #1 + { 0x12, 0xCA }, // (Offset,Value)-Pair #2 + { 0x13, 0x00 }, // (Offset,Value)-Pair #3 + { 0x14, 0x10 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x24 : cmp eax, [esi+4]; push edi + { 0x24, 0x3B }, // (Offset,Value)-Pair #5 + { 0x25, 0x46 }, // (Offset,Value)-Pair #6 + { 0x26, 0x04 }, // (Offset,Value)-Pair #7 + { 0x27, 0x57 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x53 : add eax, 0x0C + { 0x53, 0x83 }, // (Offset,Value)-Pair #9 + { 0x54, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x55, 0x0C }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x60 : retn 0x04 + { 0x60, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x61, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_ColorKeyColor +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_4432 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_ColorKeyColor+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetTextureState_ColorKeyColor+0x27 : add eax, 8; mov [esi], eax; shl ecx, 7 + { 0x27, 0x83 }, // (Offset,Value)-Pair #3 + { 0x28, 0xC0 }, // (Offset,Value)-Pair #4 + { 0x29, 0x08 }, // (Offset,Value)-Pair #5 + { 0x2A, 0x89 }, // (Offset,Value)-Pair #6 + { 0x2B, 0x06 }, // (Offset,Value)-Pair #7 + { 0x2C, 0xC1 }, // (Offset,Value)-Pair #8 + { 0x2D, 0xE1 }, // (Offset,Value)-Pair #9 + { 0x2E, 0x07 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetTextureState_ColorKeyColor+0x36 : retn 0x08 + { 0x36, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x37, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_NormalizeNormals +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4432 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x25 : or [addr], 0x200 + { 0x25, 0x81 }, // (Offset,Value)-Pair #3 + { 0x26, 0x0D }, // (Offset,Value)-Pair #4 + { 0x2B, 0x00 }, // (Offset,Value)-Pair #5 + { 0x2C, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x36 : retn 0x04 + { 0x36, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x37, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ZEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_ZEnable_1_0_4432 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_ZEnable+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x1B : mov ecx, [esi+0x2074] + { 0x1B, 0x8B }, // (Offset,Value)-Pair #3 + { 0x1C, 0x8E }, // (Offset,Value)-Pair #4 + { 0x1D, 0x74 }, // (Offset,Value)-Pair #5 + { 0x1E, 0x20 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x2E : mov dword ptr [eax], 0x4030C + { 0x2E, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x2F, 0x00 }, // (Offset,Value)-Pair #8 + { 0x30, 0x0C }, // (Offset,Value)-Pair #9 + { 0x31, 0x03 }, // (Offset,Value)-Pair #10 + { 0x32, 0x04 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x8C : retn 0x04 + { 0x8C, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x8D, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4432 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x04 : push esi + { 0x04, 0x56 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x12 : call [abs] + { 0x12, 0xE8 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x38 : shl ecx, 0x10 + { 0x38, 0xC1 }, // (Offset,Value)-Pair #3 + { 0x39, 0xE1 }, // (Offset,Value)-Pair #4 + { 0x3A, 0x10 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x44 : or ecx, edx + { 0x44, 0x0B }, // (Offset,Value)-Pair #6 + { 0x45, 0xCA }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x4F : retn 0x04 + { 0x4F, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x50, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_LineWidth +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_LineWidth_1_0_4432 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_LineWidth+0x15 : fmul dword ptr [esi+0x460] + { 0x15, 0xD8 }, // (Offset,Value)-Pair #1 + { 0x16, 0x8E }, // (Offset,Value)-Pair #2 + { 0x17, 0x60 }, // (Offset,Value)-Pair #3 + { 0x18, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x32 : cmp edi, 0x1FF + { 0x32, 0x81 }, // (Offset,Value)-Pair #5 + { 0x33, 0xFF }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x3A : mov edi, 0x1FF + { 0x3A, 0xBF }, // (Offset,Value)-Pair #7 + { 0x3B, 0xFF }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x62 : retn 0x04 + { 0x62, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x63, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPalette +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetPalette_1_0_4432 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPalette+0x0D : mov eax, [edi+esi*4+0x0A88] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0E, 0x84 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xBE }, // (Offset,Value)-Pair #3 + { 0x10, 0x88 }, // (Offset,Value)-Pair #4 + { 0x11, 0x0A }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetPalette+0x76 : add esi, 0x41B20 + { 0x76, 0x81 }, // (Offset,Value)-Pair #6 + { 0x77, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x78, 0x20 }, // (Offset,Value)-Pair #8 + { 0x79, 0x1B }, // (Offset,Value)-Pair #9 + { 0x7A, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetPalette+0x8A : retn 0x08 + { 0x8A, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x8B, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Swap +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_Swap_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Swap+0x10 : mov ebx, 5 + { 0x10, 0xBB }, // (Offset,Value)-Pair #1 + { 0x11, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_Swap+0x1D : test bl, 3 + { 0x1D, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x1E, 0xC3 }, // (Offset,Value)-Pair #4 + { 0x1F, 0x03 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_Swap+0x46 : inc dword ptr [esi+0x2AD8] + { 0x46, 0xFF }, // (Offset,Value)-Pair #6 + { 0x47, 0x86 }, // (Offset,Value)-Pair #7 + { 0x48, 0xD8 }, // (Offset,Value)-Pair #8 + { 0x49, 0x2A }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_Swap+0xAE : retn 4 + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #10 + { 0xAF, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Swap +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_Swap_1_0_4531 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Swap+0x10 : mov ebx, 5 + { 0x10, 0xBB }, // (Offset,Value)-Pair #1 + { 0x11, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_Swap+0x1D : test bl, 3 + { 0x1D, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x1E, 0xC3 }, // (Offset,Value)-Pair #4 + { 0x1F, 0x03 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_Swap+0x46 : inc dword ptr [esi+0x2AD8] + { 0x46, 0xFF }, // (Offset,Value)-Pair #6 + { 0x47, 0x86 }, // (Offset,Value)-Pair #7 + { 0x48, 0xD8 }, // (Offset,Value)-Pair #8 + { 0x49, 0x2A }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_Swap+0xAE : retn 4 + { 0xB9, 0xC2 }, // (Offset,Value)-Pair #10 + { 0xBA, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_UpdateOverlay +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_UpdateOverlay_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_UpdateOverlay+0x0F : mov [eax+0x2AA4], ecx + { 0x0F, 0x89 }, // (Offset,Value)-Pair #1 + { 0x10, 0x88 }, // (Offset,Value)-Pair #2 + { 0x11, 0xA4 }, // (Offset,Value)-Pair #3 + { 0x12, 0x2A }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_UpdateOverlay+0x86 : and ecx, 0xFFFFFFFE + { 0x86, 0x83 }, // (Offset,Value)-Pair #5 + { 0x87, 0xE1 }, // (Offset,Value)-Pair #6 + { 0x88, 0xFE }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_UpdateOverlay+0xA2 : mov [esi+0x8920], ecx + { 0xA2, 0x89 }, // (Offset,Value)-Pair #8 + { 0xA3, 0x8E }, // (Offset,Value)-Pair #9 + { 0xA4, 0x20 }, // (Offset,Value)-Pair #10 + { 0xA5, 0x89 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BlockUntilVerticalBlank +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_BlockUntilVerticalBlank_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_BlockUntilVerticalBlank+0x05 : push 0; push 0; push 1 + { 0x05, 0x6A }, // (Offset,Value)-Pair #1 + { 0x06, 0x00 }, // (Offset,Value)-Pair #2 + { 0x07, 0x6A }, // (Offset,Value)-Pair #3 + { 0x08, 0x00 }, // (Offset,Value)-Pair #4 + { 0x09, 0x6A }, // (Offset,Value)-Pair #5 + { 0x0A, 0x01 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x17 : add eax, 0x2448 + { 0x17, 0x05 }, // (Offset,Value)-Pair #7 + { 0x18, 0x48 }, // (Offset,Value)-Pair #8 + { 0x19, 0x24 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x1D : call [KrnlImport] + { 0x1D, 0xFF }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x23 : retn + { 0x23, 0xC3 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVerticalBlankCallback +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetVerticalBlankCallback_1_0_4432 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVerticalBlankCallback+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x04 : mov ecx, [addr] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x0D }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x0A : mov [ecx+0x2444], eax + { 0x0A, 0x89 }, // (Offset,Value)-Pair #7 + { 0x0B, 0x81 }, // (Offset,Value)-Pair #8 + { 0x0C, 0x44 }, // (Offset,Value)-Pair #9 + { 0x0D, 0x24 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x10 : retn 0x04 + { 0x10, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x11, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BackFillMode +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_BackFillMode_1_0_4531 = +{ + 0, // Large == 0 + 9, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x56 }, + { 0x10, 0x8B }, + { 0x11, 0x06 }, + { 0x12, 0x3B }, + { 0x13, 0x46 }, + { 0x14, 0x04 }, + { 0x41, 0x83 }, + { 0x42, 0xC0 }, + { 0x43, 0x0C }, + } +}; + +// ****************************************************************** +// * D3DDevice_BeginPush +// ****************************************************************** +SOOVPA<6> D3DDevice_BeginPush_1_0_4432 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x8B }, + { 0x0A, 0xCE }, + { 0x10, 0x8B }, + { 0x11, 0x44 }, + { 0x17, 0xE8 }, + { 0x1D, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_EndPush +// ****************************************************************** +SOOVPA<8> D3DDevice_EndPush_1_0_4432 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x8B }, + { 0x02, 0x24 }, + { 0x04, 0x8B }, + { 0x0A, 0x89 }, + { 0x0B, 0x01 }, + { 0x0C, 0xC2 }, + { 0x0D, 0x04 }, + { 0x0E, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_DeletePixelShader +// ****************************************************************** +// TODO: Add +SOOVPA<7> IDirect3DDevice8_DeletePixelShader_1_0_4531 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x75 }, + { 0x0A, 0x04 }, + { 0x0E, 0x09 }, + { 0x12, 0x04 }, + { 0x18, 0xC2 }, + { 0x1A, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Release +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_Release_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x08, 0x87 }, + { 0x09, 0x40 }, + { 0x0A, 0x04 }, + { 0x0B, 0x00 }, + { 0x0C, 0x00 }, + { 0x1B, 0xB9 }, + { 0x1C, 0xC0 }, + { 0x1D, 0x0A }, + { 0x1E, 0x00 }, + { 0x1F, 0x00 } + } +}; + +// ****************************************************************** +// * IDirect3DTexture8_GetSurfaceLevel +// ****************************************************************** +SOOVPA<14> IDirect3DTexture8_GetSurfaceLevel_1_0_4432 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DTexture8_GetSurfaceLevel+0x00 : sub esp, 0x0C + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x0C }, // (Offset,Value)-Pair #3 + + // IDirect3DTexture8_GetSurfaceLevel+0x04 : mov esi, [esp+0x14] + { 0x04, 0x8B }, // (Offset,Value)-Pair #4 + { 0x07, 0x14 }, // (Offset,Value)-Pair #5 + + // IDirect3DTexture8_GetSurfaceLevel+0x04 : lea eax, [esp+0x14] + { 0x08, 0x8D }, // (Offset,Value)-Pair #6 + { 0x0B, 0x14 }, // (Offset,Value)-Pair #7 + + // IDirect3DTexture8_GetSurfaceLevel+0x17 : mov edx, [esp+0x24] + { 0x17, 0x8B }, // (Offset,Value)-Pair #8 + { 0x1A, 0x24 }, // (Offset,Value)-Pair #9 + + // IDirect3DTexture8_GetSurfaceLevel+0x1B : lea eax, [esp+0x18] + { 0x1B, 0x8D }, // (Offset,Value)-Pair #10 + { 0x1E, 0x18 }, // (Offset,Value)-Pair #11 + + // IDirect3DTexture8_GetSurfaceLevel+0x29 : call [abs] + { 0x29, 0xE8 }, // (Offset,Value)-Pair #12 + + // IDirect3DTexture8_GetSurfaceLevel+0x4C : retn 0x0C + { 0x4C, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x4D, 0x0C }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDisplayMode +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetDisplayMode_1_0_4432 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetDisplayMode+0x01 : mov esi, ds:[*] + { 0x01, 0x8B }, // (Offset,Value)-Pair #1 + { 0x02, 0x35 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetDisplayMode+0x18 : shr ecx, 0x14 + { 0x18, 0xC1 }, // (Offset,Value)-Pair #3 + { 0x19, 0xE9 }, // (Offset,Value)-Pair #4 + { 0x1A, 0x14 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetDisplayMode+0x50 : shr eax, 0x0C + { 0x50, 0xC1 }, // (Offset,Value)-Pair #6 + { 0x51, 0xE8 }, // (Offset,Value)-Pair #7 + { 0x52, 0x0C }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetDisplayMode+0x6B : and eax, 0x0A + { 0x6B, 0x83 }, // (Offset,Value)-Pair #9 + { 0x6C, 0xE0 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_GetDisplayMode+0x92 : retn 4 + { 0x92, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x93, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetFlickerFilter +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetFlickerFilter_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetFlickerFilter+0x1C : mov eax, [eax+0x227C] + { 0x1D, 0x80 }, // (Offset,Value)-Pair #2 + { 0x1E, 0x7C }, // (Offset,Value)-Pair #3 + { 0x1F, 0x22 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetFlickerFilter+0x22 : push 0; push esi; push 0x0B; push eax + { 0x22, 0x6A }, // (Offset,Value)-Pair #5 + { 0x23, 0x00 }, // (Offset,Value)-Pair #6 + { 0x24, 0x56 }, // (Offset,Value)-Pair #7 + { 0x25, 0x6A }, // (Offset,Value)-Pair #8 + { 0x26, 0x0B }, // (Offset,Value)-Pair #9 + { 0x27, 0x50 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetFlickerFilter+0x3F : retn 0x04 + { 0x3F, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x40, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetFlickerFilter +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetSoftDisplayFilter_1_0_4432 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetSoftDisplayFilter+0x25 : mov edx, [eax+0x227C] + { 0x25, 0x8B }, // (Offset,Value)-Pair #1 + { 0x26, 0x90 }, // (Offset,Value)-Pair #2 + { 0x27, 0x7C }, // (Offset,Value)-Pair #3 + { 0x28, 0x22 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetSoftDisplayFilter+0x2B : push 0; push esi; push 0x0E; push edx + { 0x2B, 0x6A }, // (Offset,Value)-Pair #5 + { 0x2C, 0x00 }, // (Offset,Value)-Pair #6 + { 0x2D, 0x56 }, // (Offset,Value)-Pair #7 + { 0x2E, 0x6A }, // (Offset,Value)-Pair #8 + { 0x2F, 0x0E }, // (Offset,Value)-Pair #9 + { 0x30, 0x52 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetSoftDisplayFilter+0x4E : retn 0x04 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DVertexBuffer8_Lock +// ****************************************************************** +SOOVPA<11> IDirect3DVertexBuffer8_Lock_1_0_4531 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DVertexBuffer8_Lock+0x01 : mov bl, [esp+0x18] + { 0x01, 0x8A }, // (Offset,Value)-Pair #1 + { 0x02, 0x5C }, // (Offset,Value)-Pair #2 + { 0x03, 0x24 }, // (Offset,Value)-Pair #3 + { 0x04, 0x18 }, // (Offset,Value)-Pair #4 + + // IDirect3DVertexBuffer8_Lock+0x09 : jnz +0x24 + { 0x09, 0x75 }, // (Offset,Value)-Pair #5 + { 0x0A, 0x24 }, // (Offset,Value)-Pair #6 + + // IDirect3DVertexBuffer8_Lock+0x2F : test bl, 0xA0 + { 0x2F, 0xF6 }, // (Offset,Value)-Pair #7 + { 0x30, 0xC3 }, // (Offset,Value)-Pair #8 + { 0x31, 0xA0 }, // (Offset,Value)-Pair #9 + + // IDirect3DVertexBuffer8_Lock+0x50 : retn 0x14 + { 0x54, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x55, 0x14 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * D3DDevice_GetProjectionViewportMatrix +// ****************************************************************** +SOOVPA<7> D3DDevice_GetProjectionViewportMatrix_1_0_4432 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x35 }, + { 0x07, 0x57 }, + { 0x0A, 0x24 }, + { 0x0E, 0x70 }, + { 0x12, 0xB9 }, + { 0x16, 0x00 }, + { 0x1A, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexShaderInput +// ****************************************************************** +SOOVPA<8> D3DDevice_SetVertexShaderInput_1_0_4432 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x83 }, + { 0x3E, 0x10 }, + { 0x5E, 0x00 }, + { 0x7E, 0x24 }, + { 0x9E, 0x89 }, + { 0xBE, 0x81 }, + { 0xDE, 0xC6 }, + { 0xFE, 0x89 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetModelView +// ****************************************************************** +SOOVPA<7> D3DDevice_SetModelView_1_0_4432 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x15, 0x25 }, + { 0x2F, 0x81 }, + { 0x43, 0x43 }, + { 0x5A, 0x04 }, + { 0x72, 0x8D }, + { 0x88, 0x00 }, + { 0x9F, 0x75 }, + } +}; + +// ****************************************************************** +// * D3D8_1_0_4432 +// ****************************************************************** +OOVPATable D3D8_1_0_4432[] = +{ + // IDirect3D8::CreateDevice + { + (OOVPA*)&IDirect3D8_CreateDevice_1_0_4432, + + XTL::EmuIDirect3D8_CreateDevice, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CreateDevice" + #endif + }, + // IDirect3D8::CheckDeviceFormat (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3D8_CheckDeviceFormat_1_0_4361, + + XTL::EmuIDirect3D8_CheckDeviceFormat, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CheckDeviceFormat" + #endif + }, + // IDirect3DDevice8::SetRenderTarget (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderTarget_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTarget" + #endif + }, + // IDirect3DDevice8::AddRef (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_AddRef_1_0_4361, + + XTL::EmuIDirect3DDevice8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_AddRef" + #endif + }, + // IDirect3DDevice8::GetBackBuffer (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer_1_0_4134, + + XTL::EmuIDirect3DDevice8_GetBackBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer" + #endif + }, + // IDirect3DDevice8::Reset (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_Reset_1_0_4134, + + XTL::EmuIDirect3DDevice8_Reset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Reset" + #endif + }, + // IDirect3DDevice8::GetRenderTarget + { + (OOVPA*)&IDirect3DDevice8_GetRenderTarget_1_0_4432, + + XTL::EmuIDirect3DDevice8_GetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetRenderTarget" + #endif + }, + // IDirect3DDevice8::GetDepthStencilSurface + { + (OOVPA*)&IDirect3DDevice8_GetDepthStencilSurface_1_0_4432, + + XTL::EmuIDirect3DDevice8_GetDepthStencilSurface, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDepthStencilSurface" + #endif + }, + // IDirect3DDevice8::CreateVertexShader (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexShader" + #endif + }, + // IDirect3DDevice8::SetPixelShader + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + }, + // IDirect3D8::KickOffAndWaitForIdle (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3D8_KickOffAndWaitForIdle_1_0_4034, + + XTL::EmuIDirect3D8_KickOffAndWaitForIdle, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_KickOffAndWaitForIdle" + #endif + }, + // IDirect3DDevice8::SetViewport (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_SetViewport_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport" + #endif + }, + // IDirect3DDevice8::SetTexture (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::EnableOverlay (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_EnableOverlay_1_0_4361, + + XTL::EmuIDirect3DDevice8_EnableOverlay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EnableOverlay" + #endif + }, + // IDirect3DDevice8::SetTextureState_BumpEnv (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BumpEnv_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BumpEnv, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BumpEnv" + #endif + }, + // IDirect3DDevice8::SetTextureState_TwoSidedLighting (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TwoSidedLighting_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting" + #endif + }, + // IDirect3DDevice8::SetRenderState_BackFillMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_BackFillMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_BackFillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_BackFillMode" + #endif + }, + // IDirect3DDevice8::SetTextureState_BorderColor (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BorderColor_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BorderColor" + #endif + }, + // IDirect3DDevice8::SetTextureState_ColorKeyColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_ColorKeyColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_ColorKeyColor" + #endif + }, + // IDirect3DDevice8::SetTextureState_TexCoordIndex (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, + // IDirect3DDevice8::SetRenderState_VertexBlend (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_VertexBlend_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_VertexBlend" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullMode (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_FrontFace (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FrontFace_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FrontFace, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FrontFace" + #endif + }, + // IDirect3DDevice8::SetRenderState_LogicOp (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_LogicOp_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_LogicOp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LogicOp" + #endif + }, + // IDirect3DDevice8::SetRenderState_NormalizeNormals + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormals" + #endif + }, + // IDirect3DDevice8::SetRenderState_TextureFactor (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZBias (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZBias_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZBias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZBias" + #endif + }, + // IDirect3DDevice8::GetCreationParameters (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetCreationParameters_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetCreationParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetCreationParameters" + #endif + }, + // IDirect3DDevice8::GetVisibilityTestResult (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_GetVisibilityTestResult_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVisibilityTestResult, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVisibilityTestResult" + #endif + }, + // IDirect3DDevice8::SetTextureState_BumpEnv (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BumpEnv_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BumpEnv, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BumpEnv" + #endif + }, + // IDirect3DDevice8::SetRenderState_EdgeAntiAlias (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_FogColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_Simple (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilEnable (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_LineWidth + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_LineWidth_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetRenderState_LineWidth, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LineWidth" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilFail (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // IDirect3DDevice8::SetRenderState_OcclusionCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZCmpAlwaysRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_DoNotCullUncompressed (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed" + #endif + }, + // IDirect3DDevice8::SetRenderState_Dxt1NoiseEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleAntiAlias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMask (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleMask_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMask, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMask" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMode (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleRenderTargetMode (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_ShadowFunc (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_ShadowFunc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ShadowFunc" + #endif + }, + // IDirect3DDevice8::SwitchTexture (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SwitchTexture_1_0_4361, + + XTL::EmuIDirect3DDevice8_SwitchTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SwitchTexture" + #endif + }, + // IDirect3DDevice8::SetRenderState_YuvEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_YuvEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_YuvEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_YuvEnable" + #endif + }, + // IDirect3DDevice8::SetTransform (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTransform_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTransform" + #endif + }, + // IDirect3DDevice8::GetTransform (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_GetTransform_1_0_4361, + + XTL::EmuIDirect3DDevice8_GetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTransform" + #endif + }, + // IDirect3DDevice8::Clear (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_4134, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + // IDirect3DDevice8::CreatePalette (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreatePalette_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePalette" + #endif + }, + // IDirect3DDevice8::SetPalette + { + (OOVPA*)&IDirect3DDevice8_SetPalette_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetPalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPalette" + #endif + }, + // IDirect3DDevice8::CreateTexture (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateTexture_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture" + #endif + }, + // IDirect3DDevice8::Swap + { + (OOVPA*)&IDirect3DDevice8_Swap_1_0_4432, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap" + #endif + }, + // IDirect3DDevice8::Swap + { + (OOVPA*)&IDirect3DDevice8_Swap_1_0_4531, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap (4531)" + #endif + }, + // IDirect3DDevice8::UpdateOverlay + { + (OOVPA*)&IDirect3DDevice8_UpdateOverlay_1_0_4432, + + XTL::EmuIDirect3DDevice8_UpdateOverlay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_UpdateOverlay" + #endif + }, + // IDirect3DDevice8::BlockUntilVerticalBlank + { + (OOVPA*)&IDirect3DDevice8_BlockUntilVerticalBlank_1_0_4432, + + XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockUntilVerticalBlank" + #endif + }, + // IDirect3DDevice8::SetVerticalBlankCallback + { + (OOVPA*)&IDirect3DDevice8_SetVerticalBlankCallback_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVerticalBlankCallback" + #endif + }, + // IDirect3DDevice8::DrawIndexedVerticesUP (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVerticesUP_1_0_4134, + + XTL::EmuIDirect3DDevice8_DrawIndexedVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVerticesUP" + #endif + }, + // IDirect3DDevice8::SetStreamSource (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // IDirect3DDevice8::SetVertexShader (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::DrawVerticesUP (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_DrawVerticesUP_1_0_4361, + + XTL::EmuIDirect3DDevice8_DrawVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVerticesUP" + #endif + }, + // IDirect3DDevice8::SetLight (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetLight_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight" + #endif + }, + // IDirect3DDevice8::LightEnable (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_LightEnable_1_0_4361, + + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable" + #endif + }, + // IDirect3DResource8::Register (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Register_1_0_3925, + + XTL::EmuIDirect3DResource8_Register, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Register" + #endif + }, + // IDirect3DResource8::AddRef (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_AddRef_1_0_3925, + + XTL::EmuIDirect3DResource8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_AddRef" + #endif + }, + // IDirect3DResource8::Release (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Release_1_0_3925, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Release" + #endif + }, + // IDirect3DResource8::IsBusy (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DResource8_IsBusy_1_0_4361, + + XTL::EmuIDirect3DResource8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_IsBusy" + #endif + }, + // IDirect3DTexture8::GetSurfaceLevel + { + (OOVPA*)&IDirect3DTexture8_GetSurfaceLevel_1_0_4432, + + XTL::EmuIDirect3DTexture8_GetSurfaceLevel, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetSurfaceLevel" + #endif + }, + // IDirect3DPalette8::Lock (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DPalette8_Lock_1_0_3925, + + XTL::EmuIDirect3DPalette8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DPalette8_Lock" + #endif + }, + // IDirect3DSurface8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DSurface8_LockRect_1_0_3925, + + XTL::EmuIDirect3DSurface8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_LockRect" + #endif + }, + // IDirect3DDevice8_Release + { + (OOVPA*)&IDirect3DDevice8_Release_1_0_4432, + + XTL::EmuIDirect3DDevice8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Release" + #endif + }, + // IDirect3DDevice8::SetMaterial (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetMaterial" + #endif + }, + // IDirect3DDevice8_GetDeviceCaps (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_GetDeviceCaps_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetDeviceCaps, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDeviceCaps" + #endif + }, + // IDirect3DDevice8_BackFillMode_4531 + { + (OOVPA*)&IDirect3DDevice8_BackFillMode_1_0_4531, + + XTL::EmuIDirect3DDevice8_SetRenderState_BackFillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_BackFillMode (4531)" + #endif + }, + // IDirect3DSurface8::GetDesc (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DSurface8_GetDesc_1_0_4361, + + XTL::EmuIDirect3DSurface8_GetDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_GetDesc" + #endif + }, + // Get2DSurfacDesc (* unchanged since 4361 *) + { + (OOVPA*)&Get2DSurfaceDesc_1_0_4361, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc" + #endif + }, + // IDirect3DDevice8::SetPixelShaderConstant (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetPixelShaderConstant_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetPixelShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderConstant" + #endif + }, + // IDirect3DDevice8::DeletePixelShader (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_DeletePixelShader_1_0_4134, + + XTL::EmuIDirect3DDevice8_DeletePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeletePixelShader" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullModeB (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullModeB_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullModeB" + #endif + }, + // D3DDevice_DeleteVertexShader (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_DeleteVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_DeleteVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteVertexShader" + #endif + }, + // IDirect3DDevice8_SetScreenSpaceOffset (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetScreenSpaceOffset_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetScreenSpaceOffset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScreenSpaceOffset" + #endif + }, + // D3D::SetFence (XREF) (* unchanged since 4134 *) + { + (OOVPA*)&D3D_SetFence_1_0_4134, 0, + + #ifdef _DEBUG_TRACE + "D3D::SetFence (XREF)" + #endif + }, + // IDirect3DDevice8::GetGammaRamp (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetGammaRamp_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetGammaRamp" + #endif + }, + // IDirect3DDevice8::GetDisplayMode + { + (OOVPA*)&IDirect3DDevice8_GetDisplayMode_1_0_4432, + + XTL::EmuIDirect3DDevice8_GetDisplayMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDisplayMode" + #endif + }, + // IDirect3DDevice8::CreateVertexBuffer (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateVertexBuffer_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexBuffer" + #endif + }, + // IDirect3DVertexBuffer8::Lock (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock_1_0_4361, + + XTL::EmuIDirect3DVertexBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock" + #endif + }, + // IDirect3DVertexBuffer8::Lock + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock_1_0_4531, + + XTL::EmuIDirect3DVertexBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock (4531)" + #endif + }, + // IDirect3DDevice8::SetShaderConstantMode (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetShaderConstantMode_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetShaderConstantMode" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant" + #endif + }, + // IDirect3DDevice8::CreatePixelShader (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreatePixelShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePixelShader" + #endif + }, + // IDirect3DDevice8::GetViewport (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_GetViewport_1_0_4361, + + XTL::EmuIDirect3DDevice8_GetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetViewport" + #endif + }, + // IDirect3DDevice8::DrawVertices (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_4361, + + XTL::EmuIDirect3DDevice8_DrawVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVertices" + #endif + }, + // IDirect3DDevice8::SetFlickerFilter + { + (OOVPA*)&IDirect3DDevice8_SetFlickerFilter_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetFlickerFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetFlickerFilter" + #endif + }, + // IDirect3DDevice8::SetSoftDisplayFilter + { + (OOVPA*)&IDirect3DDevice8_SetSoftDisplayFilter_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetSoftDisplayFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSoftDisplayFilter" + #endif + }, + // IDirect3DDevice8::SetGammaRamp (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetGammaRamp_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetGammaRamp" + #endif + }, + // IDirect3DDevice8::DrawIndexedVertices (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_4361, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, + // IDirect3DDevice8::Begin (* unchanged since 4361 *) + { + (OOVPA*)&D3DDevice_Begin_1_0_4361, + + XTL::EmuIDirect3DDevice8_Begin, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Begin" + #endif + }, + // IDirect3DDevice8::End (* unchanged since 4361 *) + { + (OOVPA*)&D3DDevice_End_1_0_4361, + + XTL::EmuIDirect3DDevice8_End, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_End" + #endif + }, + // IDirect3DDevice8::SetVertexData2f (* unchanged since 4361 *) + { + (OOVPA*)&D3DDevice_SetVertexData2f_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::SetVertexData4f (* unchanged since 4361 *) + { + (OOVPA*)&D3DDevice_SetVertexData4f_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexData4f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4f" + #endif + }, + // IDirect3DDevice8::SetVertexData4ub (* un`anged since 4361 *) + { + (OOVPA*)&D3DDevice_SetVertexData4ub_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexData4ub, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4ub" + #endif + }, + // IDirect3DDevice8::SetIndices (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetIndices_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // D3DDevice_GetVertexShaderSize (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_GetVertexShaderSize_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVertexShaderSize, + + #ifdef _DEBUG_TRACE + "D3DDevice_GetVertexShaderSize" + #endif + }, + // IDirect3DDevice8::BeginStateBlock + { + (OOVPA*)&IDirect3DDevice8_BeginStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_BeginStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginStateBlock" + #endif + }, + // IDirect3DDevice8::EndStateBlock + { + (OOVPA*)&IDirect3DDevice8_EndStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_EndStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndStateBlock" + #endif + }, + // Lock2DSurface (* unchanged since 3925 *) + { + (OOVPA*)&Lock2DSurface_1_0_3925, + + XTL::EmuLock2DSurface, + + #ifdef _DEBUG_TRACE + "EmuLock2DSurface" + #endif + }, + // IDirect3DBaseTexture8::GetLevelCount (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DBaseTexture8_GetLevelCount_1_0_4361, + + XTL::EmuIDirect3DBaseTexture8_GetLevelCount, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DBaseTexture8_GetLevelCount" + #endif + }, + // IDirect3DDevice8_GetProjectionViewportMatrix + { + (OOVPA*)&D3DDevice_GetProjectionViewportMatrix_1_0_4432, + + XTL::EmuIDirect3DDevice8_GetProjectionViewportMatrix, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetProjectionViewportMatrix" + #endif + }, + // D3DDevice_SetVertexShaderInputDirect + { + (OOVPA*)&D3DDevice_SetVertexShaderInput_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetVertexShaderInput, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderInput" + #endif + }, + // D3DDevice_SetModelView + { + (OOVPA*)&D3DDevice_SetModelView_1_0_4432, + XTL::EmuIDirect3DDevice8_SetModelView, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetModelView" + #endif + }, + // IDirect3DDevice8::BeginPush + { + (OOVPA*)&D3DDevice_BeginPush_1_0_4432, + + XTL::EmuIDirect3DDevice8_BeginPush, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginPush" + #endif + }, + // IDirect3DDevice8::EndPush + { + (OOVPA*)&D3DDevice_EndPush_1_0_4432, + + XTL::EmuIDirect3DDevice8_EndPush, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndPush" + #endif + }, +}; + +// ****************************************************************** +// * D3D8_1_0_4432_SIZE +// ****************************************************************** +uint32 D3D8_1_0_4432_SIZE = sizeof(D3D8_1_0_4432); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4627.h b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4627.h new file mode 100644 index 000000000..7fe81d321 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4627.h @@ -0,0 +1,44 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4627.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_1_0_4627_H +#define D3D8_1_0_4627_H + +#include "OOVPA.h" + +extern SOOVPA<10> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4627; + +extern OOVPATable D3D8_1_0_4627[]; +extern uint32 D3D8_1_0_4627_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4627.inl new file mode 100644 index 000000000..b00584e85 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.4627.inl @@ -0,0 +1,6376 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4627.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * IDirect3D8_CreateDevice +// ****************************************************************** +SOOVPA<8> IDirect3D8_CreateDevice_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_CreateDevice+0x07 : jnz +0x0A + { 0x07, 0x75 }, // (Offset,Value)-Pair #1 + { 0x08, 0x0A }, // (Offset,Value)-Pair #2 + + // IDirect3D8_CreateDevice+0x80 : repe stosd + { 0x80, 0xF3 }, // (Offset,Value)-Pair #3 + { 0x81, 0xAB }, // (Offset,Value)-Pair #4 + + // IDirect3D8_CreateDevice+0x83 : mov eax, esi + { 0x83, 0x8B }, // (Offset,Value)-Pair #5 + { 0x84, 0xC6 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_CreateDevice+0x90 : retn 0x18 + { 0x90, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x91, 0x18 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3D8_CreateDeviceX (From D3D8X) +// ****************************************************************** +SOOVPA<8> IDirect3D8_CreateDeviceX_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_CreateDevice+0x07 : jnz +0x0A + { 0x07, 0x75 }, // (Offset,Value)-Pair #1 + { 0x08, 0x0A }, // (Offset,Value)-Pair #2 + + // IDirect3D8_CreateDevice+0x7F : repe stosd + { 0x7F, 0xF3 }, // (Offset,Value)-Pair #3 + { 0x80, 0xAB }, // (Offset,Value)-Pair #4 + + // IDirect3D8_CreateDevice+0x82 : mov eax, esi + { 0x82, 0x8B }, // (Offset,Value)-Pair #5 + { 0x83, 0xC6 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_CreateDevice+0xA0 : retn 0x18 + { 0xA0, 0xC2 }, // (Offset,Value)-Pair #7 + { 0xA1, 0x18 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BeginVisibilityTest +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_BeginVisibilityTest_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_BeginVisibilityTest+0x13 : mov dword ptr [eax], 0x000817C8 + { 0x13, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x14, 0x00 }, // (Offset,Value)-Pair #2 + { 0x15, 0xC8 }, // (Offset,Value)-Pair #3 + { 0x16, 0x17 }, // (Offset,Value)-Pair #4 + { 0x17, 0x08 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_BeginVisibilityTest+0x19 : mov ecx, 1 + { 0x19, 0xB9 }, // (Offset,Value)-Pair #6 + { 0x1A, 0x01 }, // (Offset,Value)-Pair #7 + { 0x1B, 0x00 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_BeginVisibilityTest+0x24 : add eax, 0x0C + { 0x24, 0x83 }, // (Offset,Value)-Pair #9 + { 0x25, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x26, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3D8_CreateDevice +// ****************************************************************** +SOOVPA<8> IDirect3D8_CreateDevice_1_0_5028 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_CreateDevice+0x0A : jnz +0x0A + { 0x0A, 0x75 }, // (Offset,Value)-Pair #1 + { 0x0B, 0x0A }, // (Offset,Value)-Pair #2 + + // IDirect3D8_CreateDevice+0x80 : repe stosd + { 0x80, 0xF3 }, // (Offset,Value)-Pair #3 + { 0x81, 0xAB }, // (Offset,Value)-Pair #4 + + // IDirect3D8_CreateDevice+0x83 : mov eax, esi + { 0x83, 0x8B }, // (Offset,Value)-Pair #5 + { 0x84, 0xC6 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_CreateDevice+0x91 : retn 0x18 + { 0x91, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x92, 0x18 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_EndVisibilityTest +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_EndVisibilityTest_1_0_4627 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_EndVisibilityTest+0x11 : mov eax, 0x8007000E + { 0x11, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x12, 0x0E }, // (Offset,Value)-Pair #2 + { 0x13, 0x00 }, // (Offset,Value)-Pair #3 + { 0x14, 0x07 }, // (Offset,Value)-Pair #4 + { 0x15, 0x80 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_EndVisibilityTest+0x2D : mov dword ptr [eax], 0x000817CC + { 0x2D, 0xC7 }, // (Offset,Value)-Pair #6 + { 0x2E, 0x00 }, // (Offset,Value)-Pair #7 + { 0x2F, 0xCC }, // (Offset,Value)-Pair #8 + { 0x30, 0x17 }, // (Offset,Value)-Pair #9 + { 0x31, 0x08 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_EndVisibilityTest+0x49 : add eax, 0x0C + { 0x49, 0x83 }, // (Offset,Value)-Pair #11 + { 0x4A, 0xC0 }, // (Offset,Value)-Pair #12 + { 0x4B, 0x0C }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3D8_GetAdapterDisplayMode +// ****************************************************************** +SOOVPA<13> IDirect3D8_GetAdapterDisplayMode_1_0_4627 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_GetAdapterDisplayMode+0x08 : mov eax, 0x8876086C + { 0x08, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x09, 0x6C }, // (Offset,Value)-Pair #2 + { 0x0A, 0x08 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x76 }, // (Offset,Value)-Pair #4 + { 0x0C, 0x88 }, // (Offset,Value)-Pair #5 + + // IDirect3D8_GetAdapterDisplayMode+0x19 : jnz +0x18 + { 0x19, 0x75 }, // (Offset,Value)-Pair #6 + { 0x1A, 0x18 }, // (Offset,Value)-Pair #7 + + // IDirect3D8_GetAdapterDisplayMode+0x33 : mov ecx, [esi+0x21C4] + { 0x33, 0x8B }, // (Offset,Value)-Pair #8 + { 0x34, 0x8E }, // (Offset,Value)-Pair #9 + { 0x35, 0xC4 }, // (Offset,Value)-Pair #10 + { 0x36, 0x21 }, // (Offset,Value)-Pair #11 + + // IDirect3D8_GetAdapterDisplayMode+0xB6 : retn 0x08 + { 0xB6, 0xC2 }, // (Offset,Value)-Pair #12 + { 0xB7, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3D8_KickOffAndWaitForIdle +// ****************************************************************** +SOOVPA<9> IDirect3D8_KickOffAndWaitForIdle_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_KickOffAndWaitForIdle+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3D8_KickOffAndWaitForIdle+0x05 : mov ecx, [eax+0x30] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x48 }, // (Offset,Value)-Pair #3 + { 0x07, 0x30 }, // (Offset,Value)-Pair #4 + + // IDirect3D8_KickOffAndWaitForIdle+0x08 : push 2 + { 0x08, 0x6A }, // (Offset,Value)-Pair #5 + { 0x09, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_KickOffAndWaitForIdle+0x0A : push ecx + { 0x0A, 0x51 }, // (Offset,Value)-Pair #7 + + // IDirect3D8_KickOffAndWaitForIdle+0x0B : call [addr] + { 0x0B, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3D8_KickOffAndWaitForIdle+0x10 : retn + { 0x10, 0xC3 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3D8_KickOffAndWaitForIdle2 +// ****************************************************************** +SOOVPA<11> IDirect3D8_KickOffAndWaitForIdle2_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_KickOffAndWaitForIdle2+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3D8_KickOffAndWaitForIdle2+0x05 : mov ecx, [eax+0x30] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x48 }, // (Offset,Value)-Pair #3 + { 0x07, 0x30 }, // (Offset,Value)-Pair #4 + + // IDirect3D8_KickOffAndWaitForIdle2+0x08 : push 2 + { 0x08, 0x6A }, // (Offset,Value)-Pair #5 + { 0x09, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_KickOffAndWaitForIdle2+0x0A : push ecx + { 0x0A, 0x51 }, // (Offset,Value)-Pair #7 + + // IDirect3D8_KickOffAndWaitForIdle2+0x0B : call [addr] + { 0x0B, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3D8_KickOffAndWaitForIdle2+0x18 : call [addr] + { 0x18, 0xE8 }, // (Offset,Value)-Pair #9 + + // IDirect3D8_KickOffAndWaitForIdle2+0x1D : retn 0x08 + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x1E, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BeginPush +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_BeginPush_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x00 }, + { 0x12, 0x8B }, + { 0x1C, 0x02 }, + { 0x26, 0x72 }, + { 0x30, 0xE8 }, + { 0x3A, 0x76 }, + { 0x44, 0x52 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetViewport +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetViewport_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetViewport+0x0A : mov eax, [esi+0x21B4] + { 0x0A, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0B, 0x86 }, // (Offset,Value)-Pair #2 + { 0x0C, 0xB4 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x21 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetViewport+0x63 : shl edi, cl + { 0x63, 0xD3 }, // (Offset,Value)-Pair #5 + { 0x64, 0xE7 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetViewport+0xDF : and ecx, 0x0F + { 0xDF, 0x83 }, // (Offset,Value)-Pair #7 + { 0xE0, 0xE1 }, // (Offset,Value)-Pair #8 + { 0xE1, 0x0F }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * D3D_CommonSetRenderTarget +// ****************************************************************** +SOOVPA<12> D3D_CommonSetRenderTarget_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_COMMONSETRENDERTARGET, // XRef Is Saved + 0, // XRef Not Used + + { + // D3D_CommonSetRenderTarget+0x00 : sub esp, 0x20 + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x20 }, // (Offset,Value)-Pair #3 + + // D3D_CommonSetRenderTarget+0x86 : jmp +0x06 + { 0x86, 0xEB }, // (Offset,Value)-Pair #4 + { 0x87, 0x06 }, // (Offset,Value)-Pair #5 + + // D3D_CommonSetRenderTarget+0x88 : and eax, 0x0FFF + { 0x88, 0x25 }, // (Offset,Value)-Pair #6 + { 0x89, 0xFF }, // (Offset,Value)-Pair #7 + { 0x8A, 0x0F }, // (Offset,Value)-Pair #8 + { 0x8B, 0x00 }, // (Offset,Value)-Pair #9 + + // D3D_CommonSetRenderTarget+0xC6 : and ecx, 0x0F + { 0xC6, 0x83 }, // (Offset,Value)-Pair #10 + { 0xC7, 0xE1 }, // (Offset,Value)-Pair #11 + { 0xC8, 0x0F }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * D3D_CommonSetRenderTargetB +// ****************************************************************** +SOOVPA<11> D3D_CommonSetRenderTargetB_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_COMMONSETRENDERTARGET, // XRef Is Saved + 0, // XRef Not Used + + { + // D3D_CommonSetRenderTargetB+0x00 : sub esp, 0x24 + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + + // D3D_CommonSetRenderTargetB+0x86 : jmp +0x06 + { 0x8D, 0xEB }, // (Offset,Value)-Pair #4 + { 0x8E, 0x04 }, // (Offset,Value)-Pair #5 + + // D3D_CommonSetRenderTargetB+0xE4 : and eax, 0x0FFF + { 0xE4, 0x25 }, // (Offset,Value)-Pair #6 + { 0xE5, 0xFF }, // (Offset,Value)-Pair #7 + { 0xE6, 0x0F }, // (Offset,Value)-Pair #8 + { 0xE7, 0x00 }, // (Offset,Value)-Pair #9 + + // D3D_CommonSetRenderTargetB+0xF4 : jge +0x06 + { 0xF4, 0x7D }, // (Offset,Value)-Pair #10 + { 0xF5, 0x06 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderTarget +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderTarget_1_0_4627 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirect3DDevice8_SetRenderTarget+0x10 : call [D3D_CommonSetRenderTarget] + { 0x10, XREF_COMMONSETRENDERTARGET }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderTarget+0x00 : mov eax, [esp+0x08] + { 0x00, 0x8B }, // (Offset,Value)-Pair #2 + { 0x01, 0x44 }, // (Offset,Value)-Pair #3 + { 0x02, 0x24 }, // (Offset,Value)-Pair #4 + { 0x03, 0x08 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderTarget+0x04 : mov ecx, [esp+0x04] + { 0x04, 0x8B }, // (Offset,Value)-Pair #6 + { 0x05, 0x4C }, // (Offset,Value)-Pair #7 + { 0x06, 0x24 }, // (Offset,Value)-Pair #8 + { 0x07, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderTarget+0x0D : push eax; push ecx + { 0x0D, 0x50 }, // (Offset,Value)-Pair #10 + { 0x0E, 0x51 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderTarget+0x14 : retn 0x08 + { 0x14, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x15, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_AddRef +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_AddRef_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_AddRef+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_AddRef+0x05 : mov ecx, [eax+0x0500] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x88 }, // (Offset,Value)-Pair #3 + { 0x07, 0x00 }, // (Offset,Value)-Pair #4 + { 0x08, 0x05 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_AddRef+0x0B : inc ecx + { 0x0B, 0x41 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_AddRef+0x0C : mov [eax+0x0500], ecx + { 0x0C, 0x89 }, // (Offset,Value)-Pair #7 + { 0x0D, 0x88 }, // (Offset,Value)-Pair #8 + { 0x0E, 0x00 }, // (Offset,Value)-Pair #9 + { 0x0F, 0x05 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetGammaRamp +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetGammaRamp_1_0_4928 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x25, 0x57 }, // (Offset,Value)-Pair #1 + { 0x26, 0x83 }, // (Offset,Value)-Pair #2 + { 0x27, 0xE0 }, // (Offset,Value)-Pair #3 + { 0x28, 0x01 }, // (Offset,Value)-Pair #4 + + { 0x39, 0xF3 }, // (Offset,Value)-Pair #5 + { 0x3A, 0xA7 }, // (Offset,Value)-Pair #6 + + { 0x5A, 0x89 }, // (Offset,Value)-Pair #7 + { 0x5B, 0x82 }, // (Offset,Value)-Pair #8 + { 0x5C, 0xE4 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetShaderConstantMode +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetShaderConstantMode_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetShaderConstantMode+0x26 : mov [ebx+0x20D8], eax + { 0x26, 0x89 }, // (Offset,Value)-Pair #1 + { 0x27, 0x83 }, // (Offset,Value)-Pair #2 + { 0x28, 0xD8 }, // (Offset,Value)-Pair #3 + { 0x29, 0x20 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetShaderConstantMode+0x50 : mov dword ptr [eax+0x04], 0x3C + { 0x50, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x51, 0x40 }, // (Offset,Value)-Pair #6 + { 0x52, 0x04 }, // (Offset,Value)-Pair #7 + { 0x53, 0x3C }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetShaderConstantMode+0xE7 : add esi, 0x0124 + { 0xE7, 0x81 }, // (Offset,Value)-Pair #9 + { 0xE8, 0xC6 }, // (Offset,Value)-Pair #10 + { 0xE9, 0x24 }, // (Offset,Value)-Pair #11 + { 0xEA, 0x01 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CopyRects +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_CopyRects_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x57 }, + { 0x3E, 0xF6 }, + { 0x5E, 0x00 }, + { 0x7E, 0x01 }, + { 0x9E, 0x00 }, + { 0xBE, 0x0C }, + { 0xDE, 0xF7 }, + { 0xFE, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetBackBuffer2 +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetBackBuffer2_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetBackBuffer2+0x04 : cmp eax, 0xFFFFFFFF + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetBackBuffer+0x0D : jnz +0x19 + { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0E, 0x19 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetBackBuffer+0x15 : mov esi, [ecx+eax*4+0x21C0] + { 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, 0x21 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_GetBackBuffer+0x40 : retn 0x04 + { 0x40, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x41, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetBackBuffer2B +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetBackBuffer2B_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetBackBuffer2B+0x04 : cmp eax, 0xFFFFFFFF + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetBackBuffer2B+0x0D : jnz +0x07 + { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0E, 0x07 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetBackBuffer2B+0x1E : mov esi, [ecx+eax*4+0x21C0] + { 0x1E, 0x8B }, // (Offset,Value)-Pair #6 + { 0x1F, 0xB4 }, // (Offset,Value)-Pair #7 + { 0x20, 0x81 }, // (Offset,Value)-Pair #8 + { 0x21, 0xC0 }, // (Offset,Value)-Pair #9 + { 0x22, 0x21 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_GetBackBuffer2B+0x4C : retn 0x04 + { 0x4C, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x4D, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetRenderTarget2 +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_GetRenderTarget2_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetRenderTarget2+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_GetRenderTarget2+0x05 : push esi + { 0x05, 0x56 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetRenderTarget2+0x06 : mov esi, [eax + 0x21B4] + { 0x06, 0x8B }, // (Offset,Value)-Pair #3 + { 0x07, 0xB0 }, // (Offset,Value)-Pair #4 + { 0x08, 0xB4 }, // (Offset,Value)-Pair #5 + { 0x09, 0x21 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetRenderTarget2+0x0E : jz + 0x06 + { 0x0E, 0x74 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x06 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetRenderTarget2+0x11 : call [addr] + { 0x11, 0xE8 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_GetRenderTarget2+0x19 : retn + { 0x19, 0xC3 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetRenderTarget2B +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_GetRenderTarget2B_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetRenderTarget2B+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_GetRenderTarget2B+0x05 : push esi + { 0x05, 0x56 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetRenderTarget2B+0x06 : mov esi, [eax + 0x21B4] + { 0x06, 0x8B }, // (Offset,Value)-Pair #3 + { 0x07, 0xB0 }, // (Offset,Value)-Pair #4 + { 0x08, 0xB4 }, // (Offset,Value)-Pair #5 + { 0x09, 0x21 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetRenderTarget2B+0x2A : jz + 0x06 + { 0x2A, 0x74 }, // (Offset,Value)-Pair #7 + { 0x2B, 0x06 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetRenderTarget2B+0x2D : call [addr] + { 0x2D, 0xE8 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_GetRenderTarget2B+0x37 : retn + { 0x37, 0xC3 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDepthStencilSurface2 +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_GetDepthStencilSurface2_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetDepthStencilSurface2+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_GetDepthStencilSurface2+0x05 : push esi + { 0x05, 0x56 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetDepthStencilSurface2+0x06 : mov esi, [eax + 0x21B8] + { 0x06, 0x8B }, // (Offset,Value)-Pair #3 + { 0x07, 0xB0 }, // (Offset,Value)-Pair #4 + { 0x08, 0xB8 }, // (Offset,Value)-Pair #5 + { 0x09, 0x21 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetDepthStencilSurface2+0x0E : jnz +0x04 + { 0x0E, 0x75 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetDepthStencilSurface2+0x15 : call [addr] + { 0x15, 0xE8 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_GetDepthStencilSurface2+0x1D : retn + { 0x1D, 0xC3 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDepthStencilSurface2B +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_GetDepthStencilSurface2B_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetDepthStencilSurface2B+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_GetDepthStencilSurface2B+0x05 : push esi + { 0x05, 0x56 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetDepthStencilSurface2B+0x06 : mov esi, [eax + 0x21B8] + { 0x06, 0x8B }, // (Offset,Value)-Pair #3 + { 0x07, 0xB0 }, // (Offset,Value)-Pair #4 + { 0x08, 0xB8 }, // (Offset,Value)-Pair #5 + { 0x09, 0x21 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetDepthStencilSurface2B+0x0E : jnz +0x04 + { 0x0E, 0x75 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetDepthStencilSurface2B+0x31 : call [addr] + { 0x31, 0xE8 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_GetDepthStencilSurface2B+0x3B : retn + { 0x3B, 0xC3 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetTile +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_GetTile_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetTile+0x13 : lea esi, [ecx+eax*8+0x2260] + { 0x13, 0x8D }, // (Offset,Value)-Pair #1 + { 0x14, 0xB4 }, // (Offset,Value)-Pair #2 + { 0x15, 0xC1 }, // (Offset,Value)-Pair #3 + { 0x16, 0x60 }, // (Offset,Value)-Pair #4 + { 0x17, 0x22 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetTile+0x1A : mov ecx, 0x06 + { 0x1A, 0xB9 }, // (Offset,Value)-Pair #6 + { 0x1B, 0x06 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_GetTile+0x21 : pop edi; pop esi + { 0x21, 0x5F }, // (Offset,Value)-Pair #8 + { 0x22, 0x5E }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_GetTile+0x23 : retn 0x08 + { 0x23, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x24, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTileNoWait +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetTileNoWait_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTileNoWait+0x06 : sub esp, 0x18 + { 0x06, 0x83 }, // (Offset,Value)-Pair #1 + { 0x07, 0xEC }, // (Offset,Value)-Pair #2 + { 0x08, 0x18 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTileNoWait+0x15 : cmp [esi+4], eax + { 0x15, 0x39 }, // (Offset,Value)-Pair #4 + { 0x16, 0x46 }, // (Offset,Value)-Pair #5 + { 0x17, 0x04 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetTileNoWait+0x3D : lea edi, [edx+ecx*8+0x2260] + { 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, 0x22 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateIndexBuffer2 +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_CreateIndexBuffer2_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0xC0 }, + { 0x0F, 0x85 }, + { 0x13, 0xC2 }, + { 0x1A, 0x89 }, + { 0x21, 0x08 }, + { 0x28, 0x00 }, + { 0x2F, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShaderConstant +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetPixelShaderConstant_1_0_4928 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPixelShaderConstant+0x1E : test eax, eax + { 0x1E, 0x85 }, // (Offset,Value)-Pair #1 + { 0x1F, 0xC0 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetPixelShaderConstant+0x32 : mov [ebp+0x10], eax + { 0x32, 0x89 }, // (Offset,Value)-Pair #3 + { 0x33, 0x45 }, // (Offset,Value)-Pair #4 + { 0x34, 0x10 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetPixelShaderConstant+0x84 : or eax, ebx + { 0x84, 0x0B }, // (Offset,Value)-Pair #6 + { 0x85, 0xC3 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetPixelShaderConstant+0xBD : mov dword ptr [eax], 0x406A0 + { 0xBD, 0xC7 }, // (Offset,Value)-Pair #8 + { 0xBE, 0x00 }, // (Offset,Value)-Pair #9 + { 0xBF, 0x60 }, // (Offset,Value)-Pair #10 + { 0xC0, 0x0A }, // (Offset,Value)-Pair #11 + { 0xC1, 0x04 }, // (Offset,Value)-Pair #12 + { 0xC2, 0x00 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderConstant1 +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetVertexShaderConstant1_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShaderConstant1+0x06 : add eax, 0x1C + { 0x06, 0x83 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x08, 0x1C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x0F : jnb +0x43 + { 0x0F, 0x73 }, // (Offset,Value)-Pair #4 + { 0x10, 0x43 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x27 : shl ecx, 0x04 + { 0x27, 0xC1 }, // (Offset,Value)-Pair #6 + { 0x28, 0xE1 }, // (Offset,Value)-Pair #7 + { 0x29, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x53 : retn + { 0x53, 0xC3 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x5D : jmp +0xA2 + { 0x5D, 0xEB }, // (Offset,Value)-Pair #10 + { 0x5E, 0xA2 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderConstant4 +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetVertexShaderConstant4_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShaderConstant4+0x05 : add eax, 0x4C + { 0x05, 0x83 }, // (Offset,Value)-Pair #1 + { 0x06, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x07, 0x4C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderConstant4+0x34 : movq mm7, qword ptr [edx+0x38] + { 0x34, 0x0F }, // (Offset,Value)-Pair #4 + { 0x35, 0x6F }, // (Offset,Value)-Pair #5 + { 0x36, 0x7A }, // (Offset,Value)-Pair #6 + { 0x37, 0x38 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetVertexShaderConstant4+0x42 : shl ecx, 0x04 + { 0x42, 0xC1 }, // (Offset,Value)-Pair #8 + { 0x43, 0xE1 }, // (Offset,Value)-Pair #9 + { 0x44, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetVertexShaderConstant4+0x91 : emms + { 0x91, 0x0F }, // (Offset,Value)-Pair #11 + { 0x92, 0x77 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderConstantNotInline +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetVertexShaderConstantNotInline_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShaderConstantNotInline+0x02 : test byte ptr ds:[abs], 0x10 + { 0x02, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x07, 0x00 }, // (Offset,Value)-Pair #2 + { 0x08, 0x10 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderConstantNotInline+0x0E : jnz +0x15 + { 0x0E, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0F, 0x15 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetVertexShaderConstantNotInline+0x42 : push esi; push edi; mov edi, eax + { 0x10, 0x56 }, // (Offset,Value)-Pair #6 + { 0x11, 0x57 }, // (Offset,Value)-Pair #7 + { 0x12, 0x8B }, // (Offset,Value)-Pair #8 + { 0x13, 0xF8 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexShaderConstantNotInline+0x21 : rep movsd + { 0x21, 0xF3 }, // (Offset,Value)-Pair #10 + { 0x22, 0xA5 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetVertexShaderConstantNotInline+0x28 : call [abs] + { 0x28, 0xE8 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShader +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetPixelShader_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPixelShader+0x26 : or ecx, 0x4800 + { 0x26, 0x81 }, // (Offset,Value)-Pair #1 + { 0x27, 0xC9 }, // (Offset,Value)-Pair #2 + { 0x28, 0x00 }, // (Offset,Value)-Pair #3 + { 0x29, 0x48 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetPixelShader+0x3E : or eax, 0x2000 + { 0x3E, 0x0D }, // (Offset,Value)-Pair #5 + { 0x40, 0x20 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetPixelShader+0x7D : retn 0x04 + { 0x7D, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x7E, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetPixelShader+0xDE : rep movsd + { 0xDE, 0xF3 }, // (Offset,Value)-Pair #9 + { 0xDF, 0xA5 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateTexture2 +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_CreateTexture2_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateTexture2+0x02 : lea eax, [esp+0x20] + { 0x02, 0x8D }, // (Offset,Value)-Pair #1 + { 0x05, 0x20 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreateTexture2+0x0E : setz dl + { 0x0E, 0x0F }, // (Offset,Value)-Pair #3 + { 0x0F, 0x94 }, // (Offset,Value)-Pair #4 + { 0x10, 0xC2 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_CreateTexture2+0x2A : push 0x00 + { 0x2A, 0x6A }, // (Offset,Value)-Pair #6 + { 0x2B, 0x00 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreateTexture2+0x53 : call [abs] + { 0x53, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_CreateTexture2+0x78 : jnz +0x0D + { 0x78, 0x75 }, // (Offset,Value)-Pair #9 + { 0x79, 0x0D }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_CreateTexture2+0xAE : retn 0x1C + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #11 + { 0xAF, 0x1C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateTexture2B +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_CreateTexture2B_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateTexture2B+0x02 : lea eax, [esp+0x20] + { 0x02, 0x8D }, // (Offset,Value)-Pair #1 + { 0x05, 0x20 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreateTexture2B+0x0E : setz dl + { 0x0E, 0x0F }, // (Offset,Value)-Pair #3 + { 0x0F, 0x94 }, // (Offset,Value)-Pair #4 + { 0x10, 0xC2 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_CreateTexture2B+0x2A : push 0x00 + { 0x25, 0x6A }, // (Offset,Value)-Pair #6 + { 0x26, 0x00 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreateTexture2B+0x53 : call [abs] + { 0x50, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_CreateTexture2B+0x78 : jnz +0x0D + { 0x75, 0x75 }, // (Offset,Value)-Pair #9 + { 0x76, 0x0D }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_CreateTexture2B+0xAE : retn 0x1C + { 0x81, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x82, 0x1C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateTexture2C +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_CreateTexture2C_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateTexture2C+0x02 : lea eax, [esp+0x20] + { 0x04, 0x8D }, // (Offset,Value)-Pair #1 + { 0x07, 0x20 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreateTexture2C+0x0E : setz dl + { 0x10, 0x0F }, // (Offset,Value)-Pair #3 + { 0x11, 0x94 }, // (Offset,Value)-Pair #4 + { 0x12, 0xC2 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_CreateTexture2C+0x2A : push 0x00 + { 0x2E, 0x6A }, // (Offset,Value)-Pair #6 + { 0x2F, 0x00 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreateTexture2C+0x53 : call [abs] + { 0x57, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_CreateTexture2C+0x78 : jnz +0x0D + { 0x7C, 0x75 }, // (Offset,Value)-Pair #9 + { 0x7D, 0x0D }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_CreateTexture2C+0xAE : retn 0x1C + { 0x88, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x89, 0x1C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetIndicesB +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetIndicesB_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetIndicesB+0x0F : jz +0x10 + { 0x0F, 0x74 }, // (Offset,Value)-Pair #1 + { 0x10, 0x10 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetIndicesB+0x1F : jmp +0x0A + { 0x1F, 0xEB }, // (Offset,Value)-Pair #3 + { 0x20, 0x0A }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetIndicesB+0x58 : mov [esi+0x1C], ecx + { 0x58, 0x89 }, // (Offset,Value)-Pair #5 + { 0x59, 0x4E }, // (Offset,Value)-Pair #6 + { 0x5A, 0x1C }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetIndicesB+0x78 : mov [esi+0x038C], ebx + { 0x78, 0x89 }, // (Offset,Value)-Pair #8 + { 0x79, 0x9E }, // (Offset,Value)-Pair #9 + { 0x7A, 0x8C }, // (Offset,Value)-Pair #10 + { 0x7B, 0x03 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureB +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTextureB_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureB+0x0F : push edi + { 0x0F, 0x57 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetTextureB+0x21 : jz +0x1E + { 0x21, 0x74 }, // (Offset,Value)-Pair #2 + { 0x22, 0x1E }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTextureB+0x33 : test ecx, 0x78FFFF + { 0x33, 0xA9 }, // (Offset,Value)-Pair #4 + { 0x34, 0xFF }, // (Offset,Value)-Pair #5 + { 0x36, 0x78 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetTextureB+0x38 : mov [edi], ecx + { 0x38, 0x89 }, // (Offset,Value)-Pair #7 + { 0x39, 0x0F }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetTextureB+0xD9 : jz +0x4D + { 0xD9, 0x74 }, // (Offset,Value)-Pair #9 + { 0xDA, 0x4D }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureC +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTextureC_1_0_4928 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x56 }, // (Offset,Value)-Pair #1 + + { 0x21, 0x74 }, // (Offset,Value)-Pair #2 + { 0x22, 0x20 }, // (Offset,Value)-Pair #3 + + { 0x33, 0xF7 }, // (Offset,Value)-Pair #4 + { 0x34, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x36, 0xFF }, // (Offset,Value)-Pair #6 + + { 0x39, 0x89 }, // (Offset,Value)-Pair #7 + { 0x3A, 0x10 }, // (Offset,Value)-Pair #8 + + { 0x50, 0x75 }, // (Offset,Value)-Pair #9 + { 0x51, 0x47 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDisplayMode +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetDisplayMode_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetDisplayMode+0x01 : mov esi, ds:[*] + { 0x01, 0x8B }, // (Offset,Value)-Pair #1 + { 0x02, 0x35 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetDisplayMode+0x18 : shr ecx, 0x14 + { 0x18, 0xC1 }, // (Offset,Value)-Pair #3 + { 0x19, 0xE9 }, // (Offset,Value)-Pair #4 + { 0x1A, 0x14 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetDisplayMode+0x50 : shr eax, 0x0C + { 0x50, 0xC1 }, // (Offset,Value)-Pair #6 + { 0x51, 0xE8 }, // (Offset,Value)-Pair #7 + { 0x52, 0x0C }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetDisplayMode+0x6A : or edx, eax + { 0x6A, 0x0B }, // (Offset,Value)-Pair #9 + { 0x6B, 0xD0 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_GetDisplayMode+0x7F : jmp +0x1C + { 0x7F, 0xEB }, // (Offset,Value)-Pair #11 + { 0x80, 0x1C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_RunPushBuffer +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_RunPushBuffer_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_RunPushBuffer+0x3C : mov edx, [esi+30h] + { 0x3C, 0x8B }, // (Offset,Value)-Pair #1 + { 0x3D, 0x56 }, // (Offset,Value)-Pair #2 + { 0x3E, 0x30 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_RunPushBuffer+0xCA : mov edi, ebp + { 0xCA, 0x8B }, // (Offset,Value)-Pair #4 + { 0xCB, 0xFD }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_RunPushBuffer+0xDC : jmp +0x12 + { 0xDC, 0xEB }, // (Offset,Value)-Pair #6 + { 0xDD, 0x12 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_RunPushBuffer+0xED : lea edi, [eax+4] + { 0xED, 0x8D }, // (Offset,Value)-Pair #8 + { 0xEE, 0x78 }, // (Offset,Value)-Pair #9 + { 0xEF, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Begin +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_Begin_1_0_4627 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Begin+0x25 : mov dword ptr [eax], 0x417FC + { 0x25, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x26, 0x00 }, // (Offset,Value)-Pair #2 + { 0x27, 0xFC }, // (Offset,Value)-Pair #3 + { 0x28, 0x17 }, // (Offset,Value)-Pair #4 + { 0x29, 0x04 }, // (Offset,Value)-Pair #5 + { 0x2A, 0x00 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_Begin+0x19 : shl edx, 6 + { 0x19, 0xD1 }, // (Offset,Value)-Pair #7 + { 0x1A, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_Begin+0x33 : or dword ptr [esi+8], 0x800 + { 0x33, 0x81 }, // (Offset,Value)-Pair #9 + { 0x34, 0x4E }, // (Offset,Value)-Pair #10 + { 0x35, 0x08 }, // (Offset,Value)-Pair #11 + { 0x37, 0x08 }, // (Offset,Value)-Pair #12 + + // IDirect3DDevice8_Begin+0x3B : retn 0x08 + { 0x3B, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x3C, 0x04 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexData2f +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetVertexData2f_1_0_4627 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexData2f+0x20 : lea edx, ds:abs[ecx*8] + { 0x20, 0x8D }, // (Offset,Value)-Pair #1 + { 0x21, 0x14 }, // (Offset,Value)-Pair #2 + { 0x22, 0xCD }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexData2f+0x2B : mov [eax], edx; mov edx, [esp+0x10] + { 0x2B, 0x89 }, // (Offset,Value)-Pair #4 + { 0x2C, 0x10 }, // (Offset,Value)-Pair #5 + { 0x2D, 0x8B }, // (Offset,Value)-Pair #6 + { 0x2E, 0x54 }, // (Offset,Value)-Pair #7 + { 0x2F, 0x24 }, // (Offset,Value)-Pair #8 + { 0x30, 0x10 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexData2f+0x37 : add eax, 0x0C + { 0x37, 0x83 }, // (Offset,Value)-Pair #10 + { 0x38, 0xC0 }, // (Offset,Value)-Pair #11 + { 0x39, 0x0C }, // (Offset,Value)-Pair #12 + + // IDirect3DDevice8_SetVertexData2f+0x3D : retn 0x0C + { 0x3D, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x3E, 0x0C }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexData4f +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetVertexData4f_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexData4f+0x20 : cmp ecx, -1; jnz +0x07 + { 0x20, 0x83 }, // (Offset,Value)-Pair #1 + { 0x21, 0xF9 }, // (Offset,Value)-Pair #2 + { 0x22, 0xFF }, // (Offset,Value)-Pair #3 + { 0x23, 0x75 }, // (Offset,Value)-Pair #4 + { 0x24, 0x07 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetVertexData4f+0x2C : add ecx, 0x01A0 + { 0x2C, 0x81 }, // (Offset,Value)-Pair #6 + { 0x2D, 0xC1 }, // (Offset,Value)-Pair #7 + { 0x2E, 0xA0 }, // (Offset,Value)-Pair #8 + { 0x2F, 0x01 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexData4f+0x5F : retn 0x14 + { 0x5F, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x60, 0x14 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_End +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_End_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_End+0x1C : mov dword ptr [eax], 0x417FC + { 0x1C, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x1D, 0x00 }, // (Offset,Value)-Pair #2 + { 0x1E, 0xFC }, // (Offset,Value)-Pair #3 + { 0x1F, 0x17 }, // (Offset,Value)-Pair #4 + { 0x20, 0x04 }, // (Offset,Value)-Pair #5 + { 0x21, 0x00 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_End+0x31 : test ah, 0x10 + { 0x31, 0xF6 }, // (Offset,Value)-Pair #7 + { 0x32, 0xC4 }, // (Offset,Value)-Pair #8 + { 0x33, 0x10 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_End+0x34 : jz +0x07 + { 0x34, 0x74 }, // (Offset,Value)-Pair #10 + { 0x35, 0x07 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_End+0x45 : retn + { 0x45, 0xC3 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Clear +// ****************************************************************** +LOOVPA<9> IDirect3DDevice8_Clear_1_0_4627 = +{ + 1, // Large == 1 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Clear+0x0000 : sub esp, 38h + { 0x0000, 0x83 }, // (Offset,Value)-Pair #1 + { 0x0001, 0xEC }, // (Offset,Value)-Pair #2 + { 0x0002, 0x38 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_Clear+0x000B : mov ebx, [ebp+0x21B8] + { 0x000B, 0x8B }, // (Offset,Value)-Pair #4 + { 0x000C, 0x9D }, // (Offset,Value)-Pair #5 + { 0x000D, 0xB8 }, // (Offset,Value)-Pair #6 + { 0x000E, 0x21 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_Clear+0x0399 : retn 0x18 + { 0x0399, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x039A, 0x18 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_ClearB +// ****************************************************************** +LOOVPA<9> IDirect3DDevice8_ClearB_1_0_4627 = +{ + 1, // Large == 1 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Clear+0x0000 : sub esp, 38h + { 0x0000, 0x83 }, // (Offset,Value)-Pair #1 + { 0x0001, 0xEC }, // (Offset,Value)-Pair #2 + { 0x0002, 0x38 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_Clear+0x001C : mov ebx, [ebp+0x21B8] + { 0x001C, 0x8B }, // (Offset,Value)-Pair #4 + { 0x001D, 0xB5 }, // (Offset,Value)-Pair #5 + { 0x001E, 0xB8 }, // (Offset,Value)-Pair #6 + { 0x001F, 0x21 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_Clear+0x03C6 : retn 0x18 + { 0x03C6, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x03C7, 0x18 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Swap +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_Swap_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Swap+0x2A : mov ebx, 5 + { 0x2A, 0xBB }, // (Offset,Value)-Pair #1 + { 0x2B, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_Swap+0x37 : test bl, 3 + { 0x37, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x38, 0xC3 }, // (Offset,Value)-Pair #4 + { 0x39, 0x03 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_Swap+0x60 : inc dword ptr [esi+0x2C10] + { 0x60, 0xFF }, // (Offset,Value)-Pair #6 + { 0x61, 0x86 }, // (Offset,Value)-Pair #7 + { 0x62, 0x10 }, // (Offset,Value)-Pair #8 + { 0x63, 0x2C }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_Swap+0xD8 : retn 4 + { 0xD8, 0xC2 }, // (Offset,Value)-Pair #10 + { 0xD9, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateVertexBuffer2 +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_CreateVertexBuffer2_1_0_4627 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateVertexBuffer2+0x03 : push 0x40 + { 0x03, 0x6A }, // (Offset,Value)-Pair #1 + { 0x04, 0x40 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreateVertexBuffer2+0x10 : mov eax, [esp+8] + { 0x10, 0x8B }, // (Offset,Value)-Pair #3 + { 0x11, 0x44 }, // (Offset,Value)-Pair #4 + { 0x12, 0x24 }, // (Offset,Value)-Pair #5 + { 0x13, 0x08 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_CreateVertexBuffer2+0x41 : mov dword ptr [esi], 0x01000001 + { 0x41, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x42, 0x06 }, // (Offset,Value)-Pair #8 + { 0x43, 0x01 }, // (Offset,Value)-Pair #9 + { 0x44, 0x00 }, // (Offset,Value)-Pair #10 + { 0x46, 0x01 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_CreateVertexBuffer2+0x4A : retn 0x04 + { 0x4A, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x4B, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_UpdateOverlay +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_UpdateOverlay_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_UpdateOverlay+0x0F : mov [eax+0x2BA8], ecx + { 0x0F, 0x89 }, // (Offset,Value)-Pair #1 + { 0x10, 0x88 }, // (Offset,Value)-Pair #2 + { 0x11, 0xA8 }, // (Offset,Value)-Pair #3 + { 0x12, 0x2B }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_UpdateOverlay+0x8E : and eax, 0xFFFFFFFE + { 0x8E, 0x83 }, // (Offset,Value)-Pair #5 + { 0x8F, 0xE0 }, // (Offset,Value)-Pair #6 + { 0x90, 0xFE }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_UpdateOverlay+0xAC : mov [esi+0x8930], eax + { 0xAC, 0x89 }, // (Offset,Value)-Pair #8 + { 0xAD, 0x86 }, // (Offset,Value)-Pair #9 + { 0xAE, 0x30 }, // (Offset,Value)-Pair #10 + { 0xAF, 0x89 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetOverlayUpdateStatus +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetOverlayUpdateStatus_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_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, 0x2B }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_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, 0x25 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetOverlayUpdateStatus+0x16 : setnz dl + { 0x16, 0x0F }, // (Offset,Value)-Pair #9 + { 0x17, 0x95 }, // (Offset,Value)-Pair #10 + { 0x18, 0xC2 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_GetOverlayUpdateStatus+0x1C : retn + { 0x1C, 0xC3 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BlockUntilVerticalBlank +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_BlockUntilVerticalBlank_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_BlockUntilVerticalBlank+0x05 : push 0; push 0; push 1 + { 0x05, 0x6A }, // (Offset,Value)-Pair #1 + { 0x06, 0x00 }, // (Offset,Value)-Pair #2 + { 0x07, 0x6A }, // (Offset,Value)-Pair #3 + { 0x08, 0x00 }, // (Offset,Value)-Pair #4 + { 0x09, 0x6A }, // (Offset,Value)-Pair #5 + { 0x0A, 0x01 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x17 : add eax, 0x2554 + { 0x17, 0x05 }, // (Offset,Value)-Pair #7 + { 0x18, 0x54 }, // (Offset,Value)-Pair #8 + { 0x19, 0x25 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x1D : call [KrnlImport] + { 0x1D, 0xFF }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x23 : retn + { 0x23, 0xC3 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVerticalBlankCallback +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetVerticalBlankCallback_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVerticalBlankCallback+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x04 : mov ecx, [addr] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x0D }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x0A : mov [ecx+0x2550], eax + { 0x0A, 0x89 }, // (Offset,Value)-Pair #7 + { 0x0B, 0x81 }, // (Offset,Value)-Pair #8 + { 0x0C, 0x50 }, // (Offset,Value)-Pair #9 + { 0x0D, 0x25 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x10 : retn 0x04 + { 0x10, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x11, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetViewport +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_GetViewport_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetViewport+0x05 : push esi; push edi + { 0x05, 0x56 }, // (Offset,Value)-Pair #1 + { 0x06, 0x57 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetViewport+0x0B : lea esi, [eax+0x0A90] + { 0x0B, 0x8D }, // (Offset,Value)-Pair #3 + { 0x0C, 0xB0 }, // (Offset,Value)-Pair #4 + { 0x0D, 0x90 }, // (Offset,Value)-Pair #5 + { 0x0E, 0x0A }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetViewport+0x11 : mov ecx, 6 + { 0x11, 0xB9 }, // (Offset,Value)-Pair #7 + { 0x12, 0x06 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetViewport+0x1A : retn 0x04 + { 0x1A, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1B, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_TexCoordIndex +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x14 : shl eax, 0x07 + { 0x14, 0xC1 }, // (Offset,Value)-Pair #1 + { 0x15, 0xE0 }, // (Offset,Value)-Pair #2 + { 0x16, 0x07 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x26 : cmp eax, ecx + { 0x26, 0x3B }, // (Offset,Value)-Pair #4 + { 0x27, 0xC1 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x71 : mov ebp, 0x2400 + { 0x71, 0xBD }, // (Offset,Value)-Pair #6 + { 0x73, 0x24 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0xAA : shl ebx, 0x04 + { 0xAA, 0xC1 }, // (Offset,Value)-Pair #8 + { 0xAB, 0xE3 }, // (Offset,Value)-Pair #9 + { 0xAC, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_NormalizeNormalsB +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_NormalizeNormalsB_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_NormalizeNormalsB+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_NormalizeNormalsB+0x2E : or [addr], 0x200 + { 0x2E, 0x81 }, // (Offset,Value)-Pair #3 + { 0x2F, 0x0D }, // (Offset,Value)-Pair #4 + { 0x34, 0x00 }, // (Offset,Value)-Pair #5 + { 0x35, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_NormalizeNormalsB+0x3F : retn 0x04 + { 0x3F, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x40, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_EdgeAntiAliasB +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_EdgeAntiAliasB_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_EdgeAntiAliasB+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAliasB+0x0C : jb +0x0E + { 0x0C, 0x72 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x0E }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAliasB+0x1C : mov ecx, [esp+0x08] + { 0x1C, 0x8B }, // (Offset,Value)-Pair #5 + { 0x1D, 0x4C }, // (Offset,Value)-Pair #6 + { 0x1E, 0x24 }, // (Offset,Value)-Pair #7 + { 0x1F, 0x08 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAliasB+0x38 : retn 0x04 + { 0x38, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x39, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x0D : mov eax, [edi+0x21B4] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0E, 0x87 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xB4 }, // (Offset,Value)-Pair #3 + { 0x10, 0x21 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x56 : shl esi, 0x05 + { 0x56, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x57, 0xE6 }, // (Offset,Value)-Pair #6 + { 0x58, 0x05 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0x74 : retn 0x04 + { 0x74, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x75, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ZEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_ZEnable_1_0_4627 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_ZEnable+0x0C : jb +0x05 + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x1B : mov ecx, [esi+0x21B8h] + { 0x1B, 0x8B }, // (Offset,Value)-Pair #3 + { 0x1C, 0x8E }, // (Offset,Value)-Pair #4 + { 0x1D, 0xB8 }, // (Offset,Value)-Pair #5 + { 0x1E, 0x21 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x2E : mov dword ptr [eax], 0x4030 + { 0x2E, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x2F, 0x00 }, // (Offset,Value)-Pair #8 + { 0x30, 0x0C }, // (Offset,Value)-Pair #9 + { 0x31, 0x03 }, // (Offset,Value)-Pair #10 + { 0x32, 0x04 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_ZEnable+0x8C : retn 0x04 + { 0x8C, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x8D, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ZEnableB +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_ZEnableB_1_0_4627 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_ZEnableB+0x0C : jb +0x0E + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x0E }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_ZEnableB+0x1B : mov ecx, [esi+0x21B8h] + { 0x24, 0x8B }, // (Offset,Value)-Pair #3 + { 0x25, 0x8E }, // (Offset,Value)-Pair #4 + { 0x26, 0xB8 }, // (Offset,Value)-Pair #5 + { 0x27, 0x21 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_ZEnableB+0x37 : mov dword ptr [eax], 0x4030 + { 0x37, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x38, 0x00 }, // (Offset,Value)-Pair #8 + { 0x39, 0x0C }, // (Offset,Value)-Pair #9 + { 0x3A, 0x03 }, // (Offset,Value)-Pair #10 + { 0x3B, 0x04 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_ZEnableB+0x99 : retn 0x04 + { 0x99, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x9A, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilEnableB +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_StencilEnableB_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + { + // IDirect3DDevice8_SetRenderState_StencilEnableB+0x0C : jb +0x0E + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x0E }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_StencilEnableB+0x35 : jz +0x19 + { 0x35, 0x74 }, // (Offset,Value)-Pair #3 + { 0x36, 0x19 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_StencilEnableB+0x56 : mov dword ptr [eax], 0x00041D84 + { 0x56, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x57, 0x00 }, // (Offset,Value)-Pair #6 + { 0x58, 0x84 }, // (Offset,Value)-Pair #7 + { 0x59, 0x1D }, // (Offset,Value)-Pair #8 + { 0x5A, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_StencilEnableB+0x8A : retn 0x04 + { 0x8A, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x8B, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x04 : push esi + { 0x04, 0x56 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x13 : call [abs] + { 0x13, 0xE8 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x27 : shl edi, 0x10 + { 0x27, 0xC1 }, // (Offset,Value)-Pair #3 + { 0x28, 0xE7 }, // (Offset,Value)-Pair #4 + { 0x29, 0x10 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x2E : jns +0x0C + { 0x2E, 0x79 }, // (Offset,Value)-Pair #6 + { 0x2F, 0x0C }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x39 : or edi, 0x01 + { 0x39, 0x83 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xCF }, // (Offset,Value)-Pair #9 + { 0x3B, 0x01 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias+0x6F : retn 0x04 + { 0x6F, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x70, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleAntiAliasB +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_MultiSampleAntiAliasB_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAliasB+0x04 : push esi + { 0x04, 0x56 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAliasB+0x11 : call [abs] + { 0x11, 0xE8 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAliasB+0x25 : shl edi, 0x10 + { 0x25, 0xC1 }, // (Offset,Value)-Pair #3 + { 0x26, 0xE7 }, // (Offset,Value)-Pair #4 + { 0x27, 0x10 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAliasB+0x2C : jns +0x0C + { 0x2C, 0x79 }, // (Offset,Value)-Pair #6 + { 0x2D, 0x0C }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAliasB+0x37 : or edi, 0x01 + { 0x37, 0x83 }, // (Offset,Value)-Pair #8 + { 0x38, 0xCF }, // (Offset,Value)-Pair #9 + { 0x39, 0x01 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_MultiSampleAntiAliasB+0x7B : retn 0x04 + { 0x7B, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x7C, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVerticesUP +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_DrawVerticesUP_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawVerticesUP+0x03 : sub esp, 0x14 + { 0x03, 0x83 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x14 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_DrawVerticesUP+0x2F : mov edx, [edi+0x804] + { 0x2F, 0x8B }, // (Offset,Value)-Pair #4 + { 0x30, 0x97 }, // (Offset,Value)-Pair #5 + { 0x31, 0x04 }, // (Offset,Value)-Pair #6 + { 0x32, 0x08 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_DrawVerticesUP+0xC2 : cmp esi, 0x80 + { 0xC2, 0x81 }, // (Offset,Value)-Pair #8 + { 0xC3, 0xFE }, // (Offset,Value)-Pair #9 + { 0xC4, 0x80 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVerticesUPB +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_DrawVerticesUPB_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawVerticesUPB+0x03 : sub esp, 0x14 + { 0x03, 0x83 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x14 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_DrawVerticesUPB+0x3C : mov edx, [esi+0x804] + { 0x3C, 0x8B }, // (Offset,Value)-Pair #4 + { 0x3D, 0x96 }, // (Offset,Value)-Pair #5 + { 0x3E, 0x04 }, // (Offset,Value)-Pair #6 + { 0x3F, 0x08 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_DrawVerticesUPB+0xF9 : cmp edi, 0x80 + { 0xF9, 0x81 }, // (Offset,Value)-Pair #8 + { 0xFA, 0xFF }, // (Offset,Value)-Pair #9 + { 0xFB, 0x80 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVertices +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_DrawIndexedVertices_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawIndexedVertices+0x0E : mov eax, [esi+0x1C] + { 0x0E, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0F, 0x46 }, // (Offset,Value)-Pair #2 + { 0x10, 0x1C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_DrawIndexedVertices+0x26 : push 0x0209 + { 0x26, 0x68 }, // (Offset,Value)-Pair #4 + { 0x27, 0x09 }, // (Offset,Value)-Pair #5 + { 0x28, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_DrawIndexedVertices+0x66 : dec eax + { 0x66, 0x48 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_DrawIndexedVertices+0xFB : prefetchnta byte ptr [esi+0x3C] + { 0xFB, 0x0F }, // (Offset,Value)-Pair #8 + { 0xFC, 0x18 }, // (Offset,Value)-Pair #9 + { 0xFD, 0x46 }, // (Offset,Value)-Pair #10 + { 0xFE, 0x3C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetMaterial +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetMaterial_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetMaterial+0x0C : add edi, 0x0AB0 + { 0x0C, 0x81 }, // (Offset,Value)-Pair #1 + { 0x0D, 0xC7 }, // (Offset,Value)-Pair #2 + { 0x0E, 0xB0 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x0A }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetMaterial+0x12 : mov ecx, 0x11 + { 0x12, 0xB9 }, // (Offset,Value)-Pair #5 + { 0x13, 0x11 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetMaterial+0x1F : or ecx, 0x1000 + { 0x1F, 0x81 }, // (Offset,Value)-Pair #7 + { 0x20, 0xC9 }, // (Offset,Value)-Pair #8 + { 0x21, 0x00 }, // (Offset,Value)-Pair #9 + { 0x22, 0x10 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetMaterial+0x2D : retn 0x04 + { 0x2D, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x2E, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DVertexBuffer8_Lock2 +// ****************************************************************** +SOOVPA<11> IDirect3DVertexBuffer8_Lock2_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DVertexBuffer8_Lock2+0x01 : mov bl, [esp+0x0C] + { 0x01, 0x8A }, // (Offset,Value)-Pair #1 + { 0x02, 0x5C }, // (Offset,Value)-Pair #2 + { 0x03, 0x24 }, // (Offset,Value)-Pair #3 + { 0x04, 0x0C }, // (Offset,Value)-Pair #4 + + // IDirect3DVertexBuffer8_Lock2+0x09 : jnz +0x24 + { 0x09, 0x75 }, // (Offset,Value)-Pair #5 + { 0x0A, 0x24 }, // (Offset,Value)-Pair #6 + + // IDirect3DVertexBuffer8_Lock2+0x2F : test bl, 0xA0 + { 0x2F, 0xF6 }, // (Offset,Value)-Pair #7 + { 0x30, 0xC3 }, // (Offset,Value)-Pair #8 + { 0x31, 0xA0 }, // (Offset,Value)-Pair #9 + + // IDirect3DVertexBuffer8_Lock2+0x48 : retn 0x08 + { 0x48, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x49, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DVertexBuffer8_Lock2B +// ****************************************************************** +SOOVPA<11> IDirect3DVertexBuffer8_Lock2B_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DVertexBuffer8_Lock2B+0x01 : mov bl, [esp+0x0C] + { 0x01, 0x8A }, // (Offset,Value)-Pair #1 + { 0x02, 0x5C }, // (Offset,Value)-Pair #2 + { 0x03, 0x24 }, // (Offset,Value)-Pair #3 + { 0x04, 0x0C }, // (Offset,Value)-Pair #4 + + // IDirect3DVertexBuffer8_Lock2B+0x09 : jnz +0x24 + { 0x09, 0x75 }, // (Offset,Value)-Pair #5 + { 0x0A, 0x2D }, // (Offset,Value)-Pair #6 + + // IDirect3DVertexBuffer8_Lock2B+0x2F : test bl, 0xA0 + { 0x38, 0xF6 }, // (Offset,Value)-Pair #7 + { 0x39, 0xC3 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xA0 }, // (Offset,Value)-Pair #9 + + // IDirect3DVertexBuffer8_Lock2B+0x48 : retn 0x08 + { 0x6B, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x6C, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DResource8_ReleaseB +// ****************************************************************** +SOOVPA<11> IDirect3DResource8_ReleaseB_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DResource8_ReleaseB+0x09 : and ecx, 0xFFFF + { 0x09, 0x81 }, // (Offset,Value)-Pair #1 + { 0x0A, 0xE1 }, // (Offset,Value)-Pair #2 + { 0x0B, 0xFF }, // (Offset,Value)-Pair #3 + { 0x0C, 0xFF }, // (Offset,Value)-Pair #4 + + // IDirect3DResource8_ReleaseB+0x14 : and eax, 0x00070000 + { 0x14, 0x25 }, // (Offset,Value)-Pair #5 + { 0x17, 0x07 }, // (Offset,Value)-Pair #6 + + // IDirect3DResource8_ReleaseB+0x19 : cmp eax, 0x00050000 + { 0x19, 0x3D }, // (Offset,Value)-Pair #7 + { 0x1C, 0x05 }, // (Offset,Value)-Pair #8 + + // IDirect3DResource8_ReleaseB+0x3D : pop edi + { 0x3D, 0x5F }, // (Offset,Value)-Pair #9 + + // IDirect3DResource8_ReleaseB+0x4A : retn 0x04 + { 0x4A, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x4B, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DResource8_GetType +// ****************************************************************** +SOOVPA<7> IDirect3DResource8_GetType_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x10, 0x77 }, + { 0x22, 0x83 }, + { 0x34, 0x00 }, + { 0x46, 0x74 }, + { 0x58, 0x00 }, + { 0x6A, 0x74 }, + { 0x7C, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DVolumeTexture8_LockBox +// ****************************************************************** +SOOVPA<15> IDirect3DVolumeTexture8_LockBox_1_0_4627 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DVolumeTexture8_LockBox+0x00 : mov eax, [esp+0x14] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x14 }, // (Offset,Value)-Pair #4 + + // IDirect3DVolumeTexture8_LockBox+0x04 : mov ecx, [esp+0x10] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x4C }, // (Offset,Value)-Pair #6 + { 0x06, 0x24 }, // (Offset,Value)-Pair #7 + { 0x07, 0x0C }, // (Offset,Value)-Pair #8 + + // IDirect3DVolumeTexture8_LockBox+0x0C : push eax + { 0x0C, 0x50 }, // (Offset,Value)-Pair #9 + + // IDirect3DVolumeTexture8_LockBox+0x11 : push ecx; push edx; push eax + { 0x11, 0x51 }, // (Offset,Value)-Pair #10 + { 0x12, 0x52 }, // (Offset,Value)-Pair #11 + { 0x13, 0x50 }, // (Offset,Value)-Pair #12 + + // IDirect3DVolumeTexture8_LockBox+0x18 : call [addr] + { 0x18, 0xE8 }, // (Offset,Value)-Pair #13 + + // IDirect3DVolumeTexture8_LockBox+0x1D : retn 0x14 + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x1E, 0x14 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * IDirect3DSurface8_LockRectB +// ****************************************************************** +SOOVPA<17> IDirect3DSurface8_LockRectB_1_0_4627 = +{ + 0, // Large == 0 + 17, // Count == 17 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DSurface8_LockRectB+0x00 : mov eax, [esp+0x10] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x10 }, // (Offset,Value)-Pair #4 + + // IDirect3DSurface8_LockRectB+0x04 : mov ecx, [esp+0x04] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x4C }, // (Offset,Value)-Pair #6 + { 0x06, 0x24 }, // (Offset,Value)-Pair #7 + { 0x07, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DSurface8_LockRectB+0x08 : push esi; mov esi, [esp+0x0C]; push eax + { 0x08, 0x56 }, // (Offset,Value)-Pair #9 + { 0x09, 0x8B }, // (Offset,Value)-Pair #10 + { 0x0A, 0x74 }, // (Offset,Value)-Pair #11 + { 0x0B, 0x24 }, // (Offset,Value)-Pair #12 + { 0x0C, 0x0C }, // (Offset,Value)-Pair #13 + { 0x0D, 0x50 }, // (Offset,Value)-Pair #14 + + // IDirect3DSurface8_LockRectB+0x17 : call [addr] + { 0x17, 0xE8 }, // (Offset,Value)-Pair #15 + + // IDirect3DSurface8_LockRectB+0x1D : retn 0x10 + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #16 + { 0x1E, 0x10 }, // (Offset,Value)-Pair #17 + } +}; + +// ****************************************************************** +// * Get2DSurfaceDesc +// ****************************************************************** +SOOVPA<10> Get2DSurfaceDesc_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // 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+0x21C0] + { 0x52, 0x8B }, // (Offset,Value)-Pair #5 + { 0x53, 0x90 }, // (Offset,Value)-Pair #6 + { 0x54, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x55, 0x21 }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDesc+0xAE : retn 0x0C + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xAF, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * Get2DSurfaceDescB +// ****************************************************************** +SOOVPA<9> Get2DSurfaceDescB_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_GET2DSURFACEDESCB, // XRef Is Saved + 0, // XRef Not Used + + { + // Get2DSurfaceDescB+0x1D : movzx ecx, byte ptr [edi+0x0D] + { 0x1D, 0x0F }, // (Offset,Value)-Pair #1 + { 0x1E, 0xB6 }, // (Offset,Value)-Pair #2 + { 0x1F, 0x4F }, // (Offset,Value)-Pair #3 + { 0x20, 0x0D }, // (Offset,Value)-Pair #4 + + // Get2DSurfaceDescB+0x44 : mov edx, [eax+0x21C0] + { 0x44, 0x8B }, // (Offset,Value)-Pair #5 + { 0x45, 0x90 }, // (Offset,Value)-Pair #6 + { 0x46, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x47, 0x21 }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDescB+0x9E : retn + { 0x9E, 0xC3 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * Get2DSurfaceDescC +// ****************************************************************** +SOOVPA<10> Get2DSurfaceDescC_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // Get2DSurfaceDescC+0x10 : call [Get2DSurfaceDescB] + { 0x10, XREF_GET2DSURFACEDESCB }, // (Offset,Value)-Pair #1 + + // Get2DSurfaceDescC+0x00 : push ebx; push esi; push edi + { 0x00, 0x53 }, // (Offset,Value)-Pair #2 + { 0x05, 0x56 }, // (Offset,Value)-Pair #3 + { 0x0A, 0x57 }, // (Offset,Value)-Pair #4 + + // Get2DSurfaceDescC+0x01 : mov ebx, [esp+0x0C] + { 0x01, 0x8B }, // (Offset,Value)-Pair #5 + { 0x02, 0x5C }, // (Offset,Value)-Pair #6 + { 0x03, 0x24 }, // (Offset,Value)-Pair #7 + { 0x04, 0x0C }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDescC+0x17 : retn 0x0C + { 0x17, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x18, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * Get2DSurfaceDescD +// ****************************************************************** +SOOVPA<10> Get2DSurfaceDescD_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // Get2DSurfaceDescD+0x0E : call [Get2DSurfaceDescB] + { 0x0E, XREF_GET2DSURFACEDESCB }, // (Offset,Value)-Pair #1 + + // Get2DSurfaceDescD+0x00 : push ebx; push esi; push edi + { 0x00, 0x53 }, // (Offset,Value)-Pair #2 + { 0x01, 0x56 }, // (Offset,Value)-Pair #3 + { 0x06, 0x57 }, // (Offset,Value)-Pair #4 + + // Get2DSurfaceDescD+0x02 : mov esi, [esp+0x10] + { 0x02, 0x8B }, // (Offset,Value)-Pair #5 + { 0x03, 0x74 }, // (Offset,Value)-Pair #6 + { 0x04, 0x24 }, // (Offset,Value)-Pair #7 + { 0x05, 0x10 }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDescD+0x15 : retn 0x08 + { 0x15, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x16, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DTexture8_GetSurfaceLevel2 +// ****************************************************************** +SOOVPA<14> IDirect3DTexture8_GetSurfaceLevel2_1_0_4627 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DTexture8_GetSurfaceLevel2+0x00 : sub esp, 0x0C + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x0C }, // (Offset,Value)-Pair #3 + + // IDirect3DTexture8_GetSurfaceLevel2+0x04 : mov esi, [esp+0x14] + { 0x04, 0x8B }, // (Offset,Value)-Pair #4 + { 0x07, 0x14 }, // (Offset,Value)-Pair #5 + + // IDirect3DTexture8_GetSurfaceLevel2+0x08 : lea eax, [esp+0x14] + { 0x08, 0x8D }, // (Offset,Value)-Pair #6 + { 0x0B, 0x14 }, // (Offset,Value)-Pair #7 + + // IDirect3DTexture8_GetSurfaceLevel2+0x17 : mov edx, [esp+0x24] + { 0x17, 0x8B }, // (Offset,Value)-Pair #8 + { 0x1A, 0x24 }, // (Offset,Value)-Pair #9 + + // IDirect3DTexture8_GetSurfaceLevel2+0x1B : lea eax, [esp+0x18] + { 0x1B, 0x8D }, // (Offset,Value)-Pair #10 + { 0x1E, 0x18 }, // (Offset,Value)-Pair #11 + + // IDirect3DTexture8_GetSurfaceLevel2+0x29 : call [abs] + { 0x29, 0xE8 }, // (Offset,Value)-Pair #12 + + // IDirect3DTexture8_GetSurfaceLevel2+0x47 : retn 0x08 + { 0x47, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x48, 0x08 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirect3DTexture8_GetSurfaceLevel2B +// ****************************************************************** +SOOVPA<14> IDirect3DTexture8_GetSurfaceLevel2B_1_0_4627 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DTexture8_GetSurfaceLevel2B+0x00 : sub esp, 0x0C + { 0x00, 0x83 }, // (Offset,Value)-Pair #1 + { 0x01, 0xEC }, // (Offset,Value)-Pair #2 + { 0x02, 0x0C }, // (Offset,Value)-Pair #3 + + // IDirect3DTexture8_GetSurfaceLevel2B+0x04 : mov esi, [esp+0x14] + { 0x04, 0x8B }, // (Offset,Value)-Pair #4 + { 0x07, 0x14 }, // (Offset,Value)-Pair #5 + + // IDirect3DTexture8_GetSurfaceLevel2B+0x08 : lea eax, [esp+0x14] + { 0x08, 0x8D }, // (Offset,Value)-Pair #6 + { 0x0B, 0x18 }, // (Offset,Value)-Pair #7 + + // IDirect3DTexture8_GetSurfaceLevel2B+0x17 : mov edx, [esp+0x24] + { 0x17, 0x8B }, // (Offset,Value)-Pair #8 + { 0x1A, 0x24 }, // (Offset,Value)-Pair #9 + + // IDirect3DTexture8_GetSurfaceLevel2B+0x1B : lea eax, [esp+0x18] + { 0x1B, 0x8D }, // (Offset,Value)-Pair #10 + { 0x1E, 0x18 }, // (Offset,Value)-Pair #11 + + // IDirect3DTexture8_GetSurfaceLevel2B+0x29 : call [abs] + { 0x29, 0xE8 }, // (Offset,Value)-Pair #12 + + // IDirect3DTexture8_GetSurfaceLevel2B+0x47 : retn 0x08 + { 0x45, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x46, 0x08 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * D3DDevice_GetViewportOffsetAndScale@8 +// ****************************************************************** +SOOVPA<8> X_D3DDevice_GetViewportOffsetAndScale_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0xD8 }, + { 0x40, 0xD8 }, + { 0x5E, 0xC9 }, + { 0x7E, 0x05 }, + { 0x9E, 0x0A }, + { 0xBE, 0x00 }, + { 0xDE, 0x14 }, + { 0xFE, 0xE0 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SelectVertexShaderDirect +// ****************************************************************** +SOOVPA<7> X_D3DDevice_SelectVertexShaderDirect_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x85 }, + { 0x0C, 0x00 }, + { 0x14, 0xF3 }, + { 0x1D, 0x83 }, + { 0x21, 0x4C }, + { 0x29, 0x5E }, + { 0x2F, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetShaderConstantMode +// ****************************************************************** +SOOVPA<7> X_D3DDevice_GetShaderConstantMode_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x8B }, + { 0x06, 0x88 }, + { 0x07, 0xD8 }, + { 0x0A, 0x00 }, + { 0x0D, 0x24 }, + { 0x10, 0x0A }, + { 0x13, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetVertexShader +// ****************************************************************** +SOOVPA<7> X_D3DDevice_GetVertexShader_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x8B }, + { 0x06, 0x88 }, + { 0x07, 0x84 }, + { 0x0A, 0x00 }, + { 0x0D, 0x24 }, + { 0x10, 0x0A }, + { 0x13, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetVertexShaderConstant +// ****************************************************************** +SOOVPA<7> X_D3DDevice_GetVertexShaderConstant_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x15 }, + { 0x0C, 0x24 }, + { 0x13, 0xE0 }, + { 0x1A, 0x8D }, + { 0x21, 0x8B }, + { 0x28, 0x8B }, + { 0x2F, 0x5F }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexShaderInputDirect +// ****************************************************************** +SOOVPA<7> X_D3DDevice_SetVertexShaderInputDirect_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x85 }, + { 0x0C, 0x00 }, + { 0x14, 0xF3 }, + { 0x1D, 0x83 }, + { 0x21, 0x54 }, + { 0x29, 0x5E }, + { 0x2F, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetVertexShaderInput +// ****************************************************************** +SOOVPA<7> X_D3DDevice_GetVertexShaderInput_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x74 }, + { 0x18, 0x04 }, + { 0x25, 0x57 }, + { 0x32, 0x00 }, + { 0x3F, 0x00 }, + { 0x4C, 0x03 }, + { 0x59, 0xD0 }, + } +}; + +// ****************************************************************** +// * D3DDevice_RunVertexStateShader +// ****************************************************************** +SOOVPA<7> X_D3DDevice_RunVertexStateShader_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x3B }, + { 0x14, 0x4C }, + { 0x1F, 0xC0 }, + { 0x2A, 0x40 }, + { 0x35, 0xF4 }, + { 0x40, 0xC7 }, + { 0x4B, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_EndPush +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_EndPush_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 10 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x06, XREF_D3DDEVICE }, // 1 + + { 0x00, 0x8B }, // 2 + { 0x01, 0x44 }, // 3 + { 0x02, 0x24 }, // 4 + { 0x03, 0x04 }, // 5 + { 0x04, 0x8B }, // 6 + { 0x05, 0x0D }, // 7 + { 0x0A, 0x89 }, // 8 + { 0x0B, 0x01 }, // 9 + { 0x0C, 0xC2 }, // 10 + { 0x0D, 0x04 }, // 11 + { 0x0E, 0x00 }, // 12 + } +}; + +// ****************************************************************** +// * D3DDevice_LoadVertexShader +// ****************************************************************** +SOOVPA<7> X_D3DDevice_LoadVertexShader_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x08 }, + { 0x14, 0x75 }, + { 0x21, 0x8B }, + { 0x2A, 0xE8 }, + { 0x35, 0x9C }, + { 0x40, 0x14 }, + { 0x4B, 0x8D }, + } +}; + +// ****************************************************************** +// * D3DDevice_LoadVertexShaderProgram +// ****************************************************************** +SOOVPA<7> X_D3DDevice_LoadVertexShaderProgram_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x2D }, + { 0x18, 0x10 }, + { 0x25, 0xE0 }, + { 0x32, 0x5F }, + { 0x3F, 0x8B }, + { 0x4C, 0x00 }, + { 0x59, 0xE8 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SelectVertexShader +// ****************************************************************** +SOOVPA<8> X_D3DDevice_SelectVertexShader_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0E, 0x49 }, + { 0x1E, 0x00 }, + { 0x2E, 0x72 }, + { 0x3E, 0x1E }, + { 0x4E, 0x8B }, + { 0x5E, 0x05 }, + { 0x6E, 0x89 }, + { 0x7E, 0x08 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetVertexShaderType@8 +// ****************************************************************** +SOOVPA<7> X_D3DDevice_GetVertexShaderType_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x8B }, + { 0x0A, 0x07 }, + { 0x10, 0xEB }, + { 0x16, 0x00 }, + { 0x1C, 0x40 }, + { 0x22, 0xC9 }, + { 0x28, 0x08 }, + } +}; + + +// ****************************************************************** +// * D3DDevice_GetVertexShaderDeclaration +// ****************************************************************** +SOOVPA<8> X_D3DDevice_GetVertexShaderDeclaration_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0xC2 }, + { 0x3E, 0x00 }, + { 0x5E, 0x00 }, + { 0x7E, 0x02 }, + { 0x9E, 0x24 }, + { 0xBE, 0x2B }, + { 0xDE, 0x9A }, + { 0xFE, 0x10 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetVertexShaderFunction +// ****************************************************************** +SOOVPA<7> X_D3DDevice_GetVertexShaderFunction_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x16, 0xC0 }, + { 0x2E, 0x01 }, + { 0x46, 0x10 }, + { 0x5E, 0x07 }, + { 0x76, 0xC7 }, + { 0x8E, 0x00 }, + { 0xA6, 0xF8 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexShaderInput +// ****************************************************************** +SOOVPA<8> X_D3DDevice_SetVertexShaderInput_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x83 }, + { 0x3E, 0x10 }, + { 0x5E, 0x00 }, + { 0x7E, 0x24 }, + { 0x9E, 0x89 }, + { 0xBE, 0x81 }, + { 0xDE, 0xC6 }, + { 0xFE, 0x89 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetStreamSource2 (Maybe same in older versions) +// ****************************************************************** +SOOVPA<7> X_D3DDevice_GetStreamSource2_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0x34 }, + { 0x12, 0x85 }, + { 0x16, 0x57 }, + { 0x22, 0x8B }, + { 0x26, 0x89 }, + { 0x2E, 0x00 }, + { 0x36, 0x89 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderB +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetVertexShaderB_1_0_4627 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShaderB+0x06 : test bl, 1 + { 0x06, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC3 }, // (Offset,Value)-Pair #2 + { 0x08, 0x01 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderB+0x11 : mov eax, [esi+0x0380] + { 0x11, 0x8B }, // (Offset,Value)-Pair #4 + { 0x12, 0x86 }, // (Offset,Value)-Pair #5 + { 0x13, 0x80 }, // (Offset,Value)-Pair #6 + { 0x14, 0x03 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetVertexShaderB+0x95 : retn 0x04 + { 0x95, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x96, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexShaderB+0xC2 : mov dword ptr [eax], 0x4194C + { 0xC2, 0xC7 }, // (Offset,Value)-Pair #10 + { 0xC3, 0x00 }, // (Offset,Value)-Pair #11 + { 0xC4, 0x4C }, // (Offset,Value)-Pair #12 + { 0xC5, 0x19 }, // (Offset,Value)-Pair #13 + { 0xC6, 0x04 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * D3DDevice_Release +// ****************************************************************** +SOOVPA<8> X_D3DDevice_Release_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0C, 0x00 }, + { 0x13, 0xCF }, + { 0x1A, 0x0C }, + { 0x21, 0x05 }, + { 0x28, 0x00 }, + { 0x2F, 0x89 }, + { 0x36, 0xC3 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_LineWidth +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_LineWidth_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_LineWidth+0x15 : fmul dword ptr [esi+0xXXXX] + { 0x15, 0xD8 }, // (Offset,Value)-Pair #1 + { 0x16, 0x8E }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x32 : cmp edi, 0x1FF + { 0x32, 0x81 }, // (Offset,Value)-Pair #5 + { 0x33, 0xFF }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x3A : mov edi, 0x1FF + { 0x3A, 0xBF }, // (Offset,Value)-Pair #7 + { 0x3B, 0xFF }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x62 : retn 0x04 + { 0x62, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x63, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetBackBufferScale +// ****************************************************************** +SOOVPA<6> IDirect3DDevice8_SetBackBufferScale_1_0_4627 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x24 }, + { 0x3E, 0x06 }, +// { 0x62, 0xEC }, + { 0x7E, 0x8B }, + { 0x9E, 0xBF }, + { 0xBE, 0x89 }, + { 0xDE, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Reset +// ****************************************************************** +SOOVPA<18> IDirect3DDevice8_Reset_1_0_4627 = +{ + 0, // Large == 0 + 18, // Count == 18 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x8B }, + { 0x01, 0x81 }, + { 0x02, 0xBC }, + { 0x03, 0x01 }, + { 0x04, 0x00 }, + { 0x05, 0x00 }, + { 0x06, 0x83 }, + { 0x07, 0xE0 }, + { 0x08, 0x01 }, + { 0x09, 0x83 }, + { 0x0A, 0xC0 }, + { 0x0B, 0x1F }, + { 0x0C, 0x8D }, + { 0x0D, 0x04 }, + { 0x0E, 0x40 }, + { 0x0F, 0x8B }, + { 0x10, 0x04 }, + { 0x11, 0x81 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShaderProgram +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetPixelShaderProgram_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x8B }, + { 0x01, 0x54 }, + { 0x02, 0x24 }, + { 0x03, 0x04 }, + { 0x04, 0x85 }, + { 0x05, 0xD2 }, + { 0x29, 0x89 }, + { 0x2A, 0x4C }, + { 0x2B, 0x24 }, + { 0x2C, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDisplayFieldStatus +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_GetDisplayFieldStatus_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, + { 0x0C, 0x4C }, + { 0x0D, 0x24 }, + { 0x0E, 0x04 }, + { 0x1E, 0x56 }, + { 0x25, 0x33 }, + { 0x26, 0xD2 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateStateBlock +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_CreateStateBlock_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0C, 0x57 }, + { 0x1C, 0xF3 }, + { 0x1D, 0xAB }, + { 0x41, 0x81 }, + { 0x42, 0xC1 }, + { 0x43, 0x90 }, + { 0x44, 0x00 }, + { 0x45, 0x00 }, + { 0x46, 0x00 }, + { 0x8B, 0x33 }, + { 0x8C, 0xC0 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_InsertCallback +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_InsertCallback_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0D, 0x0E }, + { 0x1C, 0x8B }, + { 0x2B, 0x48 }, + { 0x3A, 0x0C }, + { 0x49, 0x89 }, + { 0x58, 0x10 }, + { 0x67, 0x07 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawRectPatch +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_DrawRectPatch_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x6C }, + { 0x3E, 0x3C }, + { 0x5E, 0x54 }, + { 0x80, 0x89 }, + { 0x9E, 0xF0 }, + { 0xBE, 0x00 }, + { 0xDE, 0xD8 }, + { 0xFE, 0xD9 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetProjectionViewportMatrix +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_GetProjectionViewportMatrix_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x35 }, + { 0x07, 0x57 }, + { 0x0A, 0x24 }, + { 0x0E, 0x30 }, + { 0x12, 0xB9 }, + { 0x16, 0x00 }, + { 0x1A, 0x5E }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShader +// ****************************************************************** +/* blueshogun96 8/7/08 + for MGS2 :)*/ +SOOVPA<10> IDirect3DDevice8_SetPixelShader_1_0_4721 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPixelShader+0x26 : or ecx, 0x4800 + { 0x26, 0x81 }, // (Offset,Value)-Pair #1 + { 0x27, 0xC9 }, // (Offset,Value)-Pair #2 + { 0x28, 0x00 }, // (Offset,Value)-Pair #3 + { 0x29, 0x48 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetPixelShader+0x3E : or eax, 0x2000 + { 0x3E, 0x0D }, // (Offset,Value)-Pair #5 + { 0x40, 0x20 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetPixelShader+0x7D : retn 0x04 + { 0x7D, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x7E, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetPixelShader+0xDE : rep movsd + { 0xF4, 0xF3 }, // (Offset,Value)-Pair #9 + { 0xF5, 0xA5 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * D3DDevice_SetScissors@12 +// ****************************************************************** +SOOVPA<8> D3DDevice_SetScissors_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x57 }, + { 0x3E, 0x44 }, + { 0x5E, 0x5C }, + { 0x7E, 0x24 }, + { 0x9E, 0xBE }, + { 0xBE, 0x04 }, + { 0xDE, 0x24 }, + { 0xFE, 0x4C }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetPalette@8 +// ****************************************************************** +SOOVPA<7> D3DDevice_SetPalette_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x10, 0x48 }, + { 0x22, 0x0B }, + { 0x34, 0x00 }, + { 0x46, 0x9C }, + { 0x58, 0xC5 }, + { 0x6E, 0x8B }, + { 0x7C, 0x89 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleMask +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderState_MultiSampleMask_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0xA3 }, + { 0x12, 0x56 }, + { 0x1C, 0x8B }, + { 0x2A, 0x85 }, + { 0x30, 0x01 }, + { 0x3D, 0xC7 }, + { 0x44, 0x78 }, + { 0x4E, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_LogicOp +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_LogicOp_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x3B }, + { 0x14, 0x4C }, + { 0x1F, 0x04 }, + { 0x2A, 0x0D }, + { 0x35, 0xBC }, + { 0x40, 0x89 }, + { 0x4E, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_InsertFence +// ****************************************************************** +SOOVPA<5> D3DDevice_InsertFence_1_0_4627 = +{ + 0, // Large == 0 + 5, // Count == 5 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x03, XREF_D3D_SETFENCE }, + + { 0x00, 0x6A }, + { 0x01, 0x00 }, + { 0x02, 0xE8 }, + { 0x07, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3D::CDevice::KickOff +// ****************************************************************** +SOOVPA<13> D3D_CDevice_KickOff_1_0_4627 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + 0, // Xref Is Used + + { + // D3D::CDevice::KickOff+0x0B : mov edx, [ecx+0x35C] + { 0x0B, 0x8B }, + { 0x0C, 0x91 }, + { 0x0D, 0x5C }, + { 0x0E, 0x03 }, + { 0x0F, 0x00 }, + { 0x10, 0x00 }, + + // D3D::CDevice::KickOff+0x1F : test ch, 0x20 + { 0x1F, 0xF6 }, + { 0x20, 0xC5 }, + { 0x21, 0x20 }, + + // D3D::CDevice::KickOff+0x2F : sfence + { 0x2F, 0x0F }, + { 0x30, 0xAE }, + { 0x31, 0xF8 }, + + // D3D::CDevice::KickOff+0xE2 : retn + { 0xE2, 0xC3 } + } +}; + +// ****************************************************************** +// * D3DDevice_KickPushBuffer +// ****************************************************************** +SOOVPA<4> D3DDevice_KickPushBuffer_1_0_4627 = +{ + 0, // Large == 0 + 4, // Count == 4 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x07, XREF_D3D_KickOff }, + + { 0x00, 0x8B }, + { 0x01, 0x0D }, + { 0x06, 0xE9 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8::GetTexture2 +// ****************************************************************** +SOOVPA<8> D3DDevice_GetTexture2_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x04 }, + { 0x0A, 0x56 }, + { 0x0D, 0x81 }, + { 0x0E, 0x38 }, + { 0x12, 0x8B }, + { 0x17, 0x06 }, + { 0x1E, 0x8B }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3D::CDevice::SetStateVB +// ****************************************************************** +SOOVPA<12> D3D_CDevice_SetStateVB_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // D3D_CDevice_SetStateVB+0x00 : sub esp, 0xC + { 0x00, 0x83 }, + { 0x01, 0xEC }, + { 0x02, 0x0C }, + + // D3D_CDevice_SetStateVB+0x0D : and eax, 0xFFFFFFAF + { 0x0D, 0x83 }, + { 0x0E, 0xE0 }, + { 0x0F, 0xAF }, + + // D3D_CDevice_SetStateVB+0x10 : test ebx, 0x3FFFFF8F + { 0x10, 0xF7 }, + { 0x11, 0xC3 }, + { 0x12, 0x8F }, + { 0x13, 0xFF }, + { 0x14, 0xFF }, + { 0x15, 0x3F }, + } +}; + +// ****************************************************************** +// * D3D::CDevice::SetStateUP +// ****************************************************************** +SOOVPA<11> D3D_CDevice_SetStateUP_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // D3D_CDevice_SetStateUP+0x05 : sub esp, 0x14 + { 0x05, 0x83 }, + { 0x06, 0xEC }, + { 0x07, 0x14 }, + + // D3D_CDevice_SetStateUP+0x08 : test eax, 0x3FFFFF8F + { 0x08, 0xA9 }, + { 0x09, 0x8F }, + { 0x0A, 0xFF }, + { 0x0B, 0xFF }, + { 0x0C, 0x3F }, + + // D3D_CDevice_SetStateUP+0x27 : or eax, 0x50 + { 0x27, 0x83 }, + { 0x28, 0xC8 }, + { 0x29, 0x50 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVerticesUP +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_DrawIndexedVerticesUP_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawIndexedVerticesUP+0x4A : or edx, 0x800 + { 0x4A, 0x81 }, // (Offset,Value)-Pair #1 + { 0x4B, 0xCA }, // (Offset,Value)-Pair #2 + { 0x4C, 0x00 }, // (Offset,Value)-Pair #3 + { 0x4D, 0x08 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_DrawIndexedVerticesUP+0x5C : lea edx, [edi+0x784] + { 0x5C, 0x8D }, // (Offset,Value)-Pair #5 + { 0x5D, 0x97 }, // (Offset,Value)-Pair #6 + { 0x5E, 0x84 }, // (Offset,Value)-Pair #7 + { 0x5F, 0x07 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_DrawIndexedVerticesUP+0x6A : mov eax, 0x10 + { 0x6A, 0xB8 }, // (Offset,Value)-Pair #9 + { 0x6B, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * D3DDevice_SetStipple +// ****************************************************************** +SOOVPA<7> D3DDevice_SetStipple_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x03 }, + { 0x15, 0xF6 }, + { 0x1C, 0x10 }, + { 0x26, 0x20 }, + { 0x30, 0x80 }, + { 0x3A, 0x00 }, + { 0x44, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_PersistDisplay +// ****************************************************************** +SOOVPA<8> D3DDevice_PersistDisplay_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x21, 0x8B }, + { 0x3C, 0x8D }, + { 0x5B, 0x74 }, + { 0x7A, 0x42 }, + { 0x99, 0x56 }, + { 0xB8, 0x00 }, + { 0xD7, 0x8B }, + { 0xF6, 0xF9 }, + } +}; + +// ****************************************************************** +// * D3DDevice_PersistDisplay +// ****************************************************************** +SOOVPA<14> D3DDevice_PersistDisplay_1_0_4928 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // D3DDevice_PersistDisplay+0x23 : mov eax, [ebx+0x500] + { 0x23, 0x8B }, + { 0x24, 0x83 }, + { 0x25, 0x00 }, + { 0x26, 0x05 }, + { 0x27, 0x00 }, + { 0x28, 0x00 }, + // D3DDevice_PersistDisplay+0x39 : lea ebp, [ebx+0x23C0] + { 0x39, 0x8D }, + { 0x3A, 0xAB }, + { 0x3B, 0xC0 }, + { 0x3C, 0x23 }, + { 0x3D, 0x00 }, + { 0x3E, 0x00 }, + // D3DDevice_PersistDisplay+0x72 : shl edx, cl + { 0x72, 0xD3 }, + { 0x73, 0xE2 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetSwapCallback +// ****************************************************************** +/* See the comment for the 4134 OOVPA signature for previous notes */ +SOOVPA<12> IDirect3DDevice8_SetSwapCallback_1_0_4928 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVerticalBlankCallback+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x04 : mov ecx, [addr] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x0D }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x0A : mov [ecx+0x254C], eax + { 0x0A, 0x89 }, // (Offset,Value)-Pair #7 + { 0x0B, 0x81 }, // (Offset,Value)-Pair #8 + { 0x0C, 0x4C }, // (Offset,Value)-Pair #9 + { 0x0D, 0x25 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x10 : retn 0x04 + { 0x10, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x11, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleMode +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderState_MultiSampleMode_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x89 }, + { 0x0F, 0x8B }, + { 0x13, 0x00 }, + { 0x1A, 0x00 }, + { 0x1B, 0x75 }, + { 0x21, 0x00 }, + { 0x28, 0x00 }, + { 0x31, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleRenderTargetMode +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderState_MultiSampleRenderTargetMode_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x89 }, + { 0x0F, 0x8B }, + { 0x13, 0x00 }, + { 0x1A, 0x00 }, + { 0x1B, 0x74 }, + { 0x21, 0x00 }, + { 0x28, 0x00 }, + { 0x31, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_BeginStateBlock +// ****************************************************************** +SOOVPA<6> D3DDevice_BeginStateBlock_1_0_4627 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0xA1 }, + { 0x05, 0x83 }, + { 0x06, 0x48 }, + { 0x07, 0x08 }, + { 0x08, 0x20 }, + { 0x09, 0xE9 }, + } +}; + +// ****************************************************************** +// * D3DDevice_EndStateBlock +// ****************************************************************** +SOOVPA<6> D3DDevice_EndStateBlock_1_0_4627 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0xA1 }, + { 0x05, 0x83 }, + { 0x06, 0x60 }, + { 0x07, 0x08 }, + { 0x08, 0xDF }, + { 0x09, 0xE9 }, + } +}; + +// ****************************************************************** +// * D3DDevice_ApplyStateBlock +// ****************************************************************** +SOOVPA<8> D3DDevice_ApplyStateBlock_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0xC6 }, + { 0x40, 0x83 }, + { 0x5E, 0x04 }, + { 0x7E, 0x50 }, + { 0xA0, 0x83 }, + { 0xBE, 0x51 }, + { 0xDE, 0xE9 }, + { 0xFE, 0x33 }, + } +}; + +// ****************************************************************** +// * D3DDevice_CaptureStateBlock +// ****************************************************************** +SOOVPA<8> D3DDevice_CaptureStateBlock_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0x5E }, + { 0x3C, 0x00 }, + { 0x5B, 0x72 }, + { 0x7A, 0x00 }, + { 0x99, 0x01 }, + { 0xBC, 0x8B }, + { 0xD7, 0x89 }, + { 0xF9, 0x8B }, + } +}; + +// ****************************************************************** +// * D3DDevice_DeleteStateBlock +// ****************************************************************** +SOOVPA<7> D3DDevice_DeleteStateBlock_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x11, 0x76 }, + { 0x24, 0x3B }, + { 0x37, 0xE8 }, + { 0x4A, 0x50 }, + { 0x5D, 0x74 }, + { 0x70, 0x06 }, + { 0x83, 0xEB }, + } +}; + +// ****************************************************************** +// * D3D::BlockOnTime +// ****************************************************************** +SOOVPA<6> D3D_BlockOnTime_1_0_4627 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XREF_D3D_BLOCKONTIME, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x09, 0x34 }, + { 0x27, 0x07 }, + { 0x55, 0x7E }, + { 0x7B, 0x58 }, + { 0xE3, 0x80 }, + { 0xF5, 0x30 }, + } +}; + +// ****************************************************************** +// * D3DDevice_BlockOnFence +// ****************************************************************** +SOOVPA<8> D3DDevice_BlockOnFence_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x08, XREF_D3D_BLOCKONTIME }, + + { 0x00, 0x8B }, + { 0x02, 0x24 }, + { 0x04, 0x6A }, + { 0x06, 0x50 }, + { 0x0C, 0xC2 }, + { 0x0D, 0x04 }, + { 0x0E, 0x00 }, + } +}; + +// ****************************************************************** +// * Lock3DSurface +// ****************************************************************** +SOOVPA<11> Lock3DSurface_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // D3D::PixelJar::Lock3DSurface + 0x08: test bl, 0x20 + { 0x08, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x09, 0xC3 }, // (Offset,Value)-Pair #2 + { 0x0A, 0x20 }, // (Offset,Value)-Pair #3 + + // D3D::PixelJar::Lock3DSurface + 0x40: test bl, 0x40 + { 0x40, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x41, 0xC3 }, // (Offset,Value)-Pair #5 + { 0x42, 0x40 }, // (Offset,Value)-Pair #6 + + // D3D::PixelJar::Lock3DSurface + 0x6D: and edx, 0x3C + { 0x6D, 0x83 }, // (Offset,Value)-Pair #7 + { 0x6E, 0xE2 }, // (Offset,Value)-Pair #8 + { 0x6F, 0x3C }, // (Offset,Value)-Pair #9 + + // D3D::PixelJar::Lock3DSurface + 0x99: ret 0x14 + { 0x99, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x9A, 0x14 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateImageSurface +// ****************************************************************** +SOOVPA<9> D3DDevice_CreateImageSurface_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x8B }, + { 0x0A, 0x24 }, + { 0x0E, 0x00 }, + { 0x10, 0x52 }, + { 0x16, 0x8B }, + { 0x1C, 0x85 }, + { 0x22, 0x01 }, + { 0x28, 0x07 }, + { 0x2E, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DCubeTexture_GetCubeMapSurface2 +// ****************************************************************** +SOOVPA<7> D3DCubeTexture_GetCubeMapSurface2_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x8D }, + { 0x12, 0x8D }, + { 0x1C, 0x44 }, + { 0x26, 0x24 }, + { 0x31, 0x8B }, + { 0x3A, 0x44 }, + { 0x46, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetSoftDisplayFilter +// ****************************************************************** +SOOVPA<7> D3DDevice_SetSoftDisplayFilter_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0D, 0x56 }, + { 0x14, 0x8B }, + { 0x1F, 0x95 }, + { 0x2A, 0x00 }, + { 0x37, 0x33 }, + { 0x44, 0x01 }, + { 0x4D, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetPixelShader +// ****************************************************************** +SOOVPA<7> D3DDevice_GetPixelShader_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x8B }, + { 0x06, 0x88 }, + { 0x07, 0x70 }, + { 0x0A, 0x00 }, + { 0x0D, 0x24 }, + { 0x10, 0x0A }, + { 0x13, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_CreatePalette2 +// ****************************************************************** +SOOVPA<8> D3DDevice_CreatePalette2_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0x8B }, + { 0x16, 0x74 }, + { 0x22, 0x04 }, + { 0x2E, 0x50 }, + { 0x3A, 0xE8 }, + { 0x46, 0xC1 }, + { 0x52, 0xFF }, + { 0x5E, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DPalette_Lock2 +// ****************************************************************** +SOOVPA<7> D3DPalette_Lock2_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x8B }, + { 0x0A, 0x75 }, + { 0x12, 0x8B }, + { 0x13, 0x46 }, + { 0x16, 0x00 }, + { 0x1A, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetFlickerFilter +// ****************************************************************** +SOOVPA<7> D3DDevice_SetFlickerFilter_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0xC9 }, + { 0x10, 0x24 }, + { 0x1A, 0x74 }, + { 0x22, 0x6A }, + { 0x2E, 0xC7 }, + { 0x34, 0x01 }, + { 0x3E, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_BeginPushBuffer +// ****************************************************************** +SOOVPA<7> D3DDevice_BeginPushBuffer_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0xCE }, + { 0x1B, 0x89 }, + { 0x25, 0x00 }, + { 0x32, 0x06 }, + { 0x3F, 0x03 }, + { 0x4C, 0x04 }, + { 0x59, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_EndPushBuffer +// ****************************************************************** +SOOVPA<7> D3DDevice_EndPushBuffer_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x11, 0x8D }, + { 0x22, 0x50 }, + { 0x34, 0x0C }, + { 0x46, 0x08 }, + { 0x58, 0x00 }, + { 0x6D, 0x8B }, + { 0x7C, 0x88 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetPersistedSurface2 +// ****************************************************************** +SOOVPA<7> D3DDevice_GetPersistedSurface2_1_0_4627 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0xFF }, + { 0x01, 0x25 }, + { 0x02, 0x04 }, + { 0x03, 0xC1 }, + { 0x04, 0x3A }, + { 0x05, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetModelView +// ****************************************************************** +SOOVPA<7> D3DDevice_SetModelView_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x15, 0xFF }, + { 0x2D, 0x81 }, + { 0x43, 0x3B }, + { 0x5A, 0xC1 }, + { 0x71, 0x53 }, + { 0x8A, 0x8B }, + { 0x9F, 0x30 }, + } +}; + +// ****************************************************************** +// * D3D::LazySetPointParams +// ****************************************************************** +SOOVPA<7> D3D_LazySetPointParams_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x83 }, + { 0x01, 0xEC }, + { 0x02, 0x14 }, + { 0x4E, 0xE0 }, + { 0x73, 0xF6 }, + { 0x74, 0xC4 }, + { 0x75, 0x41 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetDepthClipPlanes +// ****************************************************************** +SOOVPA<7> D3DDevice_SetDepthClipPlanes_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x12, 0x24 }, + { 0x26, 0x8B }, + { 0x3A, 0x0C }, + { 0x4E, 0x17 }, + { 0x62, 0x86 }, + { 0x76, 0x05 }, + { 0x8A, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetMaterial +// ****************************************************************** +SOOVPA<8> D3DDevice_GetMaterial_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x56 }, + { 0x06, 0x57 }, + { 0x0A, 0x0C }, + { 0x0D, 0xB0 }, + { 0x0E, 0x0A }, + { 0x12, 0x11 }, + { 0x16, 0xF3 }, + { 0x1A, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetBackMaterial +// ****************************************************************** +SOOVPA<8> D3DDevice_GetBackMaterial_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x56 }, + { 0x06, 0x57 }, + { 0x0A, 0x0C }, + { 0x0D, 0xF4 }, + { 0x0E, 0x0A }, + { 0x12, 0x11 }, + { 0x16, 0xF3 }, + { 0x1A, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetBackMaterial +// ****************************************************************** +SOOVPA<9> D3DDevice_SetBackMaterial_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x08 }, + { 0x0C, 0x81 }, + { 0x0E, 0xF4 }, + { 0x10, 0x00 }, + { 0x16, 0x00 }, + { 0x1F, 0x81 }, + { 0x22, 0x10 }, + { 0x2C, 0x5E }, + { 0x2E, 0x04 }, + } +}; + +// ****************************************************************** +// * D3D8_1_0_4627 +// ****************************************************************** +OOVPATable D3D8_1_0_4627[] = +{ + // IDirect3D8::CreateDevice + { + (OOVPA*)&IDirect3D8_CreateDevice_1_0_4627, + + XTL::EmuIDirect3D8_CreateDevice, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CreateDevice" + #endif + }, + // IDirect3D8::CreateDeviceX + { + (OOVPA*)&IDirect3D8_CreateDeviceX_1_0_4627, + + XTL::EmuIDirect3D8_CreateDevice, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CreateDevice" + #endif + }, + // IDirect3D8::CheckDeviceFormat (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3D8_CheckDeviceFormat_1_0_4361, + + XTL::EmuIDirect3D8_CheckDeviceFormat, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CheckDeviceFormat" + #endif + }, + // IDirect3DDevice8::BeginVisibilityTest + { + (OOVPA*)&IDirect3DDevice8_BeginVisibilityTest_1_0_4627, + + XTL::EmuIDirect3DDevice8_BeginVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginVisibilityTest" + #endif + }, + // IDirect3DDevice8::GetCreationParameters (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetCreationParameters_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetCreationParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetCreationParameters" + #endif + }, + // IDirect3DDevice8::EndVisibilityTest + { + (OOVPA*)&IDirect3DDevice8_EndVisibilityTest_1_0_4627, + + XTL::EmuIDirect3DDevice8_EndVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndVisibilityTest" + #endif + }, + // IDirect3DDevice8::GetVisibilityTestResult (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_GetVisibilityTestResult_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVisibilityTestResult, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVisibilityTestResult" + #endif + }, + // IDirect3D8::KickOffAndWaitForIdle + { + (OOVPA*)&IDirect3D8_KickOffAndWaitForIdle_1_0_4627, + + XTL::EmuIDirect3D8_KickOffAndWaitForIdle, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_KickOffAndWaitForIdle" + #endif + }, + // IDirect3D8::KickOffAndWaitForIdle2 + { + (OOVPA*)&IDirect3D8_KickOffAndWaitForIdle2_1_0_4627, + + XTL::EmuIDirect3D8_KickOffAndWaitForIdle2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_KickOffAndWaitForIdle2" + #endif + }, + // IDirect3DDevice8::BeginPush + { + (OOVPA*)&IDirect3DDevice8_BeginPush_1_0_4627, + + XTL::EmuIDirect3DDevice8_BeginPush, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginPush" + #endif + }, + // IDirect3DDevice8::EndPush + { + (OOVPA*)&IDirect3DDevice8_EndPush_1_0_4627, + + XTL::EmuIDirect3DDevice8_EndPush, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndPush" + #endif + }, + // IDirect3DDevice8::CopyRects + { + (OOVPA*)&IDirect3DDevice8_CopyRects_1_0_4627, + + XTL::EmuIDirect3DDevice8_CopyRects, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CopyRects" + #endif + }, + // IDirect3DDevice8::GetGammaRamp (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetGammaRamp_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetGammaRamp" + #endif + }, + // IDirect3DDevice8::GetBackBuffer2 + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer2_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetBackBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer2" + #endif + }, + // IDirect3DDevice8::GetBackBuffer2B + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer2B_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetBackBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer2B" + #endif + }, + // IDirect3DDevice8::SetViewport + { + (OOVPA*)&IDirect3DDevice8_SetViewport_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport" + #endif + }, + // D3D::CommonSetRenderTarget (XREF) + { + (OOVPA*)&D3D_CommonSetRenderTarget_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "D3D::CommonSetRenderTarget (XREF)" + #endif + }, + // D3D::CommonSetRenderTargetB (XREF) + { + (OOVPA*)&D3D_CommonSetRenderTargetB_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "D3D::CommonSetRenderTargetB (XREF)" + #endif + }, + // IDirect3DDevice8::SetRenderTarget + { + (OOVPA*)&IDirect3DDevice8_SetRenderTarget_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTarget" + #endif + }, + // IDirect3DDevice8::AddRef + { + (OOVPA*)&IDirect3DDevice8_AddRef_1_0_4627, + + XTL::EmuIDirect3DDevice8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_AddRef" + #endif + }, + // IDirect3DDevice8::SetGammaRamp + { + (OOVPA*)&IDirect3DDevice8_SetGammaRamp_1_0_4928, + + XTL::EmuIDirect3DDevice8_SetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetGammaRamp" + #endif + }, + // IDirect3DDevice8::SetShaderConstantMode + { + (OOVPA*)&IDirect3DDevice8_SetShaderConstantMode_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetShaderConstantMode" + #endif + }, + // IDirect3DDevice8::GetRenderTarget2 + { + (OOVPA*)&IDirect3DDevice8_GetRenderTarget2_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetRenderTarget2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetRenderTarget2" + #endif + }, + // IDirect3DDevice8::GetRenderTarget2B + { + (OOVPA*)&IDirect3DDevice8_GetRenderTarget2B_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetRenderTarget2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetRenderTarget2B" + #endif + }, + // IDirect3DDevice8::GetDepthStencilSurface2 + { + (OOVPA*)&IDirect3DDevice8_GetDepthStencilSurface2_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetDepthStencilSurface2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDepthStencilSurface2" + #endif + }, + // IDirect3DDevice8::GetDepthStencilSurface2B + { + (OOVPA*)&IDirect3DDevice8_GetDepthStencilSurface2B_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetDepthStencilSurface2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDepthStencilSurface2B" + #endif + }, + // IDirect3DDevice8::GetTile + { + (OOVPA*)&IDirect3DDevice8_GetTile_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetTile, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTile" + #endif + }, + // IDirect3DDevice8::SetTileNoWait + { + (OOVPA*)&IDirect3DDevice8_SetTileNoWait_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetTileNoWait, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTileNoWait" + #endif + }, + // IDirect3DDevice8::CreateIndexBuffer2 + { + (OOVPA*)&IDirect3DDevice8_CreateIndexBuffer2_1_0_4627, + + XTL::EmuIDirect3DDevice8_CreateIndexBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateIndexBuffer2" + #endif + }, + // IDirect3DDevice8::CreateVertexShader (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexShader" + #endif + }, + // IDirect3DDevice8::SetPixelShaderConstant (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetPixelShaderConstant_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetPixelShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderConstant" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant1 + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant1_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant1, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant1" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant4 + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant4_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant4, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant4" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstantNotInline + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstantNotInline_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstantNotInline, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstantNotInline" + #endif + }, + // IDirect3DDevice8::DeletePixelShader (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_DeletePixelShader_1_0_4134, + + XTL::EmuIDirect3DDevice8_DeletePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeletePixelShader" + #endif + }, + // IDirect3DDevice8::CreatePixelShader (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreatePixelShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePixelShader" + #endif + }, + // IDirect3DDevice8::SetPixelShader + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + }, + // IDirect3DDevice8::CreateTexture2 + { + (OOVPA*)&IDirect3DDevice8_CreateTexture2_1_0_4627, + + XTL::EmuIDirect3DDevice8_CreateTexture2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture2" + #endif + }, + // IDirect3DDevice8::CreateTexture2B + { + (OOVPA*)&IDirect3DDevice8_CreateTexture2B_1_0_4627, + + XTL::EmuIDirect3DDevice8_CreateTexture2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture2B" + #endif + }, + // IDirect3DDevice8::CreateTexture2C + { + (OOVPA*)&IDirect3DDevice8_CreateTexture2C_1_0_4627, + + XTL::EmuIDirect3DDevice8_CreateTexture2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture2C" + #endif + }, + // IDirect3DDevice8::SetIndices (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetIndices_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // IDirect3DDevice8::SetIndicesB + { + (OOVPA*)&IDirect3DDevice8_SetIndicesB_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndicesB" + #endif + }, + // IDirect3DDevice8::SetTexture (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::SetTextureB + { + (OOVPA*)&IDirect3DDevice8_SetTextureB_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureB" + #endif + }, + // IDirect3DDevice8::SetTextureC + { + (OOVPA*)&IDirect3DDevice8_SetTextureC_1_0_4928, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureC" + #endif + }, + // IDirect3DDevice8::GetDisplayMode + { + (OOVPA*)&IDirect3DDevice8_GetDisplayMode_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetDisplayMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDisplayMode" + #endif + }, + // IDirect3DDevice8::RunPushBuffer + { + (OOVPA*)&IDirect3DDevice8_RunPushBuffer_1_0_4627, + + XTL::EmuIDirect3DDevice8_RunPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_RunPushBuffer" + #endif + }, + // IDirect3DDevice8::Begin + { + (OOVPA*)&IDirect3DDevice8_Begin_1_0_4627, + + XTL::EmuIDirect3DDevice8_Begin, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Begin" + #endif + }, + // IDirect3DDevice8::SetVertexData2f + { + (OOVPA*)&IDirect3DDevice8_SetVertexData2f_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::SetVertexData4f + { + (OOVPA*)&IDirect3DDevice8_SetVertexData4f_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexData4f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4f" + #endif + }, + // IDirect3DDevice8::End + { + (OOVPA*)&IDirect3DDevice8_End_1_0_4627, + + XTL::EmuIDirect3DDevice8_End, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_End" + #endif + }, + // IDirect3DDevice8::Clear + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_4627, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + // IDirect3DDevice8::ClearB + { + (OOVPA*)&IDirect3DDevice8_ClearB_1_0_4627, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_ClearB" + #endif + }, + // IDirect3DDevice8::Swap + { + (OOVPA*)&IDirect3DDevice8_Swap_1_0_4627, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap" + #endif + }, + // IDirect3DDevice8::EnableOverlay (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_EnableOverlay_1_0_4361, + + XTL::EmuIDirect3DDevice8_EnableOverlay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EnableOverlay" + #endif + }, + // IDirect3DDevice8::CreateVertexBuffer2 + { + (OOVPA*)&IDirect3DDevice8_CreateVertexBuffer2_1_0_4627, + + XTL::EmuIDirect3DDevice8_CreateVertexBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexBuffer2" + #endif + }, + // IDirect3DDevice8::UpdateOverlay + { + (OOVPA*)&IDirect3DDevice8_UpdateOverlay_1_0_4627, + + XTL::EmuIDirect3DDevice8_UpdateOverlay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_UpdateOverlay" + #endif + }, + // IDirect3DDevice8::GetOverlayUpdateStatus + { + (OOVPA*)&IDirect3DDevice8_GetOverlayUpdateStatus_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetOverlayUpdateStatus, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetOverlayUpdateStatus" + #endif + }, + // IDirect3DDevice8::BlockUntilVerticalBlank + { + (OOVPA*)&IDirect3DDevice8_BlockUntilVerticalBlank_1_0_4627, + + XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockUntilVerticalBlank" + #endif + }, + // IDirect3DDevice8::SetVerticalBlankCallback + { + (OOVPA*)&IDirect3DDevice8_SetVerticalBlankCallback_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVerticalBlankCallback" + #endif + }, + // IDirect3DDevice8::GetViewport + { + (OOVPA*)&IDirect3DDevice8_GetViewport_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetViewport" + #endif + }, + // IDirect3DDevice8::SetTextureState_TexCoordIndex + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, + // IDirect3DDevice8::SetTextureState_BumpEnv (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BumpEnv_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BumpEnv, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BumpEnv" + #endif + }, + // IDirect3DDevice8::SetTextureState_BorderColor (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BorderColor_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BorderColor" + #endif + }, + // IDirect3DDevice8::SetTextureState_ColorKeyColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_ColorKeyColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_ColorKeyColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_VertexBlend (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_VertexBlend_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_VertexBlend" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullModeB (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullModeB_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullModeB" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullMode (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_4034, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_NormalizeNormals (* unchanged since 4432 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormals" + #endif + }, + // IDirect3DDevice8::SetRenderState_NormalizeNormalsB + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormalsB_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormalsB" + #endif + }, + // IDirect3DDevice8::SetRenderState_TextureFactor (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZBias (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZBias_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZBias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZBias" + #endif + }, + // IDirect3DDevice8::SetRenderState_EdgeAntiAlias (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_EdgeAntiAliasB + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAliasB_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAliasB" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_BackFillMode (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_BackFillMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_BackFillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_BackFillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_FogColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_Dxt1NoiseEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_Simple (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnableB + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnableB_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnableB" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilEnable (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilEnableB + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnableB_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnableB" + #endif + }, + // IDirect3DDevice8::SetRenderState_LineWidth + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_LineWidth_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_LineWidth, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LineWidth" + #endif + }, + // IDirect3DDevice8::SetRenderState_OcclusionCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleAntiAlias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleAntiAliasB + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleAntiAliasB_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAliasB" + #endif + }, + // IDirect3DDevice8::SetRenderState_ShadowFunc (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_ShadowFunc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ShadowFunc" + #endif + }, + // IDirect3DDevice8::SwitchTexture (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SwitchTexture_1_0_4361, + + XTL::EmuIDirect3DDevice8_SwitchTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SwitchTexture" + #endif + }, + // IDirect3DDevice8::SetRenderState_YuvEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_YuvEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_YuvEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_YuvEnable" + #endif + }, + // IDirect3DDevice8::SetTransform (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTransform_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTransform" + #endif + }, + // IDirect3DDevice8::GetTransform (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_GetTransform_1_0_4361, + + XTL::EmuIDirect3DDevice8_GetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTransform" + #endif + }, + // D3DDevice_GetStreamSource2 + { + (OOVPA*)&X_D3DDevice_GetStreamSource2_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetStreamSource2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetStreamSource2" + #endif + + }, + // IDirect3DDevice8::SetStreamSource (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // IDirect3DDevice8::SetVertexShader (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::SetVertexShaderB + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderB_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderB" + #endif + }, + // IDirect3DDevice8::DrawVertices (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_4361, + + XTL::EmuIDirect3DDevice8_DrawVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVertices" + #endif + }, + // IDirect3DDevice8::DrawVerticesUP + { + (OOVPA*)&IDirect3DDevice8_DrawVerticesUP_1_0_4627, + + XTL::EmuIDirect3DDevice8_DrawVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVerticesUP" + #endif + }, + // IDirect3DDevice8::DrawVerticesUPB + { + (OOVPA*)&IDirect3DDevice8_DrawVerticesUPB_1_0_4627, + + XTL::EmuIDirect3DDevice8_DrawVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVerticesUPB" + #endif + }, + // IDirect3DDevice8::SetLight (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetLight_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight" + #endif + }, + // IDirect3DDevice8::DrawIndexedVertices + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_4627, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, + // IDirect3DDevice8::SetMaterial + { + (OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetMaterial" + #endif + }, + // IDirect3DDevice8::LightEnable (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_LightEnable_1_0_4361, + + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable" + #endif + }, + // IDirect3DVertexBuffer8::Lock2 + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock2_1_0_4627, + + XTL::EmuIDirect3DVertexBuffer8_Lock2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock2" + #endif + }, + // IDirect3DVertexBuffer8::Lock2B + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock2B_1_0_4627, + + XTL::EmuIDirect3DVertexBuffer8_Lock2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock2B" + #endif + }, + // IDirect3DResource8::Register (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Register_1_0_3925, + + XTL::EmuIDirect3DResource8_Register, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Register" + #endif + }, + // IDirect3DResource8::AddRef (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_AddRef_1_0_3925, + + XTL::EmuIDirect3DResource8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_AddRef" + #endif + }, + // IDirect3DResource8::Release (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Release_1_0_3925, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Release" + #endif + }, + // IDirect3DResource8::ReleaseB + { + (OOVPA*)&IDirect3DResource8_ReleaseB_1_0_4627, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_ReleaseB" + #endif + }, + // IDirect3DResource8::IsBusy (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DResource8_IsBusy_1_0_4361, + + XTL::EmuIDirect3DResource8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_IsBusy" + #endif + }, + /* I forget why I had this in here... + // IDirect3DResource8::GetType + { + (OOVPA*)&IDirect3DResource8_GetType_1_0_4627, + + XTL::EmuIDirect3DResource8_GetType, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_GetType" + #endif + },*/ + // Get2DSurfaceDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_4627, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc" + #endif + }, + // Get2DSurfaceDescB + { + (OOVPA*)&Get2DSurfaceDescB_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDescB (XREF)" + #endif + }, + // Get2DSurfaceDescC + { + (OOVPA*)&Get2DSurfaceDescC_1_0_4627, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDescC" + #endif + }, + // Get2DSurfaceDescD + { + (OOVPA*)&Get2DSurfaceDescD_1_0_4627, + + XTL::EmuGet2DSurfaceDescD, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDescD" + #endif + }, + // IDirect3DSurface8::GetDesc (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DSurface8_GetDesc_1_0_4361, + + XTL::EmuIDirect3DSurface8_GetDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_GetDesc" + #endif + }, + // IDirect3DSurface8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DSurface8_LockRect_1_0_3925, + + XTL::EmuIDirect3DSurface8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_LockRect" + #endif + }, + // IDirect3DSurface8::LockRectB + { + (OOVPA*)&IDirect3DSurface8_LockRectB_1_0_4627, + + XTL::EmuIDirect3DSurface8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_LockRectB" + #endif + }, + // IDirect3DBaseTexture8::GetLevelCount (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DBaseTexture8_GetLevelCount_1_0_4361, + + XTL::EmuIDirect3DBaseTexture8_GetLevelCount, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DBaseTexture8_GetLevelCount" + #endif + }, + // IDirect3DTexture8::GetSurfaceLevel2 + { + (OOVPA*)&IDirect3DTexture8_GetSurfaceLevel2_1_0_4627, + + XTL::EmuIDirect3DTexture8_GetSurfaceLevel2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetSurfaceLevel2" + #endif + }, + // IDirect3DTexture8::GetSurfaceLevel2B + { + (OOVPA*)&IDirect3DTexture8_GetSurfaceLevel2B_1_0_4627, + + XTL::EmuIDirect3DTexture8_GetSurfaceLevel2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetSurfaceLevel2B" + #endif + }, + // IDirect3DTexture8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DTexture8_LockRect_1_0_3925, + + XTL::EmuIDirect3DTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_LockRect" + #endif + }, + // IDirect3DVolumeTexture8::LockBox + { + (OOVPA*)&IDirect3DVolumeTexture8_LockBox_1_0_4627, + + XTL::EmuIDirect3DVolumeTexture8_LockBox, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVolumeTexture8_LockBox" + #endif + }, + // X_D3DDevice_GetViewportOffsetAndScale + { + (OOVPA*)&X_D3DDevice_GetViewportOffsetAndScale_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetViewportOffsetAndScale, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetViewportOffsetAndScale" + #endif + }, + // D3DDevice_DeleteVertexShader (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_DeleteVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_DeleteVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteVertexShader" + #endif + }, + // D3DDevice_SelectVertexShaderDirect + { + (OOVPA*)&X_D3DDevice_SelectVertexShaderDirect_1_0_4627, + + XTL::EmuIDirect3DDevice8_SelectVertexShaderDirect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SelectVertexShaderDirect" + #endif + }, + // D3DDevice_GetShaderConstantMode + { + (OOVPA*)&X_D3DDevice_GetShaderConstantMode_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetShaderConstantMode" + #endif + }, + // D3DDevice_GetVertexShader + { + (OOVPA*)&X_D3DDevice_GetVertexShader_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVertexShader" + #endif + }, + // D3DDevice_GetVertexShaderConstant + { + (OOVPA*)&X_D3DDevice_GetVertexShaderConstant_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetVertexShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVertexShaderConstant" + #endif + }, + // D3DDevice_SetVertexShaderInputDirect + { + (OOVPA*)&X_D3DDevice_SetVertexShaderInputDirect_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexShaderInputDirect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderInputDirect" + #endif + }, + // D3DDevice_GetVertexShaderInput + { + (OOVPA*)&X_D3DDevice_GetVertexShaderInput_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetVertexShaderInput, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVertexShaderInput" + #endif + }, + // D3DDevice_RunVertexStateShader + { + (OOVPA*)&X_D3DDevice_RunVertexStateShader_1_0_4627, + + XTL::EmuIDirect3DDevice8_RunVertexStateShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_RunVertexStateShader" + #endif + }, + // D3DDevice_LoadVertexShader + { + (OOVPA*)&X_D3DDevice_LoadVertexShader_1_0_4627, + + XTL::EmuIDirect3DDevice8_LoadVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShader" + #endif + }, + // D3DDevice_LoadVertexShaderProgram + { + (OOVPA*)&X_D3DDevice_LoadVertexShaderProgram_1_0_4627, + + XTL::EmuIDirect3DDevice8_LoadVertexShaderProgram, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShaderProgram" + #endif + }, + // D3DDevice_SelectVertexShader + { + (OOVPA*)&X_D3DDevice_SelectVertexShader_1_0_4627, + + XTL::EmuIDirect3DDevice8_SelectVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SelectVertexShader" + #endif + }, + // D3DDevice_GetVertexShaderSize (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_GetVertexShaderSize_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVertexShaderSize, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVertexShaderSize" + #endif + }, + // IDirect3DDevice8::BeginStateBlock + { + (OOVPA*)&IDirect3DDevice8_BeginStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_BeginStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginStateBlock" + #endif + }, + // IDirect3DDevice8::EndStateBlock + { + (OOVPA*)&IDirect3DDevice8_EndStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_EndStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndStateBlock" + #endif + }, + // D3DDevice_GetVertexShaderType + { + (OOVPA*)&X_D3DDevice_GetVertexShaderType_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetVertexShaderType, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVertexShaderType" + #endif + }, + // D3DDevice_GetVertexShaderDeclaration + { + (OOVPA*)&X_D3DDevice_GetVertexShaderDeclaration_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetVertexShaderDeclaration, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVertexShaderDeclaration" + #endif + }, + // D3DDevice_GetVertexShaderFunction + { + (OOVPA*)&X_D3DDevice_GetVertexShaderFunction_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetVertexShaderFunction, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVertexShaderFunction" + #endif + }, + // D3DDevice_SetVertexShaderInput + { + (OOVPA*)&X_D3DDevice_SetVertexShaderInput_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexShaderInput, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderInput" + #endif + }, + // D3DDevice_Release + { + (OOVPA*)&X_D3DDevice_Release_1_0_4627, + + XTL::EmuIDirect3DDevice8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Release" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilFail (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // IDirect3DDevice8::SetPixelShader + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_4721, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader_4721" + #endif + }, + // IDirect3DDevice8::Reset (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_Reset_1_0_4134, + + XTL::EmuIDirect3DDevice8_Reset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Reset" + #endif + }, + // IDirect3DDevice8::SetScissors + { + (OOVPA*) &D3DDevice_SetScissors_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetScissors, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScissors" + #endif + }, + // IDirect3DDevice8::SetPalette + { + (OOVPA*) &D3DDevice_SetPalette_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetPalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPalette" + #endif + }, + // IDirect3DDevice8::SetBackBufferScale + { + (OOVPA*)&IDirect3DDevice8_SetBackBufferScale_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetBackBufferScale, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetBackBufferScale" + #endif + }, + // IDirect3DDevice8::Reset + { + (OOVPA*)&IDirect3DDevice8_Reset_1_0_4627, + + XTL::EmuIDirect3DDevice8_Reset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Reset" + #endif + }, + // IDirect3DDevice8_SetPixelShaderProgram + { + (OOVPA*)&IDirect3DDevice8_SetPixelShaderProgram_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetPixelShaderProgram, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderProgram" + #endif + }, + // IDirect3DDevice8_GetDisplayFieldStatus + { + (OOVPA*)&IDirect3DDevice8_GetDisplayFieldStatus_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetDisplayFieldStatus, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDisplayFieldStatus" + #endif + }, + // IDirect3DDevice8_SetScreenSpaceOffset (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetScreenSpaceOffset_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetScreenSpaceOffset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScreenSpaceOffset" + #endif + }, + // IDirect3DDevice8_CreateStateBlock + { + (OOVPA*)&IDirect3DDevice8_CreateStateBlock_1_0_4627, + + XTL::EmuIDirect3DDevice8_CreateStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateStateBlock" + #endif + }, + // IDirect3DDevice8_InsertCallback + { + (OOVPA*)&IDirect3DDevice8_InsertCallback_1_0_4627, + + XTL::EmuIDirect3DDevice8_InsertCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_InsertCallback" + #endif + }, + // IDirect3DDevice8_DrawRectPatch + { + (OOVPA*)&IDirect3DDevice8_DrawRectPatch_1_0_4627, + + XTL::EmuIDirect3DDevice8_DrawRectPatch, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawRectPatch" + #endif + }, + // IDirect3DDevice8_GetProjectionViewportMatrix + { + (OOVPA*)&IDirect3DDevice8_GetProjectionViewportMatrix_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetProjectionViewportMatrix, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetProjectionViewportMatrix" + #endif + }, + // IDirect3DDevice8_BackFillMode (* unchanged since 4531 *) + { + (OOVPA*)&IDirect3DDevice8_BackFillMode_1_0_4531, + + XTL::EmuIDirect3DDevice8_BackFillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BackFillMode" + #endif + }, + // IDirect3DDevice8_GetDeviceCaps (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_GetDeviceCaps_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetDeviceCaps, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDeviceCaps" + #endif + }, + // D3DDevice_SetRenderState_MultiSampleMask + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleMask_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMask, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMask" + #endif + }, + // D3DDevice_SetRenderState_LogicOp + { + (OOVPA*)&D3DDevice_SetRenderState_LogicOp_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_LogicOp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LogicOp" + #endif + }, + // D3D::SetFence (XREF) (* unchanged since 4134 *) + { + (OOVPA*)&D3D_SetFence_1_0_4134, 0, + + #ifdef _DEBUG_TRACE + "D3D::SetFence (XREF)" + #endif + }, + // IDirect3DDevice8::InsertFence + { + (OOVPA*)&D3DDevice_InsertFence_1_0_4627, + + XTL::EmuIDirect3DDevice8_InsertFence, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_InsertFence" + #endif + }, + // D3D::CDevice::KickOff + { + (OOVPA*)&D3D_CDevice_KickOff_1_0_4627, + + XTL::EmuD3DDevice_KickOff, + + #ifdef _DEBUG_TRACE + "D3D::CDevice::KickOff" + #endif + }, + // IDirect3DDevice8::SetPixelShaderConstant + { + (OOVPA*)&IDirect3DDevice8_SetPixelShaderConstant_1_0_4928, + + XTL::EmuIDirect3DDevice8_SetPixelShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderConstant_4928" + #endif + }, + // IDirect3DDevice8::SetRenderState_TwoSidedLighting (* unchanged since 4134 *) + // Beware of the typo... + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TwoSidedLighting_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TwoSidedLighting" + #endif + }, + // D3DDevice_GetTexture2 + { + (OOVPA*)&D3DDevice_GetTexture2_1_0_4627, + XTL::EmuIDirect3DDevice8_GetTexture2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTexture2" + #endif + }, + // D3D::CDevice::SetStateVB + /*{ + (OOVPA*)&D3D_CDevice_SetStateVB_1_0_4627, + + XTL::EmuD3DDevice_SetStateVB, + + #ifdef _DEBUG_TRACE + "D3D::CDevice::SetStateVB" + #endif + },*/ + // D3D::CDevice::SetStateUP + /*{ + (OOVPA*)&D3D_CDevice_SetStateUP_1_0_4627, + + XTL::EmuD3DDevice_SetStateUP, + + #ifdef _DEBUG_TRACE + "D3D::CDevice::SetStateUP" + #endif + },*/ + // IDirect3DDevice8::DrawIndexedVerticesUP + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVerticesUP_1_0_4627, + + XTL::EmuIDirect3DDevice8_DrawIndexedVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVerticesUP" + #endif + }, + // IDirect3DDevice8::SetStipple + { + (OOVPA*)&D3DDevice_SetStipple_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetStipple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStipple" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZCmpAlwaysRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_DoNotCullUncompressed (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed" + #endif + }, + // IDirect3DDevice8::DeletePixelShader (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_DeletePixelShader_1_0_4134, + + XTL::EmuIDirect3DDevice8_DeletePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeletePixelShader" + #endif + }, + // D3DDevice_PersistDisplay + { + (OOVPA*)&D3DDevice_PersistDisplay_1_0_4627, + XTL::EmuIDirect3DDevice8_PersistDisplay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice_PersistDisplay" + #endif + }, + // D3DDevice_PersistDisplay + { + (OOVPA*)&D3DDevice_PersistDisplay_1_0_4928, + XTL::EmuIDirect3DDevice8_PersistDisplay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_PersistDisplay_4928" + #endif + }, + // IDirect3DDevice8::SetSwapCallback + { + (OOVPA*)&IDirect3DDevice8_SetSwapCallback_1_0_4928, + + XTL::EmuIDirect3DDevice8_SetSwapCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSwapCallback" + #endif + }, + // IDirect3DDevice8::SetRenderState_FrontFace (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FrontFace_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FrontFace, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FrontFace" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMode + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleMode_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleRenderTargetMode + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleRenderTargetMode_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilCullEnable" + #endif + }, + // IDirect3DDevice8::BeginStateBlock + { + (OOVPA*)&D3DDevice_BeginStateBlock_1_0_4627, + + XTL::EmuIDirect3DDevice8_BeginStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginStateBlock" + #endif + }, + // IDirect3DDevice8::EndStateBlock + { + (OOVPA*)&D3DDevice_EndStateBlock_1_0_4627, + + XTL::EmuIDirect3DDevice8_EndStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndStateBlock" + #endif + }, + // IDirect3DDevice8::ApplyStateBlock + { + (OOVPA*)&D3DDevice_ApplyStateBlock_1_0_4627, + + XTL::EmuIDirect3DDevice8_ApplyStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_ApplyStateBlock" + #endif + }, + // IDirect3DDevice8::CaptureStateBlock + { + (OOVPA*)&D3DDevice_CaptureStateBlock_1_0_4627, + + XTL::EmuIDirect3DDevice8_CaptureStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CaptureStateBlock" + #endif + }, + // IDirect3DDevice8::DeleteStateBlock + { + (OOVPA*)&D3DDevice_DeleteStateBlock_1_0_4627, + + XTL::EmuIDirect3DDevice8_DeleteStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteStateBlock" + #endif + }, + // IDirect3DDevice8::SetVertexData4ub (* unchanged since 4361 *) + { + (OOVPA*)&D3DDevice_SetVertexData4ub_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexData4ub, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4ub" + #endif + }, + // IDirect3DDevice8::SetVertexData4f + { + (OOVPA*)&D3DDevice_SetVertexData4f_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexData4f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4f" + #endif + }, + // D3D_BlockOnTime + { + (OOVPA*)&D3D_BlockOnTime_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "D3D::BlockOnTime (XREF)" + #endif + }, + // D3DDevice_BlockOnFence + { + (OOVPA*)&D3DDevice_BlockOnFence_1_0_4627, + + XTL::EmuIDirect3DDevice8_BlockOnFence, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockOnFence" + #endif + }, + // Lock3DSurface + { + (OOVPA*)&Lock3DSurface_1_0_4627, + + XTL::EmuLock3DSurface, + + #ifdef _DEBUG_TRACE + "EmuLock3DSurface" + #endif + }, + // Lock2DSurface (* unchanged since 3925 *) + { + (OOVPA*)&Lock2DSurface_1_0_3925, + + XTL::EmuLock2DSurface, + + #ifdef _DEBUG_TRACE + "EmuLock2DSurface" + #endif + }, + // IDirect3DDevice8::CreateImageSurface + { + (OOVPA*)&D3DDevice_CreateImageSurface_1_0_4627, + + XTL::EmuIDirect3DDevice8_CreateImageSurface, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateImageSurface" + #endif + }, + // IDirect3DCubeTexture8::GetCubeMapSurface2 + { + (OOVPA*)&D3DCubeTexture_GetCubeMapSurface2_1_0_4627, + + XTL::EmuIDirect3DCubeTexture8_GetCubeMapSurface2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DCubeTexture8_GetCubeMapSurface2" + #endif + }, + // IDirect3DDevice8::SetSoftDisplayFilter + { + (OOVPA*)&D3DDevice_SetSoftDisplayFilter_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetSoftDisplayFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSoftDisplayFilter" + #endif + }, + // IDirect3DDevice8::SetFlickerFilter + { + (OOVPA*)&D3DDevice_SetFlickerFilter_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetFlickerFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetFlickerFilter" + #endif + }, + // IDirect3DDevice8::GetPixelShader + { + (OOVPA*)&D3DDevice_GetPixelShader_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetPixelShader" + #endif + }, + // IDirect3DDevice8::CreatePalette2 + { + (OOVPA*)&D3DDevice_CreatePalette2_1_0_4627, + + XTL::EmuIDirect3DDevice8_CreatePalette2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePalette2" + #endif + }, + // IDirect3DPalette8::Lock2 + { + (OOVPA*)&D3DPalette_Lock2_1_0_4627, + + XTL::EmuIDirect3DPalette8_Lock2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DPalette8_Lock2" + #endif + }, + // IDirect3DDevice8::BeginPushBuffer + { + (OOVPA*)&D3DDevice_BeginPushBuffer_1_0_4627, + + XTL::EmuIDirect3DDevice8_BeginPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginPushBuffer" + #endif + }, + // IDirect3DDevice8::EndPushBuffer + { + (OOVPA*)&D3DDevice_EndPushBuffer_1_0_4627, + + XTL::EmuIDirect3DDevice8_EndPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndPushBuffer" + #endif + }, + // D3DDevice_GetPersistedSurface2 + { + (OOVPA*)&D3DDevice_GetPersistedSurface2_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetPersistedSurface2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetPersistedSurface2 ***" + #endif + }, + // D3DDevice_SetModelView + { + (OOVPA*)&D3DDevice_SetModelView_1_0_4627, + XTL::EmuIDirect3DDevice8_SetModelView, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetModelView" + #endif + }, + // D3D_LazySetPointParams_1_0_4627 + { + (OOVPA*)&D3D_LazySetPointParams_1_0_4627, + XTL::EmuD3D_LazySetPointParams, + + #ifdef _DEBUG_TRACE + "D3D::LazySetPointParams (XRef)" + #endif + }, + // D3DDevice_SetDepthClipPlanes + { + (OOVPA*)&D3DDevice_SetDepthClipPlanes_1_0_4627, + XTL::EmuIDirect3DDevice8_SetDepthClipPlanes, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetDepthClipPlanes" + #endif + }, + // IDirect3DDevice8::GetMaterial + { + (OOVPA*)&D3DDevice_GetMaterial_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetMaterial" + #endif + }, + // IDirect3DDevice8::KickPushBuffer + { + (OOVPA*)&D3DDevice_KickPushBuffer_1_0_4627, + + XTL::EmuD3DDevice_KickOff, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_KickPushBuffer" + #endif + }, + // IDirect3DDevice8::GetBackMaterial + { + (OOVPA*)&D3DDevice_GetBackMaterial_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetBackMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackMaterial" + #endif + }, + // IDirect3DDevice8::SetBackMaterial + { + (OOVPA*)&D3DDevice_SetBackMaterial_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetBackMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetBackMaterial" + #endif + }, + // IDirect3DCubeTexture8::LockRect + // TODO: This needs to be verified on 4361, not just 4242! + /*{ + (OOVPA*)&IDirect3DCubeTexture8_LockRect_1_0_3925, + + XTL::EmuIDirect3DCubeTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DCubeTexture8_LockRect_4242" + #endif + },*/ +}; + +// ****************************************************************** +// * D3D8_1_0_4627_SIZE +// ****************************************************************** +uint32 D3D8_1_0_4627_SIZE = sizeof(D3D8_1_0_4627); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5233.h b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5233.h new file mode 100644 index 000000000..99b6ed280 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5233.h @@ -0,0 +1,44 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5233.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_1_0_5233_H +#define D3D8_1_0_5233_H + +#include "OOVPA.h" + +extern SOOVPA<13> IDirect3DDevice8_SetRenderState_CullMode_1_0_5233; + +extern OOVPATable D3D8_1_0_5233[]; +extern uint32 D3D8_1_0_5233_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5233.inl new file mode 100644 index 000000000..a34c0dce3 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5233.inl @@ -0,0 +1,3694 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5233.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * IDirect3D8_CreateDevice +// ****************************************************************** +SOOVPA<8> IDirect3D8_CreateDevice_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_CreateDevice+0x0A : jnz +0x0A + { 0x0A, 0x75 }, // (Offset,Value)-Pair #1 + { 0x0B, 0x0A }, // (Offset,Value)-Pair #2 + + // IDirect3D8_CreateDevice+0x80 : repe stosd + { 0x80, 0xF3 }, // (Offset,Value)-Pair #3 + { 0x81, 0xAB }, // (Offset,Value)-Pair #4 + + // IDirect3D8_CreateDevice+0x83 : mov eax, esi + { 0x83, 0x8B }, // (Offset,Value)-Pair #5 + { 0x84, 0xC6 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_CreateDevice+0x91 : retn 0x18 + { 0x91, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x92, 0x18 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDisplayFieldStatus +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_GetDisplayFieldStatus_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0x90 }, + { 0x0E, 0x04 }, + { 0x16, 0x00 }, + { 0x1E, 0x56 }, + { 0x26, 0xD2 }, + { 0x2E, 0x89 }, + { 0x36, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetViewport +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetViewport_1_0_5233 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_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 + + // IDirect3DDevice8_SetViewport+0x63 : shl edi, cl + { 0x63, 0xD3 }, // (Offset,Value)-Pair #5 + { 0x64, 0xE7 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetViewport+0xDF : and ecx, 0x0F + { 0xDF, 0x83 }, // (Offset,Value)-Pair #7 + { 0xE0, 0xE1 }, // (Offset,Value)-Pair #8 + { 0xE1, 0x0F }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LoadVertexShader +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_LoadVertexShader_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x45 }, + { 0x14, 0x75 }, + { 0x21, 0x8B }, + { 0x2D, 0x8B }, + { 0x35, 0x04 }, + { 0x40, 0x00 }, + { 0x4B, 0x5E }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderConstantNotInline +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetVertexShaderConstantNotInline_1_0_5233 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShaderConstantNotInline+0x26 : cmp eax, 0x10 + { 0x26, 0x83 }, // (Offset,Value)-Pair #1 + { 0x27, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x28, 0x10 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderConstantNotInline+0x29 : jnb +0x1F + { 0x29, 0x73 }, // (Offset,Value)-Pair #4 + { 0x2A, 0x1F }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetVertexShaderConstantNotInline+0x33 : or eax, 0x0B80 + { 0x33, 0x0D }, // (Offset,Value)-Pair #6 + { 0x34, 0x80 }, // (Offset,Value)-Pair #7 + { 0x35, 0x0B }, // (Offset,Value)-Pair #8 + { 0x36, 0x00 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexShaderConstantNotInline+0x3B : rep movsd + { 0x3B, 0xF3 }, // (Offset,Value)-Pair #10 + { 0x3C, 0xA5 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetVertexShaderConstantNotInline+0x43 : emms + { 0x43, 0x0F }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Clear +// ****************************************************************** +LOOVPA<8> IDirect3DDevice8_Clear_1_0_5233 = +{ + 1, // Large == 1 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0x8A }, + { 0x3C, 0x8B }, + { 0x5B, 0x00 }, + { 0x7A, 0xFD }, + { 0x99, 0x25 }, + { 0xB8, 0x00 }, + { 0xD7, 0x75 }, + { 0xF6, 0xFF }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShader +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetPixelShader_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x75 }, + { 0x3E, 0x0D }, + { 0x60, 0x8B }, + { 0x7E, 0x04 }, + { 0x9E, 0x20 }, + { 0xBE, 0x08 }, + { 0xE1, 0xF6 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateTexture2 +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_CreateTexture2_1_0_5233 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateTexture2+0x04 : lea eax, [esp+0x20] + { 0x04, 0x8D }, // (Offset,Value)-Pair #1 + { 0x07, 0x20 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreateTexture2+0x10 : setz dl + { 0x10, 0x0F }, // (Offset,Value)-Pair #3 + { 0x11, 0x94 }, // (Offset,Value)-Pair #4 + { 0x12, 0xC2 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_CreateTexture2+0x2E : push 0x00 + { 0x2E, 0x6A }, // (Offset,Value)-Pair #6 + { 0x2F, 0x00 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreateTexture2+0x57 : call [abs] + { 0x57, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_CreateTexture2+0x7C : jnz +0x0D + { 0x7C, 0x75 }, // (Offset,Value)-Pair #9 + { 0x7D, 0x0D }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_CreateTexture2+0xB2 : retn 0x1C + { 0xB2, 0xC2 }, // (Offset,Value)-Pair #11 + { 0xB3, 0x1C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_CullMode +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_CullMode_1_0_5233 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XREF_DXSRSCULLMODE, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirect3DDevice8_SetRenderState_CullMode+0x19 : mov dword ptr [eax], 0x40308 + { 0x19, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x1B, 0x08 }, // (Offset,Value)-Pair #2 + { 0x1C, 0x03 }, // (Offset,Value)-Pair #3 + { 0x1D, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_CullMode+0x24 : add eax, 8 + { 0x24, 0x83 }, // (Offset,Value)-Pair #5 + { 0x25, 0xC0 }, // (Offset,Value)-Pair #6 + { 0x26, 0x08 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_CullMode+0x30 : retn 4 + { 0x30, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x31, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_CullMode+0x53 : add edx, 0x404 + { 0x53, 0x81 }, // (Offset,Value)-Pair #10 + { 0x54, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x55, 0x04 }, // (Offset,Value)-Pair #12 + { 0x56, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0F, 0xB4 }, + { 0x10, 0x15 }, + { 0x16, 0x0D }, + { 0x1F, 0x3C }, + { 0x34, 0x36 }, + { 0x58, 0x05 }, + { 0x75, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_5344 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+0D : mov eax, [edi+XXXXh] + { 0x0D, 0x8B }, + { 0x0E, 0x87 }, + + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+1D : and dl, 3Ch + { 0x1D, 0x80 }, + { 0x1E, 0xE2 }, + { 0x1F, 0x3C }, + + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+20 : xor esi, esi + { 0x20, 0x33 }, + { 0x21, 0xF6 }, + + // IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable+22 : cmp dl, 20h + { 0x22, 0x80 }, + { 0x23, 0xFA }, + { 0x24, 0x20 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_TextureFactor +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetRenderState_TextureFactor_1_0_5233 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_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 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x2F : nop + { 0x2F, 0x90 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x41 : retn 0x04 + { 0x41, 0xC2 }, // (Offset,Value)-Pair #6 + { 0x42, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_TextureFactor+0x4E : retn 0x04 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ZEnable +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_ZEnable_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x13, 0x8B }, + { 0x22, 0xC9 }, + { 0x34, 0x89 }, + { 0x46, 0x0C }, + { 0x5A, 0x74 }, + { 0x6D, 0x8B }, + { 0x7C, 0xCE }, + { 0x8E, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetIndices +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetIndices_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0F, 0x10 }, + { 0x20, 0xC7 }, + { 0x31, 0xC0 }, + { 0x42, 0x78 }, + { 0x53, 0xBE }, + { 0x64, 0x89 }, + { 0x75, 0x10 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTexture +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetTexture_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x44 }, + { 0x3E, 0xE8 }, + { 0x5F, 0x8B }, + { 0x7E, 0x00 }, + { 0x9E, 0x00 }, + { 0xBE, 0x89 }, + { 0xDE, 0xFF }, + { 0xFE, 0xE2 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureB +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetTextureB_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1B, 0x89 }, + { 0x2B, 0xF8 }, + { 0x3B, 0x51 }, + { 0x4B, 0x00 }, + { 0x5B, 0x1C }, + { 0x6B, 0x41 }, + { 0x7B, 0x00 }, + { 0x8B, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Begin +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_Begin_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0xE8 }, + { 0x0C, 0x8B }, + { 0x13, 0xE8 }, + { 0x1A, 0x24 }, + { 0x21, 0x00 }, + { 0x28, 0x89 }, + { 0x2F, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Swap +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_Swap_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1B, 0xE8 }, + { 0x38, 0xC3 }, + { 0x55, 0xC0 }, + { 0x72, 0x3F }, + { 0x8F, 0x8E }, + { 0xAC, 0xC6 }, + { 0xC9, 0xC0 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVertices +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_DrawIndexedVertices_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x5E }, + { 0x3E, 0x17 }, + { 0x5E, 0x00 }, + { 0x7E, 0x8B }, + { 0x9E, 0x89 }, + { 0xBE, 0x2B }, + { 0xDE, 0x00 }, + { 0xFE, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DPalette8_Lock2 +// ****************************************************************** +SOOVPA<13> IDirect3DPalette8_Lock2_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x8B }, + { 0x0A, 0x75 }, + { 0x12, 0x8B }, + { 0x13, 0x46 }, + { 0x16, 0x00 }, + { 0x1A, 0x5E }, + } +}; + +// ****************************************************************** +// * IDirect3DTexture8_LockRect +// ****************************************************************** +SOOVPA<17> IDirect3DTexture8_LockRect_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x14 }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x8B }, + { 0x17, 0x50 }, + { 0x20, 0xC2 }, + { 0x21, 0x14 }, + } +}; + +// ****************************************************************** +// * Get2DSurfaceDesc +// ****************************************************************** +SOOVPA<10> Get2DSurfaceDesc_1_0_5233 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // 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 + } +}; + +// ****************************************************************** +// * Get2DSurfaceDesc +// ****************************************************************** +SOOVPA<10> Get2DSurfaceDesc_1_0_5344 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // 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+0x15F4] + { 0x52, 0x8B }, // (Offset,Value)-Pair #5 + { 0x53, 0x90 }, // (Offset,Value)-Pair #6 + { 0x54, 0xF4 }, // (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 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetBackBuffer2 +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetBackBuffer2_1_0_5233 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetBackBuffer2+0x04 : cmp eax, 0xFFFFFFFF + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetBackBuffer+0x0D : jnz +0x19 + { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0E, 0x19 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_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 + + // IDirect3DDevice8_GetBackBuffer+0x40 : retn 0x04 + { 0x40, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x41, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_UpdateOverlay +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_UpdateOverlay_1_0_5233 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_UpdateOverlay+0x13 : mov [eax+0x17BC], ecx + { 0x13, 0x89 }, // (Offset,Value)-Pair #1 + { 0x14, 0x88 }, // (Offset,Value)-Pair #2 + { 0x15, 0xBC }, // (Offset,Value)-Pair #3 + { 0x16, 0x17 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_UpdateOverlay+0x92 : and eax, 0xFFFFFFFE + { 0x92, 0x83 }, // (Offset,Value)-Pair #5 + { 0x93, 0xE0 }, // (Offset,Value)-Pair #6 + { 0x94, 0xFE }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_UpdateOverlay+0xB0 : mov [esi+0x8930], eax + { 0xB0, 0x89 }, // (Offset,Value)-Pair #8 + { 0xB1, 0x86 }, // (Offset,Value)-Pair #9 + { 0xB2, 0x30 }, // (Offset,Value)-Pair #10 + { 0xB3, 0x89 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetOverlayUpdateStatus +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetOverlayUpdateStatus_1_0_5233 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetOverlayUpdateStatus+0x05 : mov ecx, [eax+0x1FB0] + { 0x05, 0x8B }, // (Offset,Value)-Pair #1 + { 0x06, 0x88 }, // (Offset,Value)-Pair #2 + { 0x07, 0xB0 }, // (Offset,Value)-Pair #3 + { 0x08, 0x1F }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_GetOverlayUpdateStatus+0x0C : mov esi, [eax+0x1988] + { 0x0C, 0x8B }, // (Offset,Value)-Pair #5 + { 0x0D, 0xB0 }, // (Offset,Value)-Pair #6 + { 0x0E, 0x88 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x19 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetOverlayUpdateStatus+0x16 : setnz dl + { 0x16, 0x0F }, // (Offset,Value)-Pair #9 + { 0x17, 0x95 }, // (Offset,Value)-Pair #10 + { 0x18, 0xC2 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_GetOverlayUpdateStatus+0x1C : retn + { 0x1C, 0xC3 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BlockUntilVerticalBlank +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_BlockUntilVerticalBlank_1_0_5233 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_BlockUntilVerticalBlank+0x05 : push 0; push 0; push 1 + { 0x05, 0x6A }, // (Offset,Value)-Pair #1 + { 0x06, 0x00 }, // (Offset,Value)-Pair #2 + { 0x07, 0x6A }, // (Offset,Value)-Pair #3 + { 0x08, 0x00 }, // (Offset,Value)-Pair #4 + { 0x09, 0x6A }, // (Offset,Value)-Pair #5 + { 0x0A, 0x01 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x17 : add eax, 0x195C + { 0x17, 0x05 }, // (Offset,Value)-Pair #7 + { 0x18, 0x5C }, // (Offset,Value)-Pair #8 + { 0x19, 0x19 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x1D : call [KrnlImport] + { 0x1D, 0xFF }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x23 : retn + { 0x23, 0xC3 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetShaderConstantMode +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetShaderConstantMode_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0xFD }, + { 0x3C, 0x8B }, + { 0x5B, 0x0B }, + { 0x7A, 0x56 }, + { 0x99, 0xC0 }, + { 0xB8, 0x00 }, + { 0xD7, 0x89 }, + { 0xF6, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetRenderTarget2 +// ****************************************************************** +SOOVPA<6> IDirect3DDevice8_GetRenderTarget2_1_0_5233 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x56 }, + { 0x06, 0x8B }, + { 0x0A, 0x00 }, + { 0x0E, 0x74 }, + { 0x16, 0x8B }, + { 0x17, 0xC6 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDepthStencilSurface2 +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_GetDepthStencilSurface2_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x56 }, + { 0x06, 0x8B }, + { 0x0A, 0x00 }, + { 0x0E, 0x75 }, + { 0x12, 0x5E }, + { 0x1A, 0x8B }, + { 0x1B, 0xC6 }, + } +}; + +// ****************************************************************** +// * IDirect3D8_GetDeviceCaps +// ****************************************************************** +SOOVPA<7> IDirect3D8_GetDeviceCaps_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x85 }, + { 0x0A, 0x08 }, + { 0x10, 0x83 }, + { 0x16, 0x08 }, + { 0x1C, 0xC2 }, + { 0x22, 0x0C }, + { 0x29, 0x33 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVertices +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_DrawVertices_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x12, 0x8B }, + { 0x26, 0x8B }, + { 0x37, 0x00 }, + { 0x4A, 0x27 }, + { 0x5D, 0x89 }, + { 0x70, 0x75 }, + { 0x83, 0x40 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetLight +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetLight_1_0_5233 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_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 + + // IDirect3DDevice8_SetLight+0x30 : shl eax, 0x04 + { 0x30, 0xC1 }, // (Offset,Value)-Pair #5 + { 0x31, 0xE0 }, // (Offset,Value)-Pair #6 + { 0x32, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetLight+0xBD : rep stosb + { 0xBD, 0xF3 }, // (Offset,Value)-Pair #8 + { 0xBE, 0xAB }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetLight+0xFD : mov ecx, [ebx+0x68] + { 0xFD, 0x8B }, // (Offset,Value)-Pair #10 + { 0xFE, 0x4B }, // (Offset,Value)-Pair #11 + { 0xFF, 0x68 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetLight +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetLight_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x00 }, + { 0x3E, 0x89 }, + { 0x5E, 0x00 }, + { 0x7E, 0x03 }, + { 0x9E, 0xC8 }, + { 0xBE, 0xC9 }, + { 0xDE, 0x03 }, + { 0xFE, 0xC1 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LightEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_LightEnable_1_0_5233 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_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 + + // IDirect3DDevice8_LightEnable+0x6B : test eax, eax + { 0x6B, 0x85 }, // (Offset,Value)-Pair #5 + { 0x6C, 0xC0 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_LightEnable+0x9E : mov eax, [eax+0x8C] + { 0x9E, 0x8B }, // (Offset,Value)-Pair #7 + { 0x9F, 0x80 }, // (Offset,Value)-Pair #8 + { 0xA0, 0x8C }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_LightEnable+0xBC : jz +0x12 + { 0xBC, 0x74 }, // (Offset,Value)-Pair #10 + { 0xBD, 0x12 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_LightEnable+0xE1 : retn 0x08 + { 0xE1, 0xC2 }, // (Offset,Value)-Pair #12 + { 0xE2, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LightEnable +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_LightEnable_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x8D }, + { 0x3E, 0xC7 }, + { 0x5E, 0xC7 }, + { 0x7E, 0x00 }, + { 0x9E, 0x85 }, + { 0xBE, 0x01 }, + { 0xDE, 0x00 }, + { 0xFE, 0x83 }, + } +}; + +// ****************************************************************** +// * IDirect3DVertexBuffer8_GetDesc +// ****************************************************************** +SOOVPA<7> IDirect3DVertexBuffer8_GetDesc_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x74 }, + { 0x0A, 0xC7 }, + { 0x0E, 0x00 }, + { 0x15, 0x89 }, + { 0x16, 0x46 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShader +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetVertexShader_1_0_5233 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShader+0x06 : test bl, 1 + { 0x06, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC3 }, // (Offset,Value)-Pair #2 + { 0x08, 0x01 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_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 + + // IDirect3DDevice8_SetVertexShader+0x90 : retn 0x04 + { 0x90, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x91, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_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 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTileNoWait +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetTileNoWait_1_0_5233 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTileNoWait+0x06 : sub esp, 0x18 + { 0x06, 0x83 }, // (Offset,Value)-Pair #1 + { 0x07, 0xEC }, // (Offset,Value)-Pair #2 + { 0x08, 0x18 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTileNoWait+0x15 : cmp [esi+4], eax + { 0x15, 0x39 }, // (Offset,Value)-Pair #4 + { 0x16, 0x46 }, // (Offset,Value)-Pair #5 + { 0x17, 0x04 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_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 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_AddRef +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_AddRef_1_0_5233 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_AddRef+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_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 + + // IDirect3DDevice8_AddRef+0x0B : inc ecx + { 0x0B, 0x41 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_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 + } +}; + +// ****************************************************************** +// * IDirectD3DDevice8_Release +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_Release_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0C, 0x00 }, + { 0x13, 0xCF }, + { 0x1A, 0x10 }, + { 0x21, 0x05 }, + { 0x28, 0x00 }, + { 0x2F, 0x89 }, + { 0x36, 0xC3 }, + } +}; + +// ****************************************************************** +// * IDirect3D8_KickOffAndWaitForIdle +// ****************************************************************** +SOOVPA<9> IDirect3D8_KickOffAndWaitForIdle_1_0_5233 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_KickOffAndWaitForIdle+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3D8_KickOffAndWaitForIdle+0x05 : mov ecx, [eax+0x2C] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x48 }, // (Offset,Value)-Pair #3 + { 0x07, 0x2C }, // (Offset,Value)-Pair #4 + + // IDirect3D8_KickOffAndWaitForIdle+0x08 : push 2 + { 0x08, 0x6A }, // (Offset,Value)-Pair #5 + { 0x09, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_KickOffAndWaitForIdle+0x0A : push ecx + { 0x0A, 0x51 }, // (Offset,Value)-Pair #7 + + // IDirect3D8_KickOffAndWaitForIdle+0x0B : call [addr] + { 0x0B, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3D8_KickOffAndWaitForIdle+0x10 : retn + { 0x10, 0xC3 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CopyRects +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_CopyRects_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0xE1 }, + { 0x42, 0x84 }, + { 0x5E, 0x24 }, + { 0x7E, 0x8B }, + { 0x9E, 0x1C }, + { 0xBE, 0x00 }, + { 0xDE, 0xBD }, + { 0xFE, 0x4C }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetScissors +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetScissors_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x2C }, + { 0x28, 0x44 }, + { 0x60, 0x38 }, + { 0x7D, 0x54 }, + { 0xAC, 0x03 }, + { 0xB8, 0xD9 }, + { 0xD4, 0x1C }, + { 0xFE, 0x4C }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetScreenSpaceOffset +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetScreenSpaceOffset_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetScreenSpaceOffset+0x13 : fstp [esi+0x0AA8] + { 0x13, 0xD9 }, // (Offset,Value)-Pair #1 + { 0x14, 0x9E }, // (Offset,Value)-Pair #2 + { 0x15, 0xA8 }, // (Offset,Value)-Pair #3 + { 0x16, 0x0A }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetScreenSpaceOffset+0x33 : jb +0x05 + { 0x33, 0x72 }, // (Offset,Value)-Pair #5 + { 0x34, 0x05 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetScreenSpaceOffset+0x46 : retn 0x08 + { 0x46, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x47, 0x08 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleMode +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_MultiSampleMode_1_0_5233 = +{ + 0, // Large == 0 + 13, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x04 : mov ecx, ds:dword_XXXX + { 0x04, 0x8B }, + { 0x05, 0x0D }, + + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x0F : mov edx, [ecx+XXXXh] + { 0x0F, 0x8B }, + { 0x10, 0x91 }, + + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x15 : cmp edx, [ecx+XXXXh] + { 0x15, 0x3B }, + { 0x16, 0x91 }, + + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x1B : jnz short + { 0x1B, 0x75 }, + { 0x1C, 0x07 }, + + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x1D : xor edx, edx + { 0x1D, 0x33 }, + { 0x1E, 0xD2 }, + + // IDirect3DDevice8_SetRenderState_MultiSampleMode+0x24 : retn 4 + { 0x24, 0xC2 }, + { 0x25, 0x04 }, + { 0x26, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + { 0x0B, XREF_D3DRS_MULTISAMPLERENDERTARGETMODE }, + + { 0x03, 0x04 }, + { 0x0F, 0x8B }, + { 0x15, 0x3B }, + { 0x1C, 0x14 }, + { 0x1D, 0x8D }, + { 0x2C, 0xE8 }, + { 0x32, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + { 0x0B, XREF_D3DRS_MULTISAMPLERENDERTARGETMODE }, + + { 0x03, 0x04 }, + { 0x0F, 0x8B }, + { 0x15, 0x3B }, + { 0x1C, 0x07 }, // ** + { 0x1D, 0x33 }, // ** + { 0x1F, 0xE8 }, // ** + { 0x25, 0x04 }, // ** + } +}; + +// ****************************************************************** +// * D3D::CommonSetRenderTarget +// ****************************************************************** +SOOVPA<8> D3D_CommonSetRenderTarget_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_COMMONSETRENDERTARGET, // XRef Is Saved + 0, // XRef Not Used + + { + { 0x02, 0x1C }, + { 0x20, 0x30 }, + { 0x6B, 0x06 }, + { 0x85, 0x4C }, + { 0xA5, 0x10 }, + { 0xB8, 0x0C }, + { 0xDC, 0xD9 }, + { 0xFF, 0x75 }, + } +}; + +// ****************************************************************** +// * D3D::SetFence +// ****************************************************************** +SOOVPA<7> D3D_SetFence_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_D3D_SETFENCE, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x0E, 0x05 }, + { 0x18, 0xC9 }, + { 0x3E, 0x3F }, + { 0x5E, 0x28 }, + { 0x86, 0x5D }, + { 0x98, 0xE8 }, + { 0xA2, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_InsertFence +// ****************************************************************** +SOOVPA<5> IDirect3DDevice8_InsertFence_1_0_5233 = +{ + 0, // Large == 0 + 5, // Count == 5 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x03, XREF_D3D_SETFENCE }, + + { 0x00, 0x6A }, + { 0x01, 0x00 }, + { 0x02, 0xE8 }, + { 0x07, 0xC3 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_IsFencePending +// ****************************************************************** +SOOVPA<6> IDirect3DDevice8_IsFencePending_1_0_5233 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x01, XREF_D3DDEVICE }, + + { 0x07, 0x30 }, + { 0x0A, 0x2C }, + { 0x10, 0xD1 }, + { 0x17, 0x1B }, + { 0x1C, 0x04 }, + } +}; + +// ****************************************************************** +// * D3D::BlockOnTime +// ****************************************************************** +SOOVPA<6> D3D_BlockOnTime_1_0_5233 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XREF_D3D_BLOCKONTIME, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x09, 0x30 }, + { 0x27, 0x07 }, + { 0x55, 0x7E }, + { 0x7B, 0x58 }, + { 0xE3, 0x80 }, + { 0xF5, 0x2C }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BlockOnFence +// ****************************************************************** +SOOVPA<6> IDirect3DDevice8_BlockOnFence_1_0_5233 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x08, XREF_D3D_BLOCKONTIME }, + + { 0x00, 0x8B }, + { 0x02, 0x24 }, + { 0x04, 0x6A }, + { 0x06, 0x50 }, + { 0x0D, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPalette +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetPalette_1_0_5233 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPalette+0x0D : mov eax, [edi+esi*4+0x0A88] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0E, 0x84 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xBE }, // (Offset,Value)-Pair #3 + { 0x10, 0x48 }, // (Offset,Value)-Pair #4 + { 0x11, 0x0B }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetPalette+0x51 : add ebp, 0x80000 + { 0x51, 0x81 }, // (Offset,Value)-Pair #6 + { 0x52, 0xC5 }, // (Offset,Value)-Pair #7 + { 0x53, 0x00 }, // (Offset,Value)-Pair #8 + { 0x54, 0x00 }, // (Offset,Value)-Pair #9 + { 0x55, 0x08 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetPalette+0x8A : retn 0x08 + { 0x8A, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x8B, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetFlickerFilter +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetFlickerFilter_1_0_5233 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetFlickerFilter+0x1C : mov eax, [eax+0x17C8] + { 0x1C, 0x8B }, // (Offset,Value)-Pair #1 + { 0x1D, 0x80 }, // (Offset,Value)-Pair #2 + { 0x1E, 0xC8 }, // (Offset,Value)-Pair #3 + { 0x1F, 0x17 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetFlickerFilter+0x22 : push 0; push esi; push 0x0B; push eax + { 0x22, 0x6A }, // (Offset,Value)-Pair #5 + { 0x23, 0x00 }, // (Offset,Value)-Pair #6 + { 0x24, 0x56 }, // (Offset,Value)-Pair #7 + { 0x25, 0x6A }, // (Offset,Value)-Pair #8 + { 0x26, 0x0B }, // (Offset,Value)-Pair #9 + { 0x27, 0x50 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetFlickerFilter+0x3F : retn 0x04 + { 0x3F, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x40, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetFlickerFilter +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetFlickerFilter_1_0_5344 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetFlickerFilter+0x1C : mov eax, [eax+0x17C8] + { 0x1C, 0x8B }, // (Offset,Value)-Pair #1 + { 0x1D, 0x80 }, // (Offset,Value)-Pair #2 + { 0x1E, 0xF8 }, // (Offset,Value)-Pair #3 + { 0x1F, 0x17 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetFlickerFilter+0x22 : push 0; push esi; push 0x0B; push eax + { 0x22, 0x6A }, // (Offset,Value)-Pair #5 + { 0x23, 0x00 }, // (Offset,Value)-Pair #6 + { 0x24, 0x56 }, // (Offset,Value)-Pair #7 + { 0x25, 0x6A }, // (Offset,Value)-Pair #8 + { 0x26, 0x0B }, // (Offset,Value)-Pair #9 + { 0x27, 0x50 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetFlickerFilter+0x3F : retn 0x04 + { 0x3F, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x40, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetFlickerFilter +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetSoftDisplayFilter_1_0_5233 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetSoftDisplayFilter+0x25 : mov edx, [eax+0x17C8] + { 0x25, 0x8B }, // (Offset,Value)-Pair #1 + { 0x26, 0x90 }, // (Offset,Value)-Pair #2 + { 0x27, 0xC8 }, // (Offset,Value)-Pair #3 + { 0x28, 0x17 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetSoftDisplayFilter+0x2B : push 0; push esi; push 0x0E; push edx + { 0x2B, 0x6A }, // (Offset,Value)-Pair #5 + { 0x2C, 0x00 }, // (Offset,Value)-Pair #6 + { 0x2D, 0x56 }, // (Offset,Value)-Pair #7 + { 0x2E, 0x6A }, // (Offset,Value)-Pair #8 + { 0x2F, 0x0E }, // (Offset,Value)-Pair #9 + { 0x30, 0x52 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetSoftDisplayFilter+0x4E : retn 0x04 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetFlickerFilter +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetSoftDisplayFilter_1_0_5344 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetSoftDisplayFilter+0x25 : mov edx, [eax+0x17F8] + { 0x25, 0x8B }, // (Offset,Value)-Pair #1 + { 0x26, 0x90 }, // (Offset,Value)-Pair #2 + { 0x27, 0xF8 }, // (Offset,Value)-Pair #3 + { 0x28, 0x17 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetSoftDisplayFilter+0x2B : push 0; push esi; push 0x0E; push edx + { 0x22, 0x6A }, // (Offset,Value)-Pair #5 + { 0x23, 0x00 }, // (Offset,Value)-Pair #6 + { 0x24, 0x56 }, // (Offset,Value)-Pair #7 + { 0x25, 0x6A }, // (Offset,Value)-Pair #8 + { 0x26, 0x0E }, // (Offset,Value)-Pair #9 + { 0x27, 0x52 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetSoftDisplayFilter+0x4E : retn 0x04 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_TwoSidedLighting +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetTextureState_TwoSidedLighting_1_0_5344 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x09 : cmp eax, [esi+4] + { 0x09, 0x3B }, // (Offset,Value)-Pair #3 + { 0x0A, 0x46 }, // (Offset,Value)-Pair #4 + { 0x0B, 0x04 }, // (Offset,Value)-Pair #5 + + // *** + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x18 : mov dword ptr [eax], 417C4h + { 0x18, 0xC7 }, // (Offset,Value)-Pair #6 + { 0x19, 0x00 }, // (Offset,Value)-Pair #7 + { 0x1A, 0xC4 }, // (Offset,Value)-Pair #8 + { 0x1B, 0x17 }, // (Offset,Value)-Pair #9 + { 0x1C, 0x04 }, // (Offset,Value)-Pair #10 + { 0x1D, 0x00 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetTextureState_TwoSidedLighting+0x7D : retn 0x04 + { 0x7D, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x7E, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Unknown1 +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_Unknown1_1_0_5233 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Unknown1+0x00 : xor eax, eax + { 0x00, 0x33 }, + { 0x01, 0xC0 }, + // IDirect3DDevice8_Unknown1+0x13 : call ds:AvSendTVEncoderOption + { 0x13, 0xFF }, + { 0x14, 0x15 }, + { 0x15, 0x08 }, + { 0x16, 0x94 }, + { 0x17, 0x19 }, + { 0x18, 0x00 }, + // IDirect3DDevice8_Unknown1+0x1E : retn + { 0x1E, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3DDevice_BeginPush +// ****************************************************************** +SOOVPA<6> D3DDevice_BeginPush_1_0_5344 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0x6A }, + { 0x07, 0x00 }, + { 0x0D, 0x8B }, + { 0x0E, 0x44 }, + { 0x12, 0x89 }, + { 0x16, 0xE9 }, + } +}; + +// ****************************************************************** +// * D3DDevice_EndPush +// ****************************************************************** +SOOVPA<8> D3DDevice_EndPush_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x8B }, + { 0x02, 0x24 }, + { 0x04, 0x8B }, + { 0x0A, 0x89 }, + { 0x0B, 0x01 }, + { 0x0C, 0xC2 }, + { 0x0D, 0x04 }, + { 0x0E, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVerticalBlankCallback +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetVerticalBlankCallback_1_0_5233 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVerticalBlankCallback+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x04 : mov ecx, [addr] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x0D }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x0A : mov [ecx+0x1958], eax + { 0x0A, 0x89 }, // (Offset,Value)-Pair #7 + { 0x0B, 0x81 }, // (Offset,Value)-Pair #8 + { 0x0C, 0x58 }, // (Offset,Value)-Pair #9 + { 0x0D, 0x19 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x10 : retn 0x04 + { 0x10, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x11, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_SampleAlpha +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_SampleAlpha_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0xC1 }, + { 0x15, 0x0B }, + { 0x1C, 0x8B }, + { 0x28, 0x85 }, + { 0x30, 0x07 }, + { 0x3B, 0xC7 }, + { 0x44, 0x83 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleMask +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderState_MultiSampleMask_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0xA3 }, + { 0x12, 0x56 }, + { 0x1C, 0x8B }, + { 0x2A, 0x85 }, + { 0x30, 0x01 }, + { 0x3D, 0xC7 }, + { 0x44, 0x78 }, + { 0x4E, 0x04 }, + } +}; + +// ****************************************************************** +// * Direct3D_EnumAdapterModes +// ****************************************************************** +SOOVPA<8> Direct3D_EnumAdapterModes_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x20, 0x8B }, + { 0x3E, 0xE3 }, + { 0x5E, 0x75 }, + { 0x7E, 0x00 }, + { 0x9E, 0x00 }, + { 0xBE, 0x0F }, + { 0xE2, 0x89 }, + { 0xFE, 0x5D }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexData4f +// ****************************************************************** +SOOVPA<7> D3DDevice_SetVertexData4f_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0x46 }, + { 0x16, 0x08 }, + { 0x22, 0x09 }, + { 0x2E, 0x24 }, + { 0x3A, 0x24 }, + { 0x46, 0x8B }, + { 0x52, 0x14 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexData2f +// ****************************************************************** +SOOVPA<8> D3DDevice_SetVertexData2f_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0C, 0x72 }, + { 0x13, 0x8B }, + { 0x1A, 0x80 }, + { 0x21, 0x0C }, + { 0x28, 0x89 }, + { 0x2F, 0xC0 }, + { 0x36, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_End +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_End_1_0_5233 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_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 + + // IDirect3DDevice8_End+0x28 : test ah, 0x10 + { 0x28, 0xF6 }, // (Offset,Value)-Pair #7 + { 0x29, 0xC4 }, // (Offset,Value)-Pair #8 + { 0x2A, 0x10 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_End+0x2B : jz +0x07 + { 0x2B, 0x74 }, // (Offset,Value)-Pair #10 + { 0x2C, 0x07 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_End+0x3C : retn + { 0x3C, 0xC3 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * D3DDevice_SetViewport +// ****************************************************************** +SOOVPA<8> D3DDevice_SetViewport_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x87 }, + { 0x3E, 0xC0 }, + { 0x5E, 0x49 }, + { 0x7E, 0xD6 }, + { 0x9E, 0xE2 }, + { 0xBE, 0xC1 }, + { 0xDE, 0xC9 }, + { 0xFE, 0x14 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetTransform +// ****************************************************************** +SOOVPA<8> D3DDevice_SetTransform_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x8B }, + { 0x3E, 0x00 }, + { 0x5E, 0xC4 }, + { 0x7E, 0x62 }, + { 0x9E, 0x00 }, + { 0xBE, 0x42 }, + { 0xDE, 0x42 }, + { 0xFE, 0xCB }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetBackBuffer2 +// ****************************************************************** +SOOVPA<7> D3DDevice_GetBackBuffer2_1_0_5344 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x10, 0x01 }, + { 0x19, 0x15 }, + { 0x22, 0x8B }, + { 0x2B, 0xC0 }, + { 0x34, 0x15 }, + { 0x3D, 0x8B }, + } +}; + + +// ****************************************************************** +// * D3DDevice_SetVerticalBlankCallback +// ****************************************************************** +SOOVPA<7> D3DDevice_SetVerticalBlankCallback_1_0_5344 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x0A, 0x89 }, + { 0x0B, 0x81 }, + { 0x0C, 0x88 }, + { 0x0D, 0x19 }, + { 0x10, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetSwapCallback +// ****************************************************************** +SOOVPA<7> D3DDevice_SetSwapCallback_1_0_5344 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x0A, 0x89 }, + { 0x0B, 0x81 }, + { 0x0C, 0x84 }, + { 0x0D, 0x19 }, + { 0x10, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetViewport +// ****************************************************************** +SOOVPA<7> D3DDevice_GetViewport_1_0_5344 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x56 }, + { 0x06, 0x57 }, + { 0x0A, 0x0C }, + { 0x0E, 0x0A }, + { 0x12, 0x06 }, + { 0x16, 0xF3 }, + { 0x1A, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderTargetFast +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderTargetFast_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0xC9 }, + { 0x3C, 0x89 }, + { 0x5F, 0x8B }, + { 0x7A, 0x04 }, + { 0x99, 0x04 }, + { 0xB8, 0x02 }, + { 0xD7, 0x0C }, + { 0xF6, 0xC5 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetScreenSpaceOffset +// ****************************************************************** +SOOVPA<7> D3DDevice_SetScreenSpaceOffset_1_0_5344 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x44 }, + { 0x12, 0xCE }, + { 0x1F, 0xD8 }, + { 0x26, 0x0A }, + { 0x30, 0x3B }, + { 0x3A, 0x8B }, + { 0x44, 0x06 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetScissors +// ****************************************************************** +SOOVPA<8> D3DDevice_SetScissors_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0x44 }, + { 0x3C, 0x8B }, + { 0x5D, 0xD9 }, + { 0x7D, 0xD8 }, + { 0x99, 0x0A }, + { 0xB8, 0xE8 }, + { 0xD7, 0x24 }, + { 0xF6, 0x8B }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetMaterial +// ****************************************************************** +SOOVPA<9> D3DDevice_SetMaterial_1_0_5344 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x08 }, + { 0x0C, 0x81 }, + { 0x0E, 0xE0 }, + { 0x10, 0x00 }, + { 0x16, 0x00 }, + { 0x1F, 0x81 }, + { 0x22, 0x90 }, + { 0x2C, 0x5E }, + { 0x2E, 0x04 }, + } +}; + +// ****************************************************************** +// * D3D8_1_0_5233 +// ****************************************************************** +OOVPATable D3D8_1_0_5233[] = +{ + // IDirect3D8::CreateDevice + { + (OOVPA*)&IDirect3D8_CreateDevice_1_0_5233, + + XTL::EmuIDirect3D8_CreateDevice, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CreateDevice" + #endif + }, + // IDirect3DDevice8::GetDisplayFieldStatus + { + (OOVPA*)&IDirect3DDevice8_GetDisplayFieldStatus_1_0_5233, + + XTL::EmuIDirect3DDevice8_GetDisplayFieldStatus, + + #ifdef _DEBUG_TRACE + "IDirect3DDevice8_GetDisplayFieldStatus" + #endif + }, + // IDirect3D8::CheckDeviceFormat (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3D8_CheckDeviceFormat_1_0_4361, + + XTL::EmuIDirect3D8_CheckDeviceFormat, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CheckDeviceFormat" + #endif + }, + // IDirect3D8::KickOffAndWaitForIdle + { + (OOVPA*)&IDirect3D8_KickOffAndWaitForIdle_1_0_5233, + + XTL::EmuIDirect3D8_KickOffAndWaitForIdle, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_KickOffAndWaitForIdle" + #endif + }, + // IDirect3DDevice8::CopyRects + { + (OOVPA*)&IDirect3DDevice8_CopyRects_1_0_5233, + + XTL::EmuIDirect3DDevice8_CopyRects, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CopyRects" + #endif + }, + // IDirect3DDevice8::SetScissors + { + (OOVPA*)&IDirect3DDevice8_SetScissors_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetScissors, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScissors" + #endif + }, + // IDirect3DDevice8::GetGammaRamp (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetGammaRamp_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetGammaRamp" + #endif + }, + // IDirect3DDevice8::SetGammaRamp (* unchanged since 4928 *) + { + (OOVPA*)&IDirect3DDevice8_SetGammaRamp_1_0_4928, + + XTL::EmuIDirect3DDevice8_SetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetGammaRamp" + #endif + }, + // IDirect3DDevice8_GetDeviceCaps (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_GetDeviceCaps_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetDeviceCaps, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDeviceCaps" + #endif + }, + // IDirect3DDevice8::SetShaderConstantMode + { + (OOVPA*)&IDirect3DDevice8_SetShaderConstantMode_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetShaderConstantMode" + #endif + }, + // IDirect3DDevice8::GetRenderTarget2 + { + (OOVPA*)&IDirect3DDevice8_GetRenderTarget2_1_0_5233, + + XTL::EmuIDirect3DDevice8_GetRenderTarget2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetRenderTarget2" + #endif + }, + // IDirect3DDevice8::GetDepthStencilSurface2 + { + (OOVPA*)&IDirect3DDevice8_GetDepthStencilSurface2_1_0_5233, + + XTL::EmuIDirect3DDevice8_GetDepthStencilSurface2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDepthStencilSurface2" + #endif + }, + // D3D::CommonSetRenderTarget (XREF) + { + (OOVPA*)&D3D_CommonSetRenderTarget_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "D3D::CommonSetRenderTarget (XREF)" + #endif + }, + // IDirect3DDevice8::SetRenderTarget (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderTarget_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTarget" + #endif + }, + // IDirect3DDevice8::AddRef + { + (OOVPA*)&IDirect3DDevice8_AddRef_1_0_5233, + + XTL::EmuIDirect3DDevice8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_AddRef" + #endif + }, + // IDirect3DDevice8::Reset (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_Reset_1_0_4134, + + XTL::EmuIDirect3DDevice8_Reset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Reset" + #endif + }, + // IDirect3DDevice8::SetTileNoWait + { + (OOVPA*)&IDirect3DDevice8_SetTileNoWait_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetTileNoWait, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTileNoWait" + #endif + }, + // IDirect3DDevice8::CreateIndexBuffer2 (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_CreateIndexBuffer2_1_0_4627, + + XTL::EmuIDirect3DDevice8_CreateIndexBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateIndexBuffer2" + #endif + }, + // IDirect3DDevice8::CreateVertexShader (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreateVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreateVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexShader" + #endif + }, + // IDirect3DDevice8::BeginStateBlock + { + (OOVPA*)&IDirect3DDevice8_BeginStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_BeginStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginStateBlock" + #endif + }, + // IDirect3DDevice8::EndStateBlock + { + (OOVPA*)&IDirect3DDevice8_EndStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_EndStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndStateBlock" + #endif + }, + // D3DDevice_RunVertexStateShader (* unchanged since 4627 *) + { + (OOVPA*)&X_D3DDevice_RunVertexStateShader_1_0_4627, + + XTL::EmuIDirect3DDevice8_RunVertexStateShader, + + #ifdef _DEBUG_TRACE + "D3DDevice_RunVertexStateShader" + #endif + }, + // D3DDevice_GetVertexShaderSize (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_GetVertexShaderSize_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVertexShaderSize, + + #ifdef _DEBUG_TRACE + "D3DDevice_GetVertexShaderSize" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant1 (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant1_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant1, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant1" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant4 (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant4_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant4, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant4" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstantNotInline + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstantNotInline_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstantNotInline, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstantNotInline" + #endif + }, + // IDirect3DDevice8::DeletePixelShader (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_DeletePixelShader_1_0_4134, + + XTL::EmuIDirect3DDevice8_DeletePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeletePixelShader" + #endif + }, + // IDirect3DDevice8::CreatePixelShader (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_CreatePixelShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_CreatePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePixelShader" + #endif + }, + // IDirect3DDevice8::SetPixelShader + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + }, + // IDirect3DDevice8::CreateTexture2 + { + (OOVPA*)&IDirect3DDevice8_CreateTexture2_1_0_5233, + + XTL::EmuIDirect3DDevice8_CreateTexture2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture2" + #endif + }, + // IDirect3DDevice8::CreateTexture2C (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_CreateTexture2C_1_0_4627, + + XTL::EmuIDirect3DDevice8_CreateTexture2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture2C" + #endif + }, + // IDirect3DDevice8::SetIndices + { + (OOVPA*)&IDirect3DDevice8_SetIndices_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // IDirect3DDevice8::SetTexture + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::SetTextureB + { + (OOVPA*)&IDirect3DDevice8_SetTextureB_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureB" + #endif + }, + // IDirect3DDevice8::SetTextureC (* unchanged since 4928 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureC_1_0_4928, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureC" + #endif + }, + // IDirect3DDevice8::GetDisplayMode (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_GetDisplayMode_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetDisplayMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDisplayMode" + #endif + }, + // IDirect3DDevice8::SetVertexData2f (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexData2f_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::Begin + { + (OOVPA*)&IDirect3DDevice8_Begin_1_0_5233, + + XTL::EmuIDirect3DDevice8_Begin, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Begin" + #endif + }, + // IDirect3DDevice8::SetVertexData2f + { + (OOVPA*)&D3DDevice_SetVertexData2f_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::End + { + (OOVPA*)&IDirect3DDevice8_End_1_0_5233, + + XTL::EmuIDirect3DDevice8_End, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_End" + #endif + }, + // IDirect3DDevice8::Clear + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_5233, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + // IDirect3DDevice8::Swap + { + (OOVPA*)&IDirect3DDevice8_Swap_1_0_5233, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap" + #endif + }, + // IDirect3DDevice8::EnableOverlay (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_EnableOverlay_1_0_4361, + + XTL::EmuIDirect3DDevice8_EnableOverlay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EnableOverlay" + #endif + }, + // IDirect3DDevice8::CreateVertexBuffer2 (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_CreateVertexBuffer2_1_0_4627, + + XTL::EmuIDirect3DDevice8_CreateVertexBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexBuffer2" + #endif + }, + // IDirect3DDevice8::SetTextureState_TexCoordIndex (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, + // IDirect3DDevice8::SetTextureState_BumpEnv (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BumpEnv_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BumpEnv, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BumpEnv" + #endif + }, + // IDirect3DDevice8::SetTextureState_BorderColor (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BorderColor_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BorderColor" + #endif + }, + // IDirect3DDevice8::SetTextureState_ColorKeyColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_ColorKeyColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_ColorKeyColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_VertexBlend (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_VertexBlend_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_VertexBlend" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullModeB (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullModeB_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullModeB" + #endif + }, + // IDirect3DDevice8::SetRenderState_NormalizeNormals (* unchanged since 4432 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormals" + #endif + }, + // IDirect3DDevice8::SetRenderState_TextureFactor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZBias (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZBias_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZBias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZBias" + #endif + }, + // IDirect3DDevice8::SetRenderState_EdgeAntiAlias (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_BackFillMode (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_BackFillMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_BackFillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_BackFillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_FogColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_Dxt1NoiseEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // ******* + // Duplicated functions generally dangerous, but until such time as XDK 5344 + // has it's own OOVP's, fine here + // ******* + // IDirect3DDevice8::SetRenderState_Dxt1NoiseEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_Simple (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilEnable (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilFail (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // IDirect3DDevice8::SetRenderState_LineWidth (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_LineWidth_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_LineWidth, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LineWidth" + #endif + }, + // IDirect3DDevice8::SetRenderState_OcclusionCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZCmpAlwaysRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_DoNotCullUncompressed (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleAntiAlias (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleMode_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleRenderTargetMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode" + #endif + }, + // ******* + // Duplicated functions generally dangerous, but until such time as XDK 5344 + // has it's own OOVP's, fine here + // ******* + // IDirect3DDevice8::SetRenderState_MultiSampleRenderTargetMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_ShadowFunc (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_ShadowFunc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ShadowFunc" + #endif + }, + // IDirect3DDevice8::SwitchTexture (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SwitchTexture_1_0_4361, + + XTL::EmuIDirect3DDevice8_SwitchTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SwitchTexture" + #endif + }, + // IDirect3DDevice8::SetRenderState_YuvEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_YuvEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_YuvEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_YuvEnable" + #endif + }, + // IDirect3DDevice8::SetTransform (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTransform_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTransform" + #endif + }, + // IDirect3DDevice8::SetStreamSource (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // IDirect3D8::GetDeviceCaps + { + (OOVPA*)&IDirect3D8_GetDeviceCaps_1_0_5233, + + XTL::EmuIDirect3D8_GetDeviceCaps, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_GetDeviceCaps" + #endif + }, + // IDirect3DDevice8::SetLight + { + (OOVPA*)&IDirect3DDevice8_SetLight_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight" + #endif + }, + // IDirect3DDevice8::SetLight + { + (OOVPA*)&IDirect3DDevice8_SetLight_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight (5344)" + #endif + }, + // IDirect3DDevice8::LightEnable + { + (OOVPA*)&IDirect3DDevice8_LightEnable_1_0_5233, + + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable" + #endif + }, + // IDirect3DDevice8::LightEnable + { + (OOVPA*)&IDirect3DDevice8_LightEnable_1_0_5344, + + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable (5344)" + #endif + }, + // IDirect3DDevice8::DrawIndexedVertices + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_5233, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, + // IDirect3DDevice8::SetMaterial (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetMaterial" + #endif + }, + // IDirect3DDevice8::SetMaterial + { + (OOVPA*)&D3DDevice_SetMaterial_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetMaterial (5344)" + #endif + }, + // IDirect3DVertexBuffer8::GetDesc + { + (OOVPA*)&IDirect3DVertexBuffer8_GetDesc_1_0_5233, + + XTL::EmuIDirect3DVertexBuffer8_GetDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_GetDesc" + #endif + }, + // IDirect3DVertexBuffer8::Lock2 (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock2_1_0_4627, + + XTL::EmuIDirect3DVertexBuffer8_Lock2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock2" + #endif + }, + // IDirect3DResource8::Register (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Register_1_0_3925, + + XTL::EmuIDirect3DResource8_Register, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Register" + #endif + }, + // IDirect3DDevice8::GetBackBuffer2 + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer2_1_0_5233, + + XTL::EmuIDirect3DDevice8_GetBackBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer2" + #endif + }, + // IDirect3DDevice8::UpdateOverlay + { + (OOVPA*)&IDirect3DDevice8_UpdateOverlay_1_0_5233, + + XTL::EmuIDirect3DDevice8_UpdateOverlay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_UpdateOverlay" + #endif + }, + // IDirect3DDevice8::GetOverlayUpdateStatus + { + (OOVPA*)&IDirect3DDevice8_GetOverlayUpdateStatus_1_0_5233, + + XTL::EmuIDirect3DDevice8_GetOverlayUpdateStatus, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetOverlayUpdateStatus" + #endif + }, + // IDirect3DDevice8::BlockUntilVerticalBlank + { + (OOVPA*)&IDirect3DDevice8_BlockUntilVerticalBlank_1_0_5233, + + XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockUntilVerticalBlank" + #endif + }, + // IDirect3DDevice8::GetViewport (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_GetViewport_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetViewport" + #endif + }, + // IDirect3DDevice8::SetViewport + { + (OOVPA*)&IDirect3DDevice8_SetViewport_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport" + #endif + }, + // IDirect3DResource8::AddRef (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_AddRef_1_0_3925, + + XTL::EmuIDirect3DResource8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_AddRef" + #endif + }, + // IDirect3DResource8::Release (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Release_1_0_3925, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Release" + #endif + }, + // IDirect3DResource8::IsBusy (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DResource8_IsBusy_1_0_4361, + + XTL::EmuIDirect3DResource8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_IsBusy" + #endif + }, + // IDirect3DPalette8::Lock2 + { + (OOVPA*)&IDirect3DPalette8_Lock2_1_0_5233, + + XTL::EmuIDirect3DPalette8_Lock2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DPalette8_Lock2" + #endif + }, + // IDirect3DTexture8::LockRect + { + (OOVPA*)&IDirect3DTexture8_LockRect_1_0_5233, + + XTL::EmuIDirect3DTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_LockRect" + #endif + }, + // Lock2DSurface (* unchanged since 3925 *) + { + (OOVPA*)&Lock2DSurface_1_0_3925, + + XTL::EmuLock2DSurface, + + #ifdef _DEBUG_TRACE + "EmuLock2DSurface" + #endif + }, + // Get2DSurfaceDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_5233, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc" + #endif + }, + // Get2DSurfaceDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_5344, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc (5344)" + #endif + }, + // IDirect3DSurface8::GetDesc (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DSurface8_GetDesc_1_0_4361, + + XTL::EmuIDirect3DSurface8_GetDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_GetDesc" + #endif + }, + // IDirect3DSurface8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DSurface8_LockRect_1_0_3925, + + XTL::EmuIDirect3DSurface8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_LockRect" + #endif + }, + // IDirect3DBaseTexture8::GetLevelCount (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DBaseTexture8_GetLevelCount_1_0_4361, + + XTL::EmuIDirect3DBaseTexture8_GetLevelCount, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DBaseTexture8_GetLevelCount" + #endif + }, + // IDirect3DTexture8::GetSurfaceLevel2 (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DTexture8_GetSurfaceLevel2_1_0_4627, + + XTL::EmuIDirect3DTexture8_GetSurfaceLevel2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetSurfaceLevel2" + #endif + }, + // IDirect3DDevice8::SetVertexShader + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::DrawVertices + { + (OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_5233, + + XTL::EmuIDirect3DDevice8_DrawVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVertices" + #endif + }, + // IDirect3DDevice8::GetViewportOffsetAndScale (* unchanged since 4627 *) + { + (OOVPA*)&X_D3DDevice_GetViewportOffsetAndScale_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetViewportOffsetAndScale, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetViewportOffsetAndScale" + #endif + }, + // IDirect3DDevice8::DeleteVertexShader (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_DeleteVertexShader_1_0_3925, + + XTL::EmuIDirect3DDevice8_DeleteVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteVertexShader" + #endif + }, + // IDirect3DDevice8::SelectVertexShaderDirect (* unchanged since 4627 *) + { + (OOVPA*)&X_D3DDevice_SelectVertexShaderDirect_1_0_4627, + + XTL::EmuIDirect3DDevice8_SelectVertexShaderDirect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SelectVertexShaderDirect" + #endif + }, + // IDirect3DDevice8::LoadVertexShader + { + (OOVPA*)&IDirect3DDevice8_LoadVertexShader_1_0_5233, + + XTL::EmuIDirect3DDevice8_LoadVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShader" + #endif + }, + // IDirect3DDevice::Release + { + (OOVPA*)&IDirect3DDevice8_Release_1_0_5233, + XTL::EmuIDirect3DDevice8_Release, + + #ifdef _DEBUG_TRACE + "D3DDevice_Release" + #endif + }, + // IDirect3DDevice8::SetScreenSpaceOffset + { + (OOVPA*)&IDirect3DDevice8_SetScreenSpaceOffset_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetScreenSpaceOffset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScreenSpaceOffset" + #endif + }, + // D3D::SetFence (XREF) + { + (OOVPA*)&D3D_SetFence_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "D3D::SetFence (XREF)" + #endif + }, + // IDirect3DDevice8::InsertFence + { + (OOVPA*)&IDirect3DDevice8_InsertFence_1_0_5233, + + XTL::EmuIDirect3DDevice8_InsertFence, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_InsertFence" + #endif + }, + // IDirect3DDevice8::IsFencePending + { + (OOVPA*)&IDirect3DDevice8_IsFencePending_1_0_5233, + + XTL::EmuIDirect3DDevice8_IsFencePending, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_IsFencePending" + #endif + }, + // D3D::BlockOnTime (XREF) + { + (OOVPA*)&D3D_BlockOnTime_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "D3D::BlockOnTime (XREF)" + #endif + }, + // IDirect3DDevice8::BlockOnFence + { + (OOVPA*)&IDirect3DDevice8_BlockOnFence_1_0_5233, + + XTL::EmuIDirect3DDevice8_BlockOnFence, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockOnFence" + #endif + }, + // IDirect3DDevice8::GetTransform (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_GetTransform_1_0_4361, + + XTL::EmuIDirect3DDevice8_GetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTransform" + #endif + }, + // IDirect3DDevice8::SetPalette + { + (OOVPA*)&IDirect3DDevice8_SetPalette_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetPalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPalette" + #endif + }, + // IDirect3DDevice8::GetCreationParameters (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetCreationParameters_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetCreationParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetCreationParameters" + #endif + }, + // IDirect3DDevice8::SetFlickerFilter + { + (OOVPA*)&IDirect3DDevice8_SetFlickerFilter_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetFlickerFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetFlickerFilter" + #endif + }, + // IDirect3DDevice8::SetFlickerFilter + { + (OOVPA*)&IDirect3DDevice8_SetFlickerFilter_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetFlickerFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetFlickerFilter_5344" + #endif + }, + // IDirect3DDevice8::SetSoftDisplayFilter + { + (OOVPA*)&IDirect3DDevice8_SetSoftDisplayFilter_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetSoftDisplayFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSoftDisplayFilter" + #endif + }, + // IDirect3DDevice8::SetSoftDisplayFilter + { + (OOVPA*)&IDirect3DDevice8_SetSoftDisplayFilter_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetSoftDisplayFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSoftDisplayFilter_5344" + #endif + }, + // IDirect3DDevice8_Unknown1 + /*{ + (OOVPA*)&IDirect3DDevice8_Unknown1_1_0_5233, + + XTL::EmuIDirect3DDevice8_Unknown1, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Unknown1" + #endif + },*/ + // IDirect3DDevice8::SetRenderState_TwoSidedLighting (* unchanged since 4134 *) + // Beware of the typo... + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TwoSidedLighting_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TwoSidedLighting" + #endif + }, + // ****** + // Duplicate references are normally bad, but this XDK is aliased to XDK 5344 + // until such time as a separate XDK file is generated for 5344, this will have to do + // ****** + // IDirect3DDevice8::SetRenderState_TwoSidedLighting (* targeting 5344 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TwoSidedLighting_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TwoSidedLighting" + #endif + }, + // IDirect3DDevice8::SetRenderState_FrontFace (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FrontFace_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FrontFace, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FrontFace" + #endif + }, + // D3DDevice_SetRenderState_LogicOp (* unchanged since 4627 *) + { + (OOVPA*)&D3DDevice_SetRenderState_LogicOp_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_LogicOp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LogicOp" + #endif + }, + // IDirect3DDevice8::BeginPush + { + (OOVPA*)&D3DDevice_BeginPush_1_0_5344, + + XTL::EmuIDirect3DDevice8_BeginPush, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginPush" + #endif + }, + // IDirect3DDevice8::BeginVisibilityTest (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_BeginVisibilityTest_1_0_4627, + + XTL::EmuIDirect3DDevice8_BeginVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginVisibilityTest" + #endif + }, + // IDirect3DDevice8::EndPush + { + (OOVPA*)&D3DDevice_EndPush_1_0_5344, + + XTL::EmuIDirect3DDevice8_EndPush, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndPush" + #endif + }, + // IDirect3DDevice8::EndPush (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_EndPush_1_0_4627, + + XTL::EmuIDirect3DDevice8_EndPush, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndPush" + #endif + }, + // IDirect3DDevice8::SetVerticalBlankCallback + { + (OOVPA*)&IDirect3DDevice8_SetVerticalBlankCallback_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVerticalBlankCallback" + #endif + }, + // D3DDevice_SetRenderState_SampleAlpha + { + (OOVPA*)&D3DDevice_SetRenderState_SampleAlpha_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_SampleAlpha, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_SampleAlpha" + #endif + }, + // D3DDevice_SetRenderState_MultiSampleMask + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleMask_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMask, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMask" + #endif + }, + // IDirect3DDevice8::SetVertexData4ub (* unchanged since 4361 *) + { + (OOVPA*)&D3DDevice_SetVertexData4ub_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexData4ub, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4ub" + #endif + }, + // IDirect3DDevice8::SetVertexData4f + { + (OOVPA*)&D3DDevice_SetVertexData4f_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetVertexData4f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4f" + #endif + }, + // IDirect3DDevice8::SetViewport + { + (OOVPA*)&D3DDevice_SetViewport_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport_5344" + #endif + }, + /** + * Having two versions of D3Device::SetTransform in this file creates problems, + * in order to support Futurama, this second verison (added for Whacked support) + * has been disabled. + // IDirect3DDevice8::SetTransform + { + (OOVPA*)&D3DDevice_SetTransform_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTransform_5344" + #endif + },**/ + // IDirect3DDevice8::GetBackBuffer2 + { + (OOVPA*)&D3DDevice_GetBackBuffer2_1_0_5344, + + XTL::EmuIDirect3DDevice8_GetBackBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer2 (5344)" + #endif + }, + // IDirect3DDevice8::SetVerticalBlankCallback + { + (OOVPA*)&D3DDevice_SetVerticalBlankCallback_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVerticalBlankCallback (5344)" + #endif + }, + // IDirect3DDevice8::SetVerticalBlankCallback + { + (OOVPA*)&D3DDevice_SetSwapCallback_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetSwapCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSwapCallback (5344)" + #endif + }, + // IDirect3DDevice8::GetViewport + { + (OOVPA*)&D3DDevice_GetViewport_1_0_5344, + + XTL::EmuIDirect3DDevice8_GetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetViewport (5344)" + #endif + }, + // IDirect3DDevice8::SetRenderTargetFast + { + (OOVPA*)&D3DDevice_SetRenderTargetFast_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetRenderTargetFast, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTargetFast (5344)" + #endif + }, + // IDirect3DDevice8::SetScreenSpaceOffset + { + (OOVPA*)&D3DDevice_SetScreenSpaceOffset_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetScreenSpaceOffset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScreenSpaceOffset (5344)" + #endif + }, + // IDirect3DDevice8::SetScissors + { + (OOVPA*)&D3DDevice_SetScissors_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetScissors, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScissors (5344)" + #endif + }, + // IDirect3DCubeTexture8::GetCubeMapSurface2 (* Unchanged since 4627 *) + { + (OOVPA*)&D3DCubeTexture_GetCubeMapSurface2_1_0_4627, + + XTL::EmuIDirect3DCubeTexture8_GetCubeMapSurface2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DCubeTexture8_GetCubeMapSurface2" + #endif + }, + // IDirect3DDevice8::ApplyStateBlock (* unchanged since 4627 *) + { + (OOVPA*)&D3DDevice_ApplyStateBlock_1_0_4627, + + XTL::EmuIDirect3DDevice8_ApplyStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_ApplyStateBlock" + #endif + }, +}; + +// ****************************************************************** +// * D3D8_1_0_5233_SIZE +// ****************************************************************** +uint32 D3D8_1_0_5233_SIZE = sizeof(D3D8_1_0_5233); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5558.h b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5558.h new file mode 100644 index 000000000..f119b06d4 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5558.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.5558.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_1_0_5558_H +#define D3D8_1_0_5558_H + +#include "OOVPA.h" + +extern OOVPATable D3D8_1_0_5558[]; +extern uint32 D3D8_1_0_5558_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5558.inl new file mode 100644 index 000000000..35396bfcc --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5558.inl @@ -0,0 +1,3737 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5558.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * D3D_CDevice_LazySetStateVB +// ****************************************************************** +SOOVPA<12> D3D_CDevice_LazySetStateVB_1_0_5558 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_D3DCD_LAZYSETSTATEVB, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x00, 0x83 }, // 1 + { 0x01, 0xEC }, // 2 + { 0x02, 0x0C }, // 3 + + { 0x34, 0xF6 }, // 4 + { 0x35, 0xC3 }, // 5 + { 0x36, 0x40 }, // 6 + + { 0x57, 0x83 }, // 7 + { 0x58, 0xE5 }, // 8 + { 0x59, 0x10 }, // 9 + + { 0x79, 0x17 }, // 10 + { 0x7A, 0x40 }, // 11 + { 0x7B, 0x00 }, // 12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BeginPush +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_BeginPush_1_0_5558 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x09, XREF_D3DCD_LAZYSETSTATEVB }, // 1 + + { 0x00, 0x8B }, // 2 + { 0x01, 0x0D }, // 3 + + { 0x06, 0x6A }, // 4 + { 0x07, 0x00 }, // 5 + + { 0x11, 0x40 }, // 6 + + { 0x12, 0x89 }, // 7 + { 0x13, 0x44 }, // 8 + { 0x14, 0x24 }, // 9 + { 0x15, 0x04 }, // 10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SelectVertexShader +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SelectVertexShader_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x12, 0x07 }, + { 0x26, 0x00 }, + { 0x3A, 0x0D }, + { 0x4F, 0x8B }, + { 0x62, 0xE1 }, + { 0x76, 0x3B }, + { 0x8A, 0x89 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateVertexShader +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_CreateVertexShader_1_0_5558 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreateVertexShader+0x00 : push ecx; push ebx; push ebp + { 0x00, 0x51 }, // (Offset,Value)-Pair #1 + { 0x01, 0x53 }, // (Offset,Value)-Pair #2 + { 0x02, 0x55 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_CreateVertexShader+0x0A : jz +0x10 + { 0x0A, 0x74 }, // (Offset,Value)-Pair #4 + { 0x0B, 0x10 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_CreateVertexShader+0x43 : shl eax, 0x02 + { 0x43, 0xC1 }, // (Offset,Value)-Pair #6 + { 0x44, 0xE0 }, // (Offset,Value)-Pair #7 + { 0x45, 0x02 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_CreateVertexShader+0x73 : mov eax, 0x8007000E + { 0x65, 0x07 }, // (Offset,Value)-Pair #11 + { 0x66, 0x80 }, // (Offset,Value)-Pair #12 + + // IDirect3DDevice8_CreateVertexShader+0x69 : retn 0x10 + { 0x69, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x6A, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderConstant1 +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetVertexShaderConstant1_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShaderConstant1+0x05 : add eax, 0x1C + /*{ 0x05, 0x83 }, // (Offset,Value)-Pair #1 + { 0x06, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x07, 0x1C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x0E : jnb +0x2E + { 0x0E, 0x73 }, // (Offset,Value)-Pair #4 + { 0x0F, 0x2E }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x28 : mov [eax-0x10], ecx + { 0x28, 0x89 }, // (Offset,Value)-Pair #6 + { 0x29, 0x48 }, // (Offset,Value)-Pair #7 + { 0x2A, 0xF0 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x3D : retn + { 0x3D, 0xC3 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x47 : jmp +0xB7 + { 0x47, 0xEB }, // (Offset,Value)-Pair #10 + { 0x48, 0xB7 }, // (Offset,Value)-Pair #11 + */ + + // IDirect3DDevice8_SetVertexShaderConstant1+0x06 : add eax, 0x1C + { 0x06, 0x83 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x08, 0x1C }, // (Offset,Value)-Pair #3 + + { 0x16, 0xC7 }, + { 0x17, 0x40 }, + { 0x18, 0xE4 }, + { 0x19, 0xA4 }, + { 0x1A, 0x1E }, + { 0x1B, 0x04 }, + { 0x1C, 0x00 }, + + // IDirect3DDevice8_SetVertexShaderConstant1+0x53 : retn + { 0x53, 0xC3 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderConstant1Fast +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetVertexShaderConstant1Fast_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShaderConstant1Fast+0x05 : add eax, 0x1C + { 0x05, 0x83 }, // (Offset,Value)-Pair #1 + { 0x06, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x07, 0x1C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderConstant1Fast+0x0E : jnb +0x2E + { 0x0E, 0x73 }, // (Offset,Value)-Pair #4 + { 0x0F, 0x2E }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetVertexShaderConstant1Fast+0x28 : mov [eax-0x10], ecx + { 0x28, 0x89 }, // (Offset,Value)-Pair #6 + { 0x29, 0x48 }, // (Offset,Value)-Pair #7 + { 0x2A, 0xF0 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetVertexShaderConstant1Fast+0x3D : retn + { 0x3D, 0xC3 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexShaderConstant1Fast+0x47 : jmp +0xB7 + { 0x47, 0xEB }, // (Offset,Value)-Pair #10 + { 0x48, 0xB7 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetViewport +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetViewport_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x86 }, + { 0x3E, 0x1B }, + { 0x5E, 0x8B }, + { 0x7E, 0x6D }, + { 0x9E, 0x81 }, + { 0xBE, 0x0C }, + { 0xDE, 0x75 }, + { 0xFE, 0x85 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateVertexBuffer2 +// ****************************************************************** +SOOVPA<17> IDirect3DDevice8_CreateVertexBuffer2_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0xE8 }, + { 0x12, 0x1E }, + { 0x1C, 0x50 }, + { 0x26, 0x68 }, + { 0x31, 0x33 }, + { 0x3A, 0xFF }, + { 0x44, 0x01 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_UpdateOverlay +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_UpdateOverlay_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_UpdateOverlay+0x13 : mov [eax+0x1C0C], ecx + { 0x13, 0x89 }, // (Offset,Value)-Pair #1 + { 0x14, 0x88 }, // (Offset,Value)-Pair #2 + { 0x15, 0x0C }, // (Offset,Value)-Pair #3 + { 0x16, 0x1C }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_UpdateOverlay+0x85 : and eax, 0x0FFFFFFF + { 0x85, 0x25 }, // (Offset,Value)-Pair #5 + { 0x86, 0xFF }, // (Offset,Value)-Pair #6 + { 0x89, 0x0F }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_UpdateOverlay+0x9D : mov [esi+0x8920], ecx + { 0x9D, 0x89 }, // (Offset,Value)-Pair #8 + { 0x9E, 0x8E }, // (Offset,Value)-Pair #9 + { 0x9F, 0x20 }, // (Offset,Value)-Pair #10 + { 0xA0, 0x89 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetOverlayUpdateStatus +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetOverlayUpdateStatus_1_0_5558 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetOverlayUpdateStatus+0x05 : mov ecx, [eax+0x24xx] + { 0x05, 0x8B }, // (Offset,Value)-Pair #1 + { 0x06, 0x88 }, // (Offset,Value)-Pair #2 + // { 0x07, 0x00 }, // The offset from EAX has been seen as 2400 (5558) and 2410 (5659) + { 0x08, 0x24 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetOverlayUpdateStatus+0x0C : mov esi, [eax+0x1Dxx] + { 0x0C, 0x8B }, // (Offset,Value)-Pair #4 + { 0x0D, 0xB0 }, // (Offset,Value)-Pair #5 + // { 0x0E, 0xD8 }, // // The offset from EAX has been seen as 0x1DD8 (5558) and 0x1DE8 (5659) + { 0x0F, 0x1D }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetOverlayUpdateStatus+0x16 : setnz dl + { 0x16, 0x0F }, // (Offset,Value)-Pair #7 + { 0x17, 0x95 }, // (Offset,Value)-Pair #8 + { 0x18, 0xC2 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_GetOverlayUpdateStatus+0x1C : retn + { 0x1C, 0xC3 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreatePalette2 +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_CreatePalette2_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0D, 0x8B }, + { 0x16, 0x00 }, + { 0x23, 0x68 }, + { 0x2E, 0x85 }, + { 0x3D, 0x5E }, + { 0x46, 0x1E }, + { 0x52, 0x89 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateTexture2 +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_CreateTexture2_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x14, 0x4C }, + { 0x2A, 0x8B }, + { 0x42, 0x8B }, + { 0x56, 0x80 }, + { 0x70, 0x85 }, + { 0x82, 0x5E }, + { 0x98, 0x89 }, + { 0xAE, 0x1C }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_End +// ****************************************************************** +SOOVPA<17> IDirect3DDevice8_End_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x13, 0xC7 }, + { 0x19, 0xC7 }, + { 0x22, 0x08 }, + { 0x2B, 0xE1 }, + { 0x34, 0x4E }, + { 0x40, 0xC3 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetLight +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetLight_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x00 }, + { 0x3E, 0x89 }, + { 0x5E, 0x00 }, + { 0x7E, 0x07 }, + { 0x9E, 0xC8 }, + { 0xBE, 0xC9 }, + { 0xDE, 0x07 }, + { 0xFE, 0xC1 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetMaterial +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetMaterial_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x08 }, + { 0x0C, 0x81 }, + { 0x0E, 0xF0 }, + { 0x10, 0x00 }, + { 0x16, 0x00 }, + { 0x1F, 0x81 }, + { 0x22, 0x90 }, + { 0x2C, 0x5E }, + { 0x2E, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LightEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_LightEnable_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x8D }, + { 0x3E, 0xC7 }, + { 0x5E, 0xC7 }, + { 0x7E, 0x00 }, + { 0x9E, 0x85 }, + { 0xBE, 0x01 }, + { 0xDE, 0x00 }, + { 0xFE, 0x83 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShader +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetVertexShader_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x89 }, + { 0x3E, 0x5F }, + { 0x61, 0x3B }, + { 0x81, 0x00 }, + { 0x9E, 0x00 }, + { 0xBE, 0x8B }, + { 0xDE, 0x04 }, + { 0xFE, 0xC1 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPalette +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetPalette_1_0_5558 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetPalette+0x0D : mov eax, [edi+esi*4+0x0A88] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0E, 0x84 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xBE }, // (Offset,Value)-Pair #3 + { 0x10, 0x88 }, // (Offset,Value)-Pair #4 + { 0x11, 0x0F }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetPalette+0x76 : add esi, 0x41B20 + { 0x76, 0x81 }, // (Offset,Value)-Pair #6 + { 0x77, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x78, 0x20 }, // (Offset,Value)-Pair #8 + { 0x79, 0x1B }, // (Offset,Value)-Pair #9 + { 0x7A, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetPalette+0x8A : retn 0x08 + { 0x8A, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x8B, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BlockUntilVerticalBlank +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_BlockUntilVerticalBlank_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x6A }, + { 0x08, 0x00 }, + { 0x0D, 0xB0 }, + { 0x12, 0x00 }, + { 0x17, 0x05 }, + { 0x1C, 0x50 }, + { 0x23, 0xC3 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVerticesUP +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_DrawIndexedVerticesUP_1_0_5558 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawIndexedVerticesUP+0x4A : or edx, 0x800 + { 0x4A, 0x81 }, // (Offset,Value)-Pair #1 + { 0x4B, 0xCA }, // (Offset,Value)-Pair #2 + { 0x4C, 0x00 }, // (Offset,Value)-Pair #3 + { 0x4D, 0x08 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_DrawIndexedVerticesUP+0x5C : lea edx, [edi+0xBxx] + { 0x5C, 0x8D }, // (Offset,Value)-Pair #5 + { 0x5D, 0x96 }, // (Offset,Value)-Pair #6 + // { 0x5E, 0xC4 }, // The offset from EDI has been seen as BC4 (5558) and BD4 (5659) + { 0x5F, 0x0B }, // (Offset,Value)-Pair #7 + { 0x60, 0x00 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_DrawIndexedVerticesUP+0x6A : mov eax, 0x10 + { 0x6A, 0xB8 }, // (Offset,Value)-Pair #9 + { 0x6B, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTransform +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetTransform_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0xB9 }, + { 0x3E, 0x0F }, + { 0x5E, 0xD9 }, + { 0x7A, 0x00 }, + { 0x99, 0x83 }, + { 0xB8, 0xE0 }, + { 0xD7, 0xD9 }, + { 0xF6, 0xF6 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetBackBuffer2 +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetBackBuffer2_1_0_5558 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetBackBuffer2+0x04 : cmp eax, 0xFFFFFFFF + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetBackBuffer2+0x0D : jnz +0x19 + { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0E, 0x19 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetBackBuffer2+0x15 : mov esi, [ecx+eax*4+0x1A04] + { 0x15, 0x8B }, // (Offset,Value)-Pair #6 + { 0x16, 0xB4 }, // (Offset,Value)-Pair #7 + { 0x17, 0x81 }, // (Offset,Value)-Pair #8 + { 0x18, 0x04 }, // (Offset,Value)-Pair #9 + { 0x19, 0x1A }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_GetBackBuffer2+0x40 : retn 0x04 + { 0x40, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x41, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetBackBuffer2B +// ****************************************************************** +// NOTE: XIII has a different version than the others... +SOOVPA<12> IDirect3DDevice8_GetBackBuffer2B_1_0_5558 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetBackBuffer2+0x04 : cmp eax, 0xFFFFFFFF + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetBackBuffer2+0x0D : jnz +0x19 + { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0E, 0x19 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetBackBuffer2+0x15 : mov esi, [ecx+eax*4+0x1A14] + { 0x15, 0x8B }, // (Offset,Value)-Pair #6 + { 0x16, 0xB4 }, // (Offset,Value)-Pair #7 + { 0x17, 0x81 }, // (Offset,Value)-Pair #8 + { 0x18, 0x14 }, // (Offset,Value)-Pair #9 + { 0x19, 0x1A }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_GetBackBuffer2+0x40 : retn 0x04 + { 0x40, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x41, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetBackBuffer2 +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetBackBuffer2_1_0_5455 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_GetBackBuffer2+0x04 : cmp eax, 0xFFFFFFFF + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetBackBuffer2+0x0D : jnz +0x19 + { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0E, 0x19 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetBackBuffer2+0x15 : mov esi, [ecx+eax*4+0x15F4] + { 0x15, 0x8B }, // (Offset,Value)-Pair #6 + { 0x16, 0xB4 }, // (Offset,Value)-Pair #7 + { 0x17, 0x81 }, // (Offset,Value)-Pair #8 + { 0x18, 0xF4 }, // (Offset,Value)-Pair #9 + { 0x19, 0x15 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_GetBackBuffer2+0x40 : retn 0x04 + { 0x40, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x41, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3D8_CheckDeviceMultiSampleType +// ****************************************************************** +SOOVPA<7> IDirect3D8_CheckDeviceMultiSampleType_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0E, 0x00 }, + { 0x1E, 0x54 }, + { 0x2E, 0xC9 }, + { 0x3E, 0x8B }, + { 0x4E, 0x08 }, + { 0x5E, 0x72 }, + { 0x6E, 0x03 }, + } +}; + +// ****************************************************************** +// * IDirect3D8_SetPushBufferSize +// ****************************************************************** +SOOVPA<7> IDirect3D8_SetPushBufferSize_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x07, 0x08 }, + { 0x0D, 0x89 }, + { 0x0E, 0x0D }, + { 0x13, 0xC2 }, + { 0x14, 0x08 }, + } +}; + +// ****************************************************************** +// * D3D::SetFence +// ****************************************************************** +SOOVPA<14> D3D_SetFence_1_0_5558 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XREF_D3D_SETFENCE, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x14, 0x8B }, + { 0x15, 0x7E }, + { 0x16, 0x2C }, + { 0x23, 0x8A }, + { 0x24, 0x54 }, + { 0x25, 0x24 }, + { 0x26, 0x0C }, + { 0x66, 0x89 }, + { 0x67, 0x44 }, + { 0x68, 0xCE }, + { 0x69, 0x64 }, + { 0x91, 0xC7 }, + { 0x92, 0x46 }, + { 0x93, 0x3C }, + } +}; + +// ****************************************************************** +// * D3D::BlockOnTime +// ****************************************************************** +SOOVPA<6> D3D_BlockOnTime_1_0_5558 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XREF_D3D_BLOCKONTIME, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x09, 0x30 }, + { 0x27, 0x07 }, + { 0x7E, 0x25 }, + { 0x9F, 0x20 }, + { 0xD3, 0x56 }, + { 0xE9, 0x57 }, + } +}; + +// ****************************************************************** +// * D3D::BlockOnResource +// ****************************************************************** +SOOVPA<16> D3D_BlockOnResource_1_0_5558 = +{ + 0, // Large == 0 + 16, // Count == 16 + + XREF_D3D_BlockOnResource, // Xref Is Saved + XRefNotUsed, + + { + { 0x09, 0x8B }, // mov eax, [esp+arg_0] + { 0x0A, 0x44 }, + { 0x0B, 0x24 }, + { 0x0C, 0x04 }, + { 0x0F, 0x81 }, // and ecx, 0x00070000 + { 0x10, 0xE1 }, + { 0x11, 0x00 }, + { 0x12, 0x00 }, + { 0x13, 0x07 }, + { 0x14, 0x00 }, + { 0x46, 0x8B }, // mov esi, [eax+8] + { 0x47, 0x70 }, + { 0x48, 0x08 }, + { 0x75, 0xC2 }, // retn 4 + { 0x76, 0x04 }, + { 0x77, 0x00 }, + + } +}; + +// ****************************************************************** +// * IDirect3DResource8_BlockUntilNotBusy +// ****************************************************************** +SOOVPA<2> IDirect3DResource8_BlockUntilNotBusy_1_0_5558 = +{ + 0, // Large == 0 + 2, // Count == 2 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x01, XREF_D3D_BlockOnResource }, + + { 0x00, 0xE9 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetScissors +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetScissors_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0x44 }, + { 0x3C, 0x8B }, + { 0x5D, 0xD9 }, + { 0x7D, 0xD8 }, + { 0x99, 0x0E }, + { 0xB8, 0xE8 }, + { 0xD7, 0x24 }, + { 0xF6, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetScissors +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetScissors_1_0_5455 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0x44 }, + { 0x3C, 0x8B }, + { 0x5D, 0xD9 }, + { 0x7D, 0xD8 }, + { 0x99, 0x0A }, + { 0xB8, 0xE8 }, + { 0xD7, 0x24 }, + { 0xF6, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_AddRef +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_AddRef_1_0_5558 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_AddRef+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_AddRef+0x05 : mov ecx, [eax+0x04FC] + { 0x05, 0x8B }, // (Offset,Value)-Pair #2 + { 0x06, 0x88 }, // (Offset,Value)-Pair #3 + { 0x07, 0x34 }, // (Offset,Value)-Pair #4 + { 0x08, 0x09 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_AddRef+0x0B : inc ecx + { 0x0B, 0x41 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_AddRef+0x0C : mov [eax+0x04FC], ecx + { 0x0C, 0x89 }, // (Offset,Value)-Pair #7 + { 0x0D, 0x88 }, // (Offset,Value)-Pair #8 + { 0x0E, 0x34 }, // (Offset,Value)-Pair #9 + { 0x0F, 0x09 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreatePixelShader +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_CreatePixelShader_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_CreatePixelShader+0x05 : push 0xFC + { 0x05, 0x68 }, // (Offset,Value)-Pair #1 + { 0x06, 0xFC }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_CreatePixelShader+0x10 : mov eax, 0x8007000E + { 0x13, 0xB8 }, // (Offset,Value)-Pair #3 + { 0x14, 0x0E }, // (Offset,Value)-Pair #4 + { 0x15, 0x00 }, // (Offset,Value)-Pair #5 + { 0x16, 0x07 }, // (Offset,Value)-Pair #6 + { 0x17, 0x80 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_CreatePixelShader+0x31 : mov ecx, 0x3C + { 0x34, 0xB9 }, // (Offset,Value)-Pair #8 + { 0x35, 0x3C }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_CreatePixelShader+0x42 : retn 0x08 + { 0x45, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x46, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVerticesUP +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_DrawVerticesUP_1_0_5558 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawVerticesUP+0x03 : sub esp, 0x14 + { 0x03, 0x83 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x14 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_DrawVerticesUP+0x37 : mov edx, [edi+0xC44] + { 0x37, 0x8B }, // (Offset,Value)-Pair #4 + { 0x38, 0x97 }, // (Offset,Value)-Pair #5 + { 0x39, 0x44 }, // (Offset,Value)-Pair #6 + { 0x3A, 0x0C }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_DrawVerticesUP+0xC4 : cmp esi, 0x80 + { 0xC4, 0x81 }, // (Offset,Value)-Pair #8 + { 0xC5, 0xFE }, // (Offset,Value)-Pair #9 + { 0xC6, 0x80 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateIndexBuffer +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_CreateIndexBuffer_1_0_5558 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x50 }, + { 0x06, 0x8B }, + { 0x07, 0x4C }, + { 0x09, 0x04 }, + { 0x0A, 0x33 }, + { 0x0E, 0x0F }, + { 0x12, 0x01 }, + { 0x16, 0x0E }, + { 0x1A, 0x8B }, + { 0x1E, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_CreateIndexBuffer2 +// ****************************************************************** +SOOVPA<7> D3DDevice_CreateIndexBuffer2_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x00 }, + { 0x0C, 0x50 }, + { 0x13, 0xC0 }, + { 0x1A, 0xC9 }, + { 0x21, 0x04 }, + { 0x28, 0xC7 }, + { 0x2F, 0x48 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVerticalBlankCallback +// ****************************************************************** +SOOVPA<7> D3DDevice_SetVerticalBlankCallback_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x0A, 0x89 }, + { 0x0B, 0x81 }, + { 0x0C, 0xA8 }, + { 0x0D, 0x1D }, + { 0x10, 0xC2 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVerticalBlankCallback +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetVerticalBlankCallback_1_0_5455 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVerticalBlankCallback+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x04 : mov ecx, [addr] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x0D }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x0A : mov [ecx+0x1998], eax + { 0x0A, 0x89 }, // (Offset,Value)-Pair #7 + { 0x0B, 0x81 }, // (Offset,Value)-Pair #8 + { 0x0C, 0x98 }, // (Offset,Value)-Pair #9 + { 0x0D, 0x19 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetVerticalBlankCallback+0x10 : retn 0x04 + { 0x10, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x11, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * D3DDevice_SetSwapCallback +// ****************************************************************** +SOOVPA<7> D3DDevice_SetSwapCallback_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x0A, 0x89 }, + { 0x0B, 0x81 }, + { 0x0C, 0xA4 }, + { 0x0D, 0x1D }, + { 0x10, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_TextureFactor +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_TextureFactor_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x80 }, + { 0x14, 0x46 }, + { 0x1F, 0x24 }, + { 0x2A, 0xBA }, + { 0x35, 0x4A }, + { 0x40, 0x5E }, + { 0x4D, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetViewport +// ****************************************************************** +SOOVPA<7> D3DDevice_GetViewport_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x8B }, + { 0x0C, 0x00 }, + { 0x13, 0x50 }, + { 0x1A, 0x08 }, + { 0x21, 0x89 }, + { 0x28, 0x51 }, + { 0x2F, 0x14 }, + } +}; + +// ****************************************************************** +// * D3DDevice_Reset +// ****************************************************************** +SOOVPA<8> D3DDevice_Reset_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x13, 0x00 }, + { 0x28, 0x74 }, + { 0x40, 0x5F }, + { 0x55, 0x8B }, + { 0x67, 0x50 }, + { 0x7C, 0x00 }, + { 0x91, 0x3F }, + { 0xA6, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetGammaRamp +// ****************************************************************** +SOOVPA<7> D3DDevice_SetGammaRamp_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0F, 0x68 }, + { 0x20, 0x34 }, + { 0x31, 0xB4 }, + { 0x42, 0x08 }, + { 0x53, 0xF3 }, + { 0x64, 0xCA }, + { 0x75, 0x07 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetProjectionViewportMatrix +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_GetProjectionViewportMatrix_1_0_5455 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x35 }, + { 0x07, 0x57 }, + { 0x0A, 0x24 }, + { 0x0E, 0x60 }, + { 0x12, 0xB9 }, + { 0x16, 0x00 }, + { 0x1A, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetModelView +// ****************************************************************** +SOOVPA<7> D3DDevice_GetModelView_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x57 }, + { 0x0A, 0x85 }, + { 0x10, 0xB0 }, + { 0x16, 0x10 }, + { 0x1C, 0x5E }, + { 0x22, 0xC1 }, + { 0x28, 0xE0 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetBackMaterial +// ****************************************************************** +SOOVPA<9> D3DDevice_SetBackMaterial_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x08 }, + { 0x0C, 0x81 }, + { 0x0E, 0x34 }, + { 0x10, 0x00 }, + { 0x16, 0x00 }, + { 0x1F, 0x81 }, + { 0x22, 0x90 }, + { 0x2C, 0x5E }, + { 0x2E, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_TwoSidedLighting +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderState_TwoSidedLighting_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0E, 0x05 }, + { 0x1E, 0x89 }, + { 0x30, 0x00 }, + { 0x40, 0x89 }, + { 0x52, 0x8B }, + { 0x60, 0x75 }, + { 0x6E, 0x48 }, + { 0x7E, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_BeginStateBlock +// ****************************************************************** +SOOVPA<6> D3DDevice_BeginStateBlock_1_0_5558 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0xA1 }, + { 0x05, 0x83 }, + { 0x06, 0x48 }, + { 0x07, 0x08 }, + { 0x08, 0x20 }, + { 0x09, 0xE9 }, + } +}; + +// ****************************************************************** +// * D3DDevice_EndStateBlock +// ****************************************************************** +SOOVPA<6> D3DDevice_EndStateBlock_1_0_5558 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0xA1 }, + { 0x05, 0x83 }, + { 0x06, 0x60 }, + { 0x07, 0x08 }, + { 0x08, 0xDF }, + { 0x09, 0xE9 }, + } +}; + +// ****************************************************************** +// * Get2DSurfaceDesc +// ****************************************************************** +SOOVPA<10> Get2DSurfaceDesc_1_0_5558 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // 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+0x1A04] + { 0x52, 0x8B }, // (Offset,Value)-Pair #5 + { 0x53, 0x90 }, // (Offset,Value)-Pair #6 + { 0x54, 0x04 }, // (Offset,Value)-Pair #7 + { 0x55, 0x1A }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDesc+0xAE : retn 0x0C + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xAF, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * D3D::MakeRequestedSpace +// ****************************************************************** +SOOVPA<12> D3D_MakeRequestedSpace_1_0_5558 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // D3D::MakeRequestedSpace+0x08: test byte ptr [esi+8], 4 + { 0x08, 0xF6 }, + { 0x09, 0x46 }, + { 0x0A, 0x08 }, + { 0x0B, 0x04 }, + // D3D::MakeRequestedSpace+0x32: retn 8 + { 0x32, 0xC2 }, + { 0x33, 0x08 }, + // D3D::MakeRequestedSpace+0x57: add ebp, 0x4000 + { 0x57, 0x81 }, + { 0x58, 0xC5 }, + { 0x59, 0x00 }, + { 0x5A, 0x40 }, + { 0x5B, 0x00 }, + { 0x5C, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_MakeSpace +// ****************************************************************** +// TODO: This may or may not need to save/use an XRef to work... +SOOVPA<7> D3DDevice_MakeSpace_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0xA1 }, + { 0x05, 0x50 }, + { 0x06, 0xD1 }, + { 0x07, 0xE8 }, + { 0x08, 0x50 }, + { 0x09, 0xE8 }, + { 0x0E, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderTarget@8 +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderTarget_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x44 }, + { 0x3E, 0x2C }, + { 0x5E, 0x8B }, + { 0x7E, 0xDE }, + { 0xA0, 0x89 }, + { 0xBE, 0x09 }, + { 0xDE, 0x8B }, + { 0xFE, 0x8B }, + } +}; + +// ****************************************************************** +// * D3DTexture_LockRect +// ****************************************************************** +SOOVPA<8> D3DTexture_LockRect_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x14 }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x8B }, + { 0x17, 0x50 }, + { 0x1B, 0xE8 }, + { 0x20, 0xC2 }, + { 0x21, 0x14 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetPixelShaderConstant +// ****************************************************************** +SOOVPA<7> D3DDevice_SetPixelShaderConstant_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x85 }, + { 0x3E, 0x8B }, + { 0x5E, 0xC0 }, + { 0x7E, 0x0F }, + { 0x9F, 0x8B }, + { 0xBE, 0x00 }, + { 0xDE, 0xC0 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetFlickerFilter +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetFlickerFilter_1_0_5455 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetFlickerFilter+0x1C : mov eax, [eax+0x1808] + { 0x1C, 0x8B }, // (Offset,Value)-Pair #1 + { 0x1D, 0x80 }, // (Offset,Value)-Pair #2 + { 0x1E, 0x08 }, // (Offset,Value)-Pair #3 + { 0x1F, 0x18 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetFlickerFilter+0x22 : push 0; push esi; push 0x0B; push eax + { 0x22, 0x6A }, // (Offset,Value)-Pair #5 + { 0x23, 0x00 }, // (Offset,Value)-Pair #6 + { 0x24, 0x56 }, // (Offset,Value)-Pair #7 + { 0x25, 0x6A }, // (Offset,Value)-Pair #8 + { 0x26, 0x0B }, // (Offset,Value)-Pair #9 + { 0x27, 0x50 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetFlickerFilter+0x3F : retn 0x04 + { 0x3F, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x40, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BlockUntilVerticalBlank +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_BlockUntilVerticalBlank_1_0_5455 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_BlockUntilVerticalBlank+0x05 : push 0; push 0; push 1 + { 0x05, 0x6A }, // (Offset,Value)-Pair #1 + { 0x06, 0x00 }, // (Offset,Value)-Pair #2 + { 0x07, 0x6A }, // (Offset,Value)-Pair #3 + { 0x08, 0x00 }, // (Offset,Value)-Pair #4 + { 0x09, 0x6A }, // (Offset,Value)-Pair #5 + { 0x0A, 0x01 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x17 : add eax, 0x199C + { 0x17, 0x05 }, // (Offset,Value)-Pair #7 + { 0x18, 0x9C }, // (Offset,Value)-Pair #8 + { 0x19, 0x19 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x1D : call [KrnlImport] + { 0x1D, 0xFF }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_BlockUntilVerticalBlank+0x23 : retn + { 0x23, 0xC3 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetScreenSpaceOffset +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetScreenSpaceOffset_1_0_5455 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetScreenSpaceOffset+0x13 : fstp [esi+0x0AD8] + { 0x13, 0xD9 }, // (Offset,Value)-Pair #1 + { 0x14, 0x9E }, // (Offset,Value)-Pair #2 + { 0x15, 0xD8 }, // (Offset,Value)-Pair #3 + { 0x16, 0x0A }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetScreenSpaceOffset+0x33 : jb +0x05 + { 0x33, 0x72 }, // (Offset,Value)-Pair #5 + { 0x34, 0x05 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetScreenSpaceOffset+0x46 : retn 0x08 + { 0x46, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x47, 0x08 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetScreenSpaceOffset +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetScreenSpaceOffset_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetScreenSpaceOffset+0x13 : fstp [esi+0x0EE8] + { 0x13, 0xD9 }, // (Offset,Value)-Pair #1 + { 0x14, 0x9E }, // (Offset,Value)-Pair #2 + { 0x15, 0xE8 }, // (Offset,Value)-Pair #3 + { 0x16, 0x0E }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetScreenSpaceOffset+0x33 : jb +0x05 + { 0x33, 0x72 }, // (Offset,Value)-Pair #5 + { 0x34, 0x05 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetScreenSpaceOffset+0x46 : retn 0x08 + { 0x46, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x47, 0x08 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * D3DDevice_InsertCallback +// ****************************************************************** +SOOVPA<7> D3DDevice_InsertCallback_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0C, 0x72 }, + { 0x1A, 0x10 }, + { 0x28, 0x85 }, + { 0x36, 0xC7 }, + { 0x44, 0x0C }, + { 0x52, 0x00 }, + { 0x60, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_LineWidth +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_LineWidth_1_0_5455 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_LineWidth+0x15 : fmul dword ptr [esi+0x54C] + { 0x15, 0xD8 }, // (Offset,Value)-Pair #1 + { 0x16, 0x8E }, // (Offset,Value)-Pair #2 + { 0x17, 0x4C }, // (Offset,Value)-Pair #3 + { 0x18, 0x05 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x32 : cmp edi, 0x1FF + { 0x32, 0x81 }, // (Offset,Value)-Pair #5 + { 0x33, 0xFF }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x3A : mov edi, 0x1FF + { 0x3A, 0xBF }, // (Offset,Value)-Pair #7 + { 0x3B, 0xFF }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x62 : retn 0x04 + { 0x62, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x63, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * D3DDevice_FlushVertexCache +// ****************************************************************** +SOOVPA<10> D3DDevice_FlushVertexCache_1_0_5558 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x56 }, + { 0x07, 0x8B }, + { 0x08, 0x06 }, + { 0x0D, 0x05 }, + { 0x13, 0xC7 }, + { 0x15, 0x10 }, + { 0x17, 0x04 }, + { 0x1C, 0x00 }, + { 0x21, 0xC0 }, + { 0x26, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_LogicOp +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_LogicOp_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x3B }, + { 0x14, 0x4C }, + { 0x1F, 0x04 }, + { 0x2A, 0x0D }, + { 0x35, 0xBC }, + { 0x40, 0x89 }, + { 0x4E, 0x5E }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LightEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_LightEnable_1_0_5455 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_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 + + // IDirect3DDevice8_LightEnable+0x6B : test eax, eax + { 0x6B, 0x85 }, // (Offset,Value)-Pair #5 + { 0x6C, 0xC0 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_LightEnable+0x9A : cmp ecx, 0xFFFFFFFF + { 0x9A, 0x83 }, // (Offset,Value)-Pair #7 + { 0x9B, 0xF9 }, // (Offset,Value)-Pair #8 + { 0x9C, 0xFF }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_LightEnable+0xB9 : jnz +0xF7 + { 0xB9, 0x75 }, // (Offset,Value)-Pair #10 + { 0xBA, 0xF7 }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_LightEnable+0xFB : retn 0x08 + { 0xFB, 0xC2 }, // (Offset,Value)-Pair #12 + { 0xFC, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * D3DDevice_SetModelView +// ****************************************************************** +SOOVPA<7> D3DDevice_SetModelView_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x15, 0xFF }, + { 0x2D, 0x81 }, + { 0x43, 0x3B }, + { 0x5A, 0xC1 }, + { 0x71, 0x53 }, + { 0x8A, 0x8B }, + { 0x9F, 0x30 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetIndices +// ****************************************************************** +SOOVPA<7> D3DDevice_SetIndices_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0F, 0x10 }, + { 0x20, 0xC7 }, + { 0x31, 0xC0 }, + { 0x42, 0x78 }, + { 0x53, 0xBE }, + { 0x64, 0x89 }, + { 0x75, 0x10 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetIndices +// ****************************************************************** +SOOVPA<7> D3DDevice_SetIndices_1_0_5455 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0F, 0xBE }, + { 0x20, 0xBE }, + { 0x31, 0xFF }, + { 0x42, 0x14 }, + { 0x53, 0x00 }, + { 0x64, 0x06 }, + { 0x75, 0xDD }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetBackBuffer +// ****************************************************************** +SOOVPA<6> D3DDevice_GetBackBuffer_1_0_5558 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x50 }, + { 0x0A, 0x8B }, + { 0x0B, 0x4C }, + { 0x0D, 0x0C }, + { 0x10, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_PersistDisplay +// ****************************************************************** +SOOVPA<7> D3DDevice_PersistDisplay_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x15 }, + { 0x3E, 0x89 }, + { 0x5E, 0x89 }, + { 0x7E, 0x42 }, + { 0x9E, 0x50 }, + { 0xBE, 0x00 }, + { 0xDE, 0x8B }, + } +}; + +// ****************************************************************** +// * D3DCubeTexture_GetCubeMapSurface +// ****************************************************************** +SOOVPA<7> D3DCubeTexture_GetCubeMapSurface_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x8B }, + { 0x0A, 0x24 }, + { 0x14, 0x8B }, + { 0x16, 0x24 }, + { 0x1C, 0x0F }, + { 0x22, 0x81 }, + { 0x28, 0x8B }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexDataColor +// ****************************************************************** +SOOVPA<7> D3DDevice_SetVertexDataColor_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x06 }, + { 0x14, 0x8B }, + { 0x1C, 0x19 }, + { 0x26, 0xB6 }, + { 0x30, 0x00 }, + { 0x3A, 0xFF }, + { 0x44, 0x08 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexData4f +// ****************************************************************** +SOOVPA<7> D3DDevice_SetVertexData4f_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0x46 }, + { 0x16, 0x08 }, + { 0x22, 0x09 }, + { 0x2E, 0x24 }, + { 0x3A, 0x24 }, + { 0x46, 0x8B }, + { 0x52, 0x14 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexData2f +// ****************************************************************** +SOOVPA<8> D3DDevice_SetVertexData2f_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0C, 0x72 }, + { 0x13, 0x8B }, + { 0x1A, 0x80 }, + { 0x21, 0x0C }, + { 0x28, 0x89 }, + { 0x2F, 0xC0 }, + { 0x36, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_LoadVertexShaderProgram +// ****************************************************************** +SOOVPA<7> D3DDevice_LoadVertexShaderProgram_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x2D }, + { 0x18, 0x10 }, + { 0x25, 0xE0 }, + { 0x32, 0x5F }, + { 0x3F, 0x24 }, + { 0x4C, 0x83 }, + { 0x5C, 0x89 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetPixelShaderProgram +// ****************************************************************** +SOOVPA<7> D3DDevice_SetPixelShaderProgram_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0xA1 }, + { 0x0E, 0x88 }, + { 0x16, 0x00 }, + { 0x1E, 0x00 }, + { 0x26, 0x09 }, + { 0x32, 0xC7 }, + { 0x36, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleMode +// ****************************************************************** +SOOVPA<9> D3DDevice_SetRenderState_MultiSampleMode_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x04 }, + { 0x0A, 0xA3 }, + { 0x0F, 0x8B }, + { 0x12, 0x19 }, + { 0x17, 0x04 }, + { 0x1B, 0x75 }, + { 0x1C, 0x07 }, + { 0x24, 0xC2 }, + { 0x26, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleMode +// ****************************************************************** +SOOVPA<9> D3DDevice_SetRenderState_MultiSampleMode_1_0_5455 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x04 }, + { 0x0A, 0xA3 }, + { 0x0F, 0x8B }, + { 0x12, 0x15 }, + { 0x17, 0xF4 }, + { 0x1B, 0x75 }, + { 0x1C, 0x07 }, + { 0x24, 0xC2 }, + { 0x26, 0x00 }, + } +}; + + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleRenderTargetMode +// ****************************************************************** +SOOVPA<9> D3DDevice_SetRenderState_MultiSampleRenderTargetMode_1_0_5455 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x04 }, + { 0x0A, 0xA3 }, + { 0x0F, 0x8B }, + { 0x12, 0x15 }, + { 0x17, 0xF4 }, + { 0x1B, 0x74 }, + { 0x1C, 0x07 }, + { 0x24, 0xC2 }, + { 0x26, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleRenderTargetMode +// ****************************************************************** +SOOVPA<9> D3DDevice_SetRenderState_MultiSampleRenderTargetMode_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x04 }, + { 0x0A, 0xA3 }, + { 0x0F, 0x8B }, + { 0x12, 0x19 }, + { 0x17, 0x04 }, + { 0x1B, 0x74 }, + { 0x1C, 0x07 }, + { 0x24, 0xC2 }, + { 0x26, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_Dxt1NoiseEnable +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderState_Dxt1NoiseEnable_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0D, 0x8B }, + { 0x1D, 0x80 }, + { 0x2B, 0x08 }, + { 0x3A, 0x01 }, + { 0x49, 0xC7 }, + { 0x58, 0x05 }, + { 0x67, 0xC0 }, + { 0x76, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_IsFencePending +// ****************************************************************** +SOOVPA<7> D3DDevice_IsFencePending_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x8B }, + { 0x06, 0x48 }, + { 0x0A, 0x2C }, + { 0x0E, 0xD0 }, + { 0x12, 0x44 }, + { 0x16, 0xC2 }, + { 0x1A, 0xD8 }, + } +}; + +// ****************************************************************** +// * D3D8_1_0_5558 +// ****************************************************************** +OOVPATable D3D8_1_0_5558[] = +{ + // IDirect3D8::CreateDevice (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3D8_CreateDevice_1_0_4627, + + XTL::EmuIDirect3D8_CreateDevice, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CreateDevice" + #endif + }, + // IDirect3DDevice8::GetDisplayFieldStatus (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_GetDisplayFieldStatus_1_0_5233, + + XTL::EmuIDirect3DDevice8_GetDisplayFieldStatus, + + #ifdef _DEBUG_TRACE + "IDirect3DDevice8_GetDisplayFieldStatus" + #endif + }, + // D3D::CDevice::LazySetStateVB (XREF) + { + (OOVPA*)&D3D_CDevice_LazySetStateVB_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "D3D::CDevice::LazySetStateVB (XREF)" + #endif + }, + // IDirect3DDevice8::BeginPush + { + (OOVPA*)&IDirect3DDevice8_BeginPush_1_0_5558, + + XTL::EmuIDirect3DDevice8_BeginPush, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginPush" + #endif + }, + // IDirect3DDevice8::EndPush (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_EndPush_1_0_4627, + + XTL::EmuIDirect3DDevice8_EndPush, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndPush" + #endif + }, + // D3DDevice_RunVertexStateShader (* unchanged since 4627 *) + { + (OOVPA*)&X_D3DDevice_RunVertexStateShader_1_0_4627, + + XTL::EmuIDirect3DDevice8_RunVertexStateShader, + + #ifdef _DEBUG_TRACE + "D3DDevice_RunVertexStateShader" + #endif + }, + // D3DDevice_GetVertexShaderSize (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_GetVertexShaderSize_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVertexShaderSize, + + #ifdef _DEBUG_TRACE + "D3DDevice_GetVertexShaderSize" + #endif + }, + // IDirect3DDevice8::BeginStateBlock + { + (OOVPA*)&IDirect3DDevice8_BeginStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_BeginStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginStateBlock" + #endif + }, + // IDirect3DDevice8::EndStateBlock + { + (OOVPA*)&IDirect3DDevice8_EndStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_EndStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndStateBlock" + #endif + }, + // IDirect3DDevice8::LoadVertexShader (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_LoadVertexShader_1_0_5233, + + XTL::EmuIDirect3DDevice8_LoadVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShader" + #endif + }, + // IDirect3DDevice8::SelectVertexShader + { + (OOVPA*)&IDirect3DDevice8_SelectVertexShader_1_0_5558, + + XTL::EmuIDirect3DDevice8_SelectVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SelectVertexShader" + #endif + }, + // IDirect3DDevice8::CreateVertexShader + { + (OOVPA*)&IDirect3DDevice8_CreateVertexShader_1_0_5558, + + XTL::EmuIDirect3DDevice8_CreateVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexShader" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant1 + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant1_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant1, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant1" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant1Fast + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant1Fast_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant1, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant1Fast" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstantNotInline (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstantNotInline_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstantNotInline, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstantNotInline" + #endif + }, + // IDirect3DDevice8::CreateVertexBuffer2 + { + (OOVPA*)&IDirect3DDevice8_CreateVertexBuffer2_1_0_5558, + + XTL::EmuIDirect3DDevice8_CreateVertexBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexBuffer2" + #endif + }, + // IDirect3DDevice8::UpdateOverlay + { + (OOVPA*)&IDirect3DDevice8_UpdateOverlay_1_0_5558, + + XTL::EmuIDirect3DDevice8_UpdateOverlay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_UpdateOverlay" + #endif + }, + // IDirect3DDevice8::GetOverlayUpdateStatus + { + (OOVPA*)&IDirect3DDevice8_GetOverlayUpdateStatus_1_0_5558, + + XTL::EmuIDirect3DDevice8_GetOverlayUpdateStatus, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetOverlayUpdateStatus" + #endif + }, + // IDirect3DDevice8::Clear (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_5233, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + // IDirect3DDevice8::CreatePalette2 + { + (OOVPA*)&IDirect3DDevice8_CreatePalette2_1_0_5558, + + XTL::EmuIDirect3DDevice8_CreatePalette2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePalette2" + #endif + }, + // IDirect3DDevice8::SetPalette + { + (OOVPA*)&IDirect3DDevice8_SetPalette_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetPalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPalette" + #endif + }, + // IDirect3DDevice8::Swap (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_Swap_1_0_5233, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap" + #endif + }, + // IDirect3DDevice8::BlockUntilVerticalBlank + { + (OOVPA*)&IDirect3DDevice8_BlockUntilVerticalBlank_1_0_5558, + + XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockUntilVerticalBlank" + #endif + }, + // IDirect3DDevice8::DrawIndexedVertices (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_5233, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, + // IDirect3DDevice8::DrawIndexedVerticesUP + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVerticesUP_1_0_5558, + + XTL::EmuIDirect3DDevice8_DrawIndexedVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVerticesUP" + #endif + }, + // IDirect3DDevice8::SetPixelShader (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + }, + // IDirect3DDevice8::CreateTexture2 + { + (OOVPA*)&IDirect3DDevice8_CreateTexture2_1_0_5558, + + XTL::EmuIDirect3DDevice8_CreateTexture2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture2" + #endif + }, + // IDirect3DDevice8::GetDisplayMode (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_GetDisplayMode_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetDisplayMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDisplayMode" + #endif + }, + // IDirect3DDevice8::SetVertexData2f (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexData2f_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::End + { + (OOVPA*)&IDirect3DDevice8_End_1_0_5558, + + XTL::EmuIDirect3DDevice8_End, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_End" + #endif + }, + // IDirect3DDevice8::SetTextureState_TexCoordIndex (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, + // IDirect3DDevice8::SetTextureState_BumpEnv (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BumpEnv_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BumpEnv, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BumpEnv" + #endif + }, + // IDirect3DDevice8::SetTextureState_BorderColor (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BorderColor_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BorderColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullMode (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_NormalizeNormals (* unchanged since 4432 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormals" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZBias (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZBias_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZBias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZBias" + #endif + }, + // IDirect3DDevice8::SetRenderState_EdgeAntiAlias (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_FogColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_Simple (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnable (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilEnable (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilFail (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilFail_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // IDirect3DDevice8::SetLight + { + (OOVPA*)&IDirect3DDevice8_SetLight_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight" + #endif + }, + // IDirect3DDevice8::SetMaterial + { + (OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetMaterial" + #endif + }, + // IDirect3DDevice8::LightEnable + { + (OOVPA*)&IDirect3DDevice8_LightEnable_1_0_5558, + + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable" + #endif + }, + // IDirect3DVertexBuffer8::Lock2 (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock2_1_0_4627, + + XTL::EmuIDirect3DVertexBuffer8_Lock2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock2" + #endif + }, + // IDirect3DDevice8::SetRenderState_OcclusionCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleAntiAlias (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_ShadowFunc (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_ShadowFunc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ShadowFunc" + #endif + }, + // IDirect3DDevice8::SetRenderState_YuvEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_YuvEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_YuvEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_YuvEnable" + #endif + }, + // IDirect3DDevice8::SetVertexShader + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::SetIndices + { + (OOVPA*)&D3DDevice_SetIndices_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // IDirect3DDevice8::SetIndices + { + (OOVPA*)&D3DDevice_SetIndices_1_0_5455, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices_5455" + #endif + }, + // IDirect3DDevice8::SetTexture (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::SwitchTexture (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SwitchTexture_1_0_4361, + + XTL::EmuIDirect3DDevice8_SwitchTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SwitchTexture" + #endif + }, + // IDirect3DDevice8::Begin (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_Begin_1_0_5233, + + XTL::EmuIDirect3DDevice8_Begin, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Begin" + #endif + }, + // IDirect3DResource8::IsBusy (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DResource8_IsBusy_1_0_4361, + + XTL::EmuIDirect3DResource8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_IsBusy" + #endif + }, + // IDirect3DDevice8::BeginVisibilityTest (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_BeginVisibilityTest_1_0_4627, + + XTL::EmuIDirect3DDevice8_BeginVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginVisibilityTest" + #endif + }, + // IDirect3DDevice8::SetTransform + { + (OOVPA*)&IDirect3DDevice8_SetTransform_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTransform" + #endif + }, + // IDirect3DDevice8::SetStreamSource (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // IDirect3DDevice8::SetViewport + { + (OOVPA*)&IDirect3DDevice8_SetViewport_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport" + #endif + }, + // IDirect3DDevice8::GetBackBuffer2 + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer2_1_0_5558, + + XTL::EmuIDirect3DDevice8_GetBackBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer2" + #endif + }, + // IDirect3DDevice8::GetBackBuffer2B + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer2B_1_0_5558, + + XTL::EmuIDirect3DDevice8_GetBackBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer2B" + #endif + }, + // IDirect3DDevice8::GetBackBuffer2 + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer2_1_0_5455, + + XTL::EmuIDirect3DDevice8_GetBackBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer2_5455" + #endif + }, + // IDirect3DDevice8::SetShaderConstantMode (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetShaderConstantMode_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetShaderConstantMode" + #endif + }, + // IDirect3DResource8::Register (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Register_1_0_3925, + + XTL::EmuIDirect3DResource8_Register, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Register" + #endif + }, + // IDirect3DResource8::AddRef (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_AddRef_1_0_3925, + + XTL::EmuIDirect3DResource8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_AddRef" + #endif + }, + // IDirect3DResource8::Release (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Release_1_0_3925, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Release" + #endif + }, + // IDirect3DSurface8::GetDesc (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DSurface8_GetDesc_1_0_4361, + + XTL::EmuIDirect3DSurface8_GetDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_GetDesc" + #endif + }, + // IDirect3DPalette8::Lock2 (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DPalette8_Lock2_1_0_5233, + + XTL::EmuIDirect3DPalette8_Lock2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DPalette8_Lock2" + #endif + }, + // IDirect3DTexture8::LockRect + { + (OOVPA*)&D3DTexture_LockRect_1_0_5558, + + XTL::EmuIDirect3DTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_LockRect" + #endif + }, + // IDirect3DSurface8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DSurface8_LockRect_1_0_3925, + + XTL::EmuIDirect3DSurface8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_LockRect" + #endif + }, + // IDirect3DBaseTexture8::GetLevelCount (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DBaseTexture8_GetLevelCount_1_0_4361, + + XTL::EmuIDirect3DBaseTexture8_GetLevelCount, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DBaseTexture8_GetLevelCount" + #endif + }, + // IDirect3DTexture8::GetSurfaceLevel2 (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DTexture8_GetSurfaceLevel2_1_0_4627, + + XTL::EmuIDirect3DTexture8_GetSurfaceLevel2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetSurfaceLevel2" + #endif + }, + // IDirect3DDevice8::GetRenderTarget2 (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_GetRenderTarget2_1_0_5233, + + XTL::EmuIDirect3DDevice8_GetRenderTarget2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetRenderTarget2" + #endif + }, + // IDirect3D8::CheckDeviceMultiSampleType + { + (OOVPA*)&IDirect3D8_CheckDeviceMultiSampleType_1_0_5558, + + XTL::EmuIDirect3D8_CheckDeviceMultiSampleType, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CheckDeviceMultiSampleType" + #endif + }, + // IDirect3D8::GetDeviceCaps (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3D8_GetDeviceCaps_1_0_5233, + + XTL::EmuIDirect3D8_GetDeviceCaps, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_GetDeviceCaps" + #endif + }, + // IDirect3D8::SetPushBufferSize + { + (OOVPA*)&IDirect3D8_SetPushBufferSize_1_0_5558, + XTL::EmuIDirect3D8_SetPushBufferSize, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_SetPushBufferSize" + #endif + }, + // IDirect3DDevice8::DrawVertices (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_5233, + + XTL::EmuIDirect3DDevice8_DrawVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVertices" + #endif + }, + // D3D::SetFence (XREF) + { + (OOVPA*)&D3D_SetFence_1_0_5558,0, + + #ifdef _DEBUG_TRACE + "D3D::SetFence (XREF)" + #endif + }, + // IDirect3DDevice8::InsertFence (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_InsertFence_1_0_5233, + + XTL::EmuIDirect3DDevice8_InsertFence, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_InsertFence" + #endif + }, + // D3D::BlockOnTime (XREF) + { + (OOVPA*)&D3D_BlockOnTime_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "D3D::BlockOnTime (XREF)" + #endif + }, + // IDirect3DDevice8::BlockOnFence (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_BlockOnFence_1_0_5233, + + XTL::EmuIDirect3DDevice8_BlockOnFence, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockOnFence" + #endif + }, + // D3D::BlockOnResource (XREF) + { + (OOVPA*)&D3D_BlockOnResource_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "D3D::BlockOnResource (XREF)" + #endif + }, + // IDirect3DResource8::BlockUntilNotBusy + { + (OOVPA*)&IDirect3DResource8_BlockUntilNotBusy_1_0_5558, + + XTL::EmuIDirect3DResource8_BlockUntilNotBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_BlockUntilNotBusy" + #endif + }, + // IDirect3DVertexBuffer8::GetDesc (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DVertexBuffer8_GetDesc_1_0_5233, + + XTL::EmuIDirect3DVertexBuffer8_GetDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_GetDesc" + #endif + }, + // IDirect3DDevice8::CopyRects (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_CopyRects_1_0_5233, + + XTL::EmuIDirect3DDevice8_CopyRects, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CopyRects" + #endif + }, + // IDirect3DDevice8::SetScissors + { + (OOVPA*)&IDirect3DDevice8_SetScissors_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetScissors, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScissors" + #endif + }, + // IDirect3DDevice8::SetScissors + { + (OOVPA*)&IDirect3DDevice8_SetScissors_1_0_5455, + + XTL::EmuIDirect3DDevice8_SetScissors, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScissors_5455" + #endif + }, + // IDirect3DDevice8::GetDepthStencilSurface2 (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_GetDepthStencilSurface2_1_0_5233, + + XTL::EmuIDirect3DDevice8_GetDepthStencilSurface2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDepthStencilSurface2" + #endif + }, + // IDirect3DDevice8::AddRef + { + (OOVPA*)&IDirect3DDevice8_AddRef_1_0_5558, + + XTL::EmuIDirect3DDevice8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_AddRef" + #endif + }, + // IDirect3DDevice8::CreatePixelShader + { + (OOVPA*)&IDirect3DDevice8_CreatePixelShader_1_0_5558, + + XTL::EmuIDirect3DDevice8_CreatePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePixelShader" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant4 + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant4_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant4, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant4" + #endif + }, + // IDirect3DDevice8::DrawVerticesUP + { + (OOVPA*)&IDirect3DDevice8_DrawVerticesUP_1_0_5558, + + XTL::EmuIDirect3DDevice8_DrawVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVerticesUP" + #endif + }, + // IDirect3DDevice8::GetTransform (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_GetTransform_1_0_4361, + + XTL::EmuIDirect3DDevice8_GetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTransform" + #endif + }, + // IDirect3DDevice8::CreateIndexBuffer2 + { + (OOVPA*)&D3DDevice_CreateIndexBuffer2_1_0_5558, + + XTL::EmuIDirect3DDevice8_CreateIndexBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateIndexBuffer2" + #endif + }, + // IDirect3DDevice8::CreateIndexBuffer + { + (OOVPA*)&IDirect3DDevice8_CreateIndexBuffer_1_0_5558, + + XTL::EmuIDirect3DDevice8_CreateIndexBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateIndexBuffer" + #endif + }, + // D3DDevice_SetVerticalBlankCallback + { + (OOVPA*)&D3DDevice_SetVerticalBlankCallback_1_0_5558, + XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVerticalBlankCallback" + #endif + }, + // D3DDevice_SetVerticalBlankCallback + { + (OOVPA*)&IDirect3DDevice8_SetVerticalBlankCallback_1_0_5455, + XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVerticalBlankCallback (5455)" + #endif + }, + // D3DDevice_SetSwapCallback + { + (OOVPA*)&D3DDevice_SetSwapCallback_1_0_5558, + XTL::EmuIDirect3DDevice8_SetSwapCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSwapCallback" + #endif + }, + // IDirect3DDevice8::GetGammaRamp (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetGammaRamp_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetGammaRamp" + #endif + }, + // IDirect3DDevice8::SetRenderState_TextureFactor + { + (OOVPA*)&D3DDevice_SetRenderState_TextureFactor_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // IDirect3DDevice8::SetRenderState_VertexBlend (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_VertexBlend_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_VertexBlend" + #endif + }, + // IDirect3D8::KickOffAndWaitForIdle (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3D8_KickOffAndWaitForIdle_1_0_5233, + + XTL::EmuIDirect3D8_KickOffAndWaitForIdle, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_KickOffAndWaitForIdle" + #endif + }, + // IDirect3DDevice8::Reset (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_Reset_1_0_4134, + + XTL::EmuIDirect3DDevice8_Reset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Reset" + #endif + }, + // D3DDevice_SetRenderState_SampleAlpha (* unchanged since 5233 *) + { + (OOVPA*)&D3DDevice_SetRenderState_SampleAlpha_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_SampleAlpha, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_SampleAlpha" + #endif + }, + // IDirect3DDevice8::SetGammaRamp (* unchanged since 4928 *) + { + (OOVPA*)&IDirect3DDevice8_SetGammaRamp_1_0_4928, + + XTL::EmuIDirect3DDevice8_SetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetGammaRamp" + #endif + }, + // IDirect3DDevice8::GetViewport + { + (OOVPA*)&D3DDevice_GetViewport_1_0_5558, + + XTL::EmuIDirect3DDevice8_GetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetViewport" + #endif + }, + // IDirect3DDevice8_GetProjectionViewportMatrix + { + (OOVPA*)&IDirect3DDevice8_GetProjectionViewportMatrix_1_0_5455, + + XTL::EmuIDirect3DDevice8_GetProjectionViewportMatrix, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetProjectionViewportMatrix (5455)" + #endif + }, + // IDirect3DDevice8::GetModelView + { + (OOVPA*)&D3DDevice_GetModelView_1_0_5558, + + XTL::EmuIDirect3DDevice8_GetModelView, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetModelView" + #endif + }, + // IDirect3DDevice8::SetBackMaterial + { + (OOVPA*)&D3DDevice_SetBackMaterial_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetBackMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetBackMaterial" + #endif + }, + // IDirect3DDevice8::SetRenderState_TwoSidedLighting + { + (OOVPA*)&D3DDevice_SetRenderState_TwoSidedLighting_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TwoSidedLighting" + #endif + }, + // IDirect3DDevice8::BeginStateBlock + { + (OOVPA*)&D3DDevice_BeginStateBlock_1_0_5558, + + XTL::EmuIDirect3DDevice8_BeginStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginStateBlock" + #endif + }, + // IDirect3DDevice8::EndStateBlock + { + (OOVPA*)&D3DDevice_EndStateBlock_1_0_5558, + + XTL::EmuIDirect3DDevice8_EndStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndStateBlock" + #endif + }, + // IDirect3DDevice8_GetDeviceCaps (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_GetDeviceCaps_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetDeviceCaps, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDeviceCaps" + #endif + }, + // IDirect3DDevice8::SetRenderState_FrontFace (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FrontFace_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FrontFace, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FrontFace" + #endif + }, + // Get2DSurfaceDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_5558, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuGet2DSurfaceDesc" + #endif + }, + // D3D::MakeRequestedSpace + { + (OOVPA*)&D3D_MakeRequestedSpace_1_0_5558, + + XTL::EmuD3D_MakeRequestedSpace, + + #ifdef _DEBUG_TRACE + "EmuD3D::MakeRequestedSpace" + #endif + }, + // D3DDevice_MakeSpace + { + (OOVPA*)&D3DDevice_MakeSpace_1_0_5558, + XTL::EmuD3DDevice_MakeSpace, + + #ifdef _DEBUG_TRACE + "D3DDevice_MakeSpace" + #endif + }, + // IDirect3DDevice8::SetRenderTarget + { + (OOVPA*)&D3DDevice_SetRenderTarget_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTarget" + #endif + }, + // IDirect3DDevice8::SetPixelShaderConstant + { + (OOVPA*)&D3DDevice_SetPixelShaderConstant_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetPixelShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderConstant" + #endif + }, + // Lock2DSurface (* unchanged since 3925 *) + { + (OOVPA*)&Lock2DSurface_1_0_3925, + + XTL::EmuLock2DSurface, + + #ifdef _DEBUG_TRACE + "EmuLock2DSurface" + #endif + }, + // IDirect3DDevice8::SetFlickerFilter + { + (OOVPA*)&IDirect3DDevice8_SetFlickerFilter_1_0_5455, + + XTL::EmuIDirect3DDevice8_SetFlickerFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetFlickerFilter_5455" + #endif + }, + // IDirect3DDevice8::BlockUntilVerticalBlank + { + (OOVPA*)&IDirect3DDevice8_BlockUntilVerticalBlank_1_0_5455, + + XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockUntilVerticalBlank_5455" + #endif + }, + // IDirect3DDevice8::SetScreenSpaceOffset + { + (OOVPA*)&IDirect3DDevice8_SetScreenSpaceOffset_1_0_5455, + + XTL::EmuIDirect3DDevice8_SetScreenSpaceOffset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScreenSpaceOffset_5455" + #endif + }, + // IDirect3DDevice8::SetScreenSpaceOffset + { + (OOVPA*)&IDirect3DDevice8_SetScreenSpaceOffset_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetScreenSpaceOffset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScreenSpaceOffset" + #endif + }, + // IDirect3DDevice8_InsertCallback + { + (OOVPA*)&D3DDevice_InsertCallback_1_0_5558, + + XTL::EmuIDirect3DDevice8_InsertCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_InsertCallback" + #endif + }, + // IDirect3DDevice8::SetRenderState_LineWidth + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_LineWidth_1_0_5455, + + XTL::EmuIDirect3DDevice8_SetRenderState_LineWidth, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LineWidth_5455" + #endif + }, + // D3DDevice_FlushVertexCache + { + (OOVPA*)&D3DDevice_FlushVertexCache_1_0_5558, + XTL::EmuIDirect3DDevice8_FlushVertexCache, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_FlushVertexCache" + #endif + }, + // IDirect3DDevice8::EnableOverlay (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_EnableOverlay_1_0_4361, + + XTL::EmuIDirect3DDevice8_EnableOverlay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EnableOverlay" + #endif + }, + // D3DDevice_SetRenderState_LogicOp + { + (OOVPA*)&D3DDevice_SetRenderState_LogicOp_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetRenderState_LogicOp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LogicOp" + #endif + }, + // IDirect3DDevice8::LightEnable + { + (OOVPA*)&IDirect3DDevice8_LightEnable_1_0_5455, + + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable_5455" + #endif + }, + // D3DDevice_SetModelView + { + (OOVPA*)&D3DDevice_SetModelView_1_0_5558, + XTL::EmuIDirect3DDevice8_SetModelView, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetModelView" + #endif + }, + // D3DDevice_GetBackBuffer + { + (OOVPA*)&D3DDevice_GetBackBuffer_1_0_5558, + XTL::EmuIDirect3DDevice8_GetBackBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer" + #endif + }, + // D3DDevice_PersistDisplay + { + (OOVPA*)&D3DDevice_PersistDisplay_1_0_5558, + XTL::EmuIDirect3DDevice8_PersistDisplay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_PersistDisplay" + #endif + }, + // D3DCubeTexture_GetCubeMapSurface + { + (OOVPA*)&D3DCubeTexture_GetCubeMapSurface_1_0_5558, + XTL::EmuIDirect3DCubeTexture8_GetCubeMapSurface, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DCubeTexture8_GetCubeMapSurface" + #endif + }, + // IDirect3DDevice8::GetCreationParameters (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetCreationParameters_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetCreationParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetCreationParameters" + #endif + }, + // IDirect3DDevice8::SetVertexDataColor + { + (OOVPA*)&D3DDevice_SetVertexDataColor_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetVertexDataColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexDataColor" + #endif + }, + // IDirect3DDevice8::SetVertexData4f + { + (OOVPA*)&D3DDevice_SetVertexData4f_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetVertexData4f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4f" + #endif + }, + // IDirect3DDevice8::SetVertexData2f + { + (OOVPA*)&D3DDevice_SetVertexData2f_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::ApplyStateBlock (* unchanged since 4627 *) + { + (OOVPA*)&D3DDevice_ApplyStateBlock_1_0_4627, + + XTL::EmuIDirect3DDevice8_ApplyStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_ApplyStateBlock" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZCmpAlwaysRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead" + #endif + }, + // IDirect3DCubeTexture8::GetCubeMapSurface2 (* Unchanged since 4627 *) + { + (OOVPA*)&D3DCubeTexture_GetCubeMapSurface2_1_0_4627, + + XTL::EmuIDirect3DCubeTexture8_GetCubeMapSurface2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DCubeTexture8_GetCubeMapSurface2" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_DoNotCullUncompressed (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed" + #endif + }, + // D3DDevice_LoadVertexShaderProgram + { + (OOVPA*)&D3DDevice_LoadVertexShaderProgram_1_0_5558, + + XTL::EmuIDirect3DDevice8_LoadVertexShaderProgram, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShaderProgram" + #endif + }, + // D3DDevice_SetPixelShaderProgram + { + (OOVPA*)&D3DDevice_SetPixelShaderProgram_1_0_5558, + XTL::EmuIDirect3DDevice8_SetPixelShaderProgram, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderProgram" + #endif + }, + // IDirect3DDevice8::SetRenderState_BackFillMode (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_BackFillMode_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_BackFillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_BackFillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_TextureFactor (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // D3DDevice_SetRenderState_MultiSampleMask (* unchanged since 5233 *) + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleMask_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMask, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMask" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMode + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleMode_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMode + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleMode_1_0_5455, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMode (5455)" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleRenderTargetMode + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleRenderTargetMode_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleRenderTargetMode + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleRenderTargetMode_1_0_5455, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode (5455)" + #endif + }, + // IDirect3DDevice8::SetRenderState_Dxt1NoiseEnable + { + (OOVPA*)&D3DDevice_SetRenderState_Dxt1NoiseEnable_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilCullEnable" + #endif + }, + // IDirect3DDevice8::SetTextureState_ColorKeyColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_ColorKeyColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_ColorKeyColor" + #endif + }, + // IDirect3DDevice8::IsFencePending + { + (OOVPA*)&D3DDevice_IsFencePending_1_0_5558, + + XTL::EmuIDirect3DDevice8_IsFencePending, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_IsFencePending" + #endif + }, + // IDirect3DDevice8::SetRenderTargetFast (* unchanged since 5344 *) + { + (OOVPA*)&D3DDevice_SetRenderTargetFast_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetRenderTargetFast, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTargetFast" + #endif + }, +}; + +// ****************************************************************** +// * D3D8_1_0_5558_SIZE +// ****************************************************************** +uint32 D3D8_1_0_5558_SIZE = sizeof(D3D8_1_0_5558); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5849.h b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5849.h new file mode 100644 index 000000000..2f0e2fef2 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5849.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.5849.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_1_0_5849_H +#define D3D8_1_0_5849_H + +#include "OOVPA.h" + +extern OOVPATable D3D8_1_0_5849[]; +extern uint32 D3D8_1_0_5849_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5849.inl b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5849.inl new file mode 100644 index 000000000..ec4fcb405 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8.1.0.5849.inl @@ -0,0 +1,3373 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5849.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * IDirect3DDevice8_EndVisibilityTest +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_EndVisibilityTest_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // XRef Not Used + + { + { 0x10, 0x09 }, + { 0x12, 0x0E }, + { 0x18, 0x04 }, + { 0x34, 0xCC }, + { 0x3D, 0x0E }, + { 0x50, 0x0C }, + { 0x58, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetVisibilityTestResult +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_GetVisibilityTestResult_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // XRef Not Used + + { + { 0x0E, 0x08 }, + { 0x10, 0xFF }, + { 0x2A, 0x16 }, + { 0x3C, 0x76 }, + { 0x3F, 0x0C }, + { 0x51, 0x0A }, + { 0x5F, 0x0C }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetViewport +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_GetViewport_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // XRef Not Used + + { + { 0x09, 0x05 }, + { 0x14, 0x04 }, + { 0x1D, 0x08 }, + { 0x20, 0x0C }, + { 0x26, 0x10 }, + { 0x2B, 0x40 }, + { 0x2F, 0x14 }, + { 0x31, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetBackBufferScale +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetBackBufferScale_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x1E, 0x24 }, + { 0x3E, 0x06 }, + { 0x62, 0xD9 }, + { 0x7E, 0xC4 }, + { 0x9E, 0x81 }, + { 0xBE, 0xFF }, + { 0xDE, 0xC0 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetBackBuffer2 +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_GetBackBuffer2_1_0_5849 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 0, // XRef Not Used + + { + // IDirect3DDevice8_GetBackBuffer2+0x04 : cmp eax, 0xFFFFFFFF + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_GetBackBuffer2+0x0D : jnz +0x19 + { 0x0D, 0x75 }, // (Offset,Value)-Pair #4 + { 0x0E, 0x19 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_GetBackBuffer2+0x18 : mov esi, [ecx+eax*4+0x21C0] + { 0x15, 0x8B }, // (Offset,Value)-Pair #6 + { 0x16, 0xB4 }, // (Offset,Value)-Pair #7 + { 0x17, 0x81 }, // (Offset,Value)-Pair #8 + { 0x18, 0x14 }, // (Offset,Value)-Pair #9 + { 0x19, 0x1A }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_GetBackBuffer2+0x40 : retn 0x04 + { 0x40, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x41, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_GetDepthStencilSurface2 +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_GetDepthStencilSurface2_1_0_5849 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 0, // XRef Not Used + + { + // IDirect3DDevice8_GetDepthStencilSurface2+0x00 : mov eax, [addr] + { 0x00, 0xA1 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_GetDepthStencilSurface2+0x05 : push esi + { 0x05, 0x56 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_GetDepthStencilSurface2+0x06 : mov esi, [eax + 0x1A08] + { 0x06, 0x8B }, // (Offset,Value)-Pair #3 + { 0x07, 0xB0 }, // (Offset,Value)-Pair #4 + { 0x08, 0x08 }, // (Offset,Value)-Pair #5 + { 0x09, 0x1A }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_GetDepthStencilSurface2+0x0E : jnz +0x04 + { 0x0E, 0x75 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_GetDepthStencilSurface2+0x15 : call [addr] + { 0x15, 0xE8 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_GetDepthStencilSurface2+0x1D : retn + { 0x1D, 0xC3 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateVertexShader +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_CreateVertexShader_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x1E, 0x85 }, + { 0x3E, 0xE8 }, + { 0x5E, 0x75 }, + { 0x7E, 0x04 }, + { 0x9E, 0x24 }, + { 0xBE, 0x24 }, + { 0xDE, 0x83 }, + { 0xFE, 0xC7 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreatePixelShader +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_CreatePixelShader_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x07, 0x00 }, + { 0x10, 0xC0 }, + { 0x19, 0x08 }, + { 0x22, 0x78 }, + { 0x2B, 0x00 }, + { 0x34, 0xB9 }, + { 0x3D, 0x24 }, + { 0x46, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexData4f +// ****************************************************************** +SOOVPA<17> IDirect3DDevice8_SetVertexData4f_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // XRef Not Used + + { + { 0x0A, 0x46 }, + { 0x16, 0x08 }, + { 0x22, 0x09 }, + { 0x2E, 0x24 }, + { 0x3A, 0x24 }, + { 0x46, 0x8B }, + { 0x52, 0x14 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexDataColor +// ****************************************************************** +SOOVPA<17> IDirect3DDevice8_SetVertexDataColor_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // XRef Not Used + + { + { 0x08, 0x06 }, + { 0x14, 0x8B }, + { 0x1C, 0x19 }, + { 0x26, 0xB6 }, + { 0x30, 0x00 }, + { 0x3A, 0xFF }, + { 0x44, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_TextureFactor +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetRenderState_TextureFactor_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // XRef Not Used + + { + { 0x09, 0x84 }, + { 0x14, 0x46 }, + { 0x1F, 0x24 }, + { 0x2A, 0xBA }, + { 0x35, 0x4A }, + { 0x40, 0x5E }, + { 0x4D, 0x5E }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilEnable +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_StencilEnable_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // XRef Not Used + { + { 0x12, 0x8B }, + { 0x24, 0x33 }, + { 0x37, 0x74 }, + { 0x4A, 0x1E }, + { 0x5D, 0x74 }, + { 0x70, 0xB9 }, + { 0x83, 0x40 }, + { 0x96, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetIndices +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetIndices_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // XRef Not Used + + { + { 0x0F, 0x10 }, + { 0x20, 0xC7 }, + { 0x31, 0xC0 }, + { 0x42, 0x78 }, + { 0x53, 0xBE }, + { 0x64, 0x89 }, + { 0x75, 0x10 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVertices +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_DrawIndexedVertices_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // XRef Not Used + + { + { 0x1E, 0x5E }, + { 0x3E, 0x17 }, + { 0x5E, 0x00 }, + { 0x7E, 0x8B }, + { 0x9E, 0x89 }, + { 0xBE, 0x2B }, + { 0xDE, 0x00 }, + { 0xFE, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVerticesUP +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_DrawIndexedVerticesUP_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // XRef Not Used + + { + { 0x1F, 0x05 }, + { 0x3A, 0x89 }, + { 0x64, 0xF0 }, + { 0x73, 0x13 }, + { 0x94, 0xAF }, + { 0xAB, 0x12 }, + { 0xE4, 0xDB }, + { 0xFF, 0x0C }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetMaterial +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetMaterial_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x04, 0x08 }, + { 0x0C, 0x81 }, + { 0x0E, 0x00 }, + { 0x10, 0x00 }, + { 0x16, 0x00 }, + { 0x1F, 0x81 }, + { 0x22, 0x90 }, + { 0x2C, 0x5E }, + { 0x2E, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BeginStateBig +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_BeginStateBig_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x07, 0x01 }, + { 0x10, 0x8D }, + { 0x19, 0x3B }, + { 0x22, 0x8B }, + { 0x2B, 0x00 }, + { 0x34, 0xCA }, + { 0x40, 0x5E }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateVertexBuffer2 +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_CreateVertexBuffer2_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x08, 0xE8 }, + { 0x12, 0x1E }, + { 0x1C, 0x50 }, + { 0x26, 0x68 }, + { 0x31, 0x33 }, + { 0x3A, 0xFF }, + { 0x44, 0x01 }, + } +}; + +// ****************************************************************** +// * IDirect3DVertexBuffer8_Lock +// ****************************************************************** +SOOVPA<8> IDirect3DVertexBuffer8_Lock_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x01, 0x51 }, + { 0x07, 0x8B }, + { 0x08, 0x4C }, + { 0x0A, 0x04 }, + { 0x0D, 0x24 }, + { 0x10, 0xC1 }, + { 0x13, 0x33 }, + { 0x16, 0x08 }, + } +}; + +// ****************************************************************** +// * D3DVertexBuffer_Lock2 +// ****************************************************************** +SOOVPA<7> IDirect3DVertexBuffer8_Lock2_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x08, 0x56 }, + { 0x12, 0x06 }, + { 0x1D, 0xC7 }, + { 0x26, 0x00 }, + { 0x30, 0xC3 }, + { 0x3E, 0x8B }, + { 0x44, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_LightEnable +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_LightEnable_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x1E, 0x8D }, + { 0x3E, 0xC7 }, + { 0x5E, 0xC7 }, + { 0x7E, 0x00 }, + { 0x9E, 0x85 }, + { 0xBE, 0x01 }, + { 0xDE, 0x00 }, + { 0xFE, 0x83 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVertices +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_DrawVertices_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x12, 0x8B }, + { 0x26, 0x8B }, + { 0x37, 0x00 }, + { 0x4A, 0x27 }, + { 0x5D, 0x89 }, + { 0x70, 0x75 }, + { 0x83, 0x40 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderTarget +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderTarget_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x1E, 0x44 }, + { 0x3E, 0x2C }, + { 0x5E, 0x8B }, + { 0x7E, 0xDE }, + { 0xA0, 0x89 }, + { 0xBE, 0x09 }, + { 0xDE, 0x8B }, + { 0xFE, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirect3D8_AllocContiguousMemory +// ****************************************************************** +SOOVPA<7> IDirect3D8_AllocContiguousMemory_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x05, 0x10 }, + { 0x0C, 0x00 }, + { 0x13, 0x00 }, + { 0x1A, 0x08 }, + { 0x21, 0xBC }, + { 0x28, 0x0D }, + { 0x2F, 0x24 }, + } +}; + +// ****************************************************************** +// * IDirect3DTexture8_GetLevelDesc +// ****************************************************************** +// * NOTE: We are actually intercepting Get2DSurfaceDesc, because +// * GetLevelDesc Simply redirects to that function +// ****************************************************************** +SOOVPA<10> Get2DSurfaceDesc_1_0_5849 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 0, // XRef Not Used + + { + // 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+0x1A14] + { 0x52, 0x8B }, // (Offset,Value)-Pair #5 + { 0x53, 0x90 }, // (Offset,Value)-Pair #6 + { 0x54, 0x14 }, // (Offset,Value)-Pair #7 + { 0x55, 0x1A }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDesc+0xAE : retn 0x0C + { 0xAE, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xAF, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateTexture2 +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_CreateTexture2_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, // ?? XREF_D3DDevice_CreateTexture2, // Xref Is Saved + XRefNotUsed, + + { + { 0x14, 0x4C }, + { 0x2A, 0x8B }, + { 0x42, 0x8B }, + { 0x56, 0x80 }, + { 0x70, 0x85 }, + { 0x82, 0x5E }, + { 0x98, 0x89 }, + { 0xAE, 0x1C }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderConstant1 +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetVertexShaderConstant1_1_0_5849 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 0, // XRef Not Used + + { + // IDirect3DDevice8_SetVertexShaderConstant1+0x05 : add eax, 0x1C + { 0x06, 0x83 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x08, 0x1C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x0E : jnb +0x43 + { 0x0F, 0x73 }, // (Offset,Value)-Pair #4 + { 0x10, 0x43 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x28 : mov [eax-0x18], ecx + { 0x1D, 0x89 }, // (Offset,Value)-Pair #6 + { 0x1E, 0x48 }, // (Offset,Value)-Pair #7 + { 0x1F, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x3D : retn + { 0x53, 0xC3 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x47 : jmp +0xA2 + { 0x5D, 0xEB }, // (Offset,Value)-Pair #10 + { 0x5E, 0xA2 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexData2f +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetVertexData2f_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // XRef Not Used + + { + { 0x0D, 0x05 }, + { 0x17, 0x8D }, + { 0x19, 0xCD }, + { 0x1F, 0x4C }, + { 0x25, 0x54 }, + { 0x27, 0x10 }, + { 0x30, 0x0C }, + { 0x35, 0x0C }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVerticesUP +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_DrawVerticesUP_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x1E, 0x72 }, + { 0x3E, 0xC0 }, + { 0x5E, 0xC6 }, + { 0x7E, 0x14 }, + { 0x9E, 0x00 }, + { 0xBE, 0x81 }, + { 0xDE, 0x8B }, + { 0xFE, 0x7D }, + } +}; + +// ****************************************************************** +// * IDirect3DTexture8_LockRect +// ****************************************************************** +SOOVPA<7> IDirect3DTexture8_LockRect_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x03, 0x14 }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x8B }, + { 0x17, 0x50 }, + { 0x20, 0xC2 }, + { 0x21, 0x14 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_BeginPushBuffer +// ****************************************************************** +SOOVPA<6> IDirect3DDevice8_BeginPushBuffer_1_0_5849 = +{ + 0, // Large == 0 + 6, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x09, 0x00 }, + { 0x11, 0x8B }, + { 0x2F, 0x08 }, + { 0x43, 0x57 }, + { 0x58, 0xC8 }, + { 0x63, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_EndPushBuffer +// ****************************************************************** +SOOVPA<6> IDirect3DDevice8_EndPushBuffer_1_0_5849 = +{ + 0, // Large == 0 + 6, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x09, 0x00 }, + { 0x15, 0x50 }, + { 0x47, 0x7B }, + { 0x61, 0x78 }, + { 0x77, 0x07 }, + { 0x8C, 0xC3 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_RunPushBuffer +// ****************************************************************** +SOOVPA<6> IDirect3DDevice8_RunPushBuffer_1_0_5849 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + 0, // XRef Not Used + + { + { 0x0E, 0xED }, + { 0x42, 0x18 }, + { 0x62, 0x04 }, + { 0x8D, 0x1C }, + { 0xAF, 0x0F }, + { 0xF6, 0x41 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVerticalBlankCallback +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetVerticalBlankCallback_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 1, // XRef Is Used + + { + { 0x06, XREF_D3DDEVICE }, + + { 0x01, 0x44 }, + { 0x03, 0x04 }, + { 0x05, 0x0D }, + { 0x0C, 0xB8 }, + { 0x0D, 0x1D }, + { 0x11, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetViewport +// ****************************************************************** +SOOVPA<8> D3DDevice_SetViewport_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x1E, 0x86 }, + { 0x3E, 0x1B }, + { 0x5E, 0x8B }, + { 0x7E, 0x6D }, + { 0x9E, 0x81 }, + { 0xBE, 0x0C }, + { 0xDE, 0x75 }, + { 0xFE, 0x85 }, + } +}; + +// ****************************************************************** +// * D3DDevice_BlockUntilVerticalBlank +// ****************************************************************** +SOOVPA<7> D3DDevice_BlockUntilVerticalBlank_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x05, 0x6A }, + { 0x08, 0x00 }, + { 0x0D, 0xC0 }, + { 0x12, 0x00 }, + { 0x17, 0x05 }, + { 0x1C, 0x50 }, + { 0x23, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetBackMaterial +// ****************************************************************** +SOOVPA<9> D3DDevice_SetBackMaterial_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x04, 0x08 }, + { 0x0C, 0x81 }, + { 0x0E, 0x44 }, + { 0x10, 0x00 }, + { 0x16, 0x00 }, + { 0x1F, 0x81 }, + { 0x22, 0x90 }, + { 0x2C, 0x5E }, + { 0x2E, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_TwoSidedLighting +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderState_TwoSidedLighting_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x0E, 0x05 }, + { 0x1E, 0x89 }, + { 0x30, 0x00 }, + { 0x40, 0x89 }, + { 0x52, 0x8B }, + { 0x60, 0x75 }, + { 0x6E, 0x48 }, + { 0x7E, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirectD3DDevice8_Release +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_Release_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x07, 0x8B }, + { 0x0C, 0x00 }, + { 0x13, 0xCF }, + { 0x1A, 0x28 }, + { 0x21, 0x05 }, + { 0x28, 0x00 }, + { 0x2F, 0x89 }, + { 0x36, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3D::KickOffAndWaitForIdle +// ****************************************************************** +/*SOOVPA<5> D3D_KickOffAndWaitForIdle_1_0_5849 = +{ + 0, // Large == 0 + 5, // Count == 5 + + XREF_D3D_KickOffAndWaitForIdle, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x05, 0x8B }, + { 0x06, 0x48 }, + { 0x07, 0x2C }, + { 0x0A, 0x51 }, + { 0x10, 0xC3 }, + } +};*/ + +// ****************************************************************** +// * D3DDevice_SetTile +// ****************************************************************** +SOOVPA<10> D3DDevice_SetTileNoWait_1_0_5849 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 0, // Xref Not Used + + { + // D3DDevice_SetTileNoWait+0x00: sub esp, 0x1C + { 0x00, 0x83 }, + { 0x01, 0xEC }, + { 0x02, 0x1C }, + // D3DDevice_SetTileNoWait+0x45: lea ebx, [ebx+ebp*8+0x1AC0] + { 0x45, 0x8D }, + { 0x46, 0x9C }, + { 0x47, 0xEB }, + { 0x48, 0xC0 }, + { 0x49, 0x1A }, + { 0x4A, 0x00 }, + { 0x4B, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetSwapCallback +// ****************************************************************** +SOOVPA<7> D3DDevice_SetSwapCallback_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x0A, 0x89 }, + { 0x0B, 0x81 }, + { 0x0C, 0xB4 }, + { 0x0D, 0x1D }, + { 0x10, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_StencilFail +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderState_StencilFail_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x0C, 0x89 }, + { 0x1E, 0x8B }, + { 0x28, 0x74 }, + { 0x36, 0xD2 }, + { 0x44, 0x3D }, + { 0x52, 0xC7 }, + { 0x60, 0x04 }, + { 0x6E, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_VertexBlend +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_VertexBlend_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x07, 0xCA }, + { 0x13, 0x89 }, + { 0x19, 0x8B }, + { 0x25, 0x8B }, + { 0x2B, 0x28 }, + { 0x34, 0x08 }, + { 0x3D, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice8::SetRenderState_LineWidth +// ****************************************************************** +SOOVPA<13> D3DDevice_SetRenderState_LineWidth_1_0_5849 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + 0, // XRef Not Used + + { + // IDirect3DDevice8_SetRenderState_LineWidth+0x00 : push ebx + { 0x00, 0x53 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x0C : mov [esp+8+argo_0], ebx + { 0x0C, 0x89 }, // (Offset,Value)-Pair #2 + { 0x0D, 0x5C }, // (Offset,Value)-Pair #3 + { 0x0E, 0x24 }, // (Offset,Value)-Pair #4 + { 0x0F, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x28 : fstp [esp+10h+var_10] + { 0x28, 0xD9 }, // (Offset,Value)-Pair #6 + { 0x29, 0x1C }, // (Offset,Value)-Pair #7 + { 0x2A, 0x24 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x30 : mov edi, eax + { 0x30, 0x8B }, // (Offset,Value)-Pair #9 + { 0x31, 0xF8 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_LineWidth+0x41 : cmp eax, [esi+4] + { 0x41, 0x3B }, // (Offset,Value)-Pair #11 + { 0x42, 0x46 }, // (Offset,Value)-Pair #12 + { 0x43, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + + +// ****************************************************************** +// * D3DDevice8::SetDepthClipPlanes +// ****************************************************************** +SOOVPA<13> D3DDevice_SetDepthClipPlanes_1_0_5849 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + 0, // XRef Not Used + + { + // _D3DDevice_SetDepthClipPlanes+0x00 : mov eax, [esp+Flags] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x0C }, // (Offset,Value)-Pair #4 + + // _D3DDevice_SetDepthClipPlanes+0x00 : ja short loc_27ABD0 ; jumptable 0027AB71 default case + { 0x0F, 0x77 }, // (Offset,Value)-Pair #5 + { 0x10, 0x5F }, // (Offset,Value)-Pair #6 + + // _D3DDevice_SetDepthClipPlanes+0x00 : jmp ds:off_27ABEC[eax*4] ; switch jump + { 0x11, 0xFF }, // (Offset,Value)-Pair #7 + { 0x12, 0x24 }, // (Offset,Value)-Pair #8 + { 0x13, 0x85 }, // (Offset,Value)-Pair #9 + { 0x14, 0xEC }, // (Offset,Value)-Pair #10 + { 0x15, 0xAB }, // (Offset,Value)-Pair #11 + { 0x16, 0x27 }, // (Offset,Value)-Pair #12 + { 0x17, 0x00 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * D3DDevice_SetPalette +// ****************************************************************** +SOOVPA<7> D3DDevice_SetPalette_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x10, 0x98 }, + { 0x22, 0x0F }, + { 0x34, 0x00 }, + { 0x46, 0x9C }, + { 0x58, 0xC5 }, + { 0x6E, 0x8B }, + { 0x7C, 0x89 }, + } +}; + +// ****************************************************************** +// * D3DDevice_LoadVertexShaderProgram +// ****************************************************************** +SOOVPA<7> D3DDevice_LoadVertexShaderProgram_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x0B, 0x2D }, + { 0x18, 0x10 }, + { 0x25, 0xE0 }, + { 0x32, 0x5F }, + { 0x3F, 0x24 }, + { 0x4C, 0x83 }, + { 0x5C, 0x89 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetPushBufferOffset +// ****************************************************************** +SOOVPA<7> D3DDevice_GetPushBufferOffset_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x13, 0xCA }, + { 0x28, 0xFF }, + { 0x3D, 0x89 }, + { 0x52, 0x12 }, + { 0x67, 0xAB }, + { 0x7C, 0x51 }, + { 0x91, 0x5F }, + } +}; + +// ****************************************************************** +// * D3D::MakeRequestedSpace +// ****************************************************************** +SOOVPA<9> D3D_MakeRequestedSpace_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_D3D_MakeRequestedSpace, // Xref Not Saved + 0, // Xref Not Used + + { + { 0x32, 0xC2 }, + { 0x33, 0x08 }, + { 0x8E, 0x83 }, + { 0x8F, 0xC0 }, + { 0x90, 0x04 }, + { 0xBD, 0xD1 }, + { 0xBE, 0xEB }, + { 0xBF, 0x03 }, + { 0xC0, 0xDF }, + } +}; + +// ****************************************************************** +// * D3D::Unknown (D3D::MakeSpace?) +// ****************************************************************** +// * FOR DEBUGGING ONLY! +// ****************************************************************** +SOOVPA<6> D3D_Unknown_1_0_5849 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x0A, XREF_D3D_MakeRequestedSpace }, + + { 0x05, 0x50 }, + { 0x06, 0xD1 }, + { 0x07, 0xE8 }, + { 0x08, 0x50 }, + { 0x0E, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3DDevice_FlushVertexCache +// ****************************************************************** +SOOVPA<10> D3DDevice_FlushVertexCache_1_0_5849 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x00, 0x56 }, + { 0x07, 0x8B }, + { 0x08, 0x06 }, + { 0x0D, 0x05 }, + { 0x13, 0xC7 }, + { 0x15, 0x10 }, + { 0x17, 0x04 }, + { 0x1C, 0x00 }, + { 0x21, 0xC0 }, + { 0x26, 0xC3 }, + } +}; + +// ****************************************************************** +// * D3DDevice_AddRef +// ****************************************************************** +SOOVPA<7> D3DDevice_AddRef_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x05, 0x8B }, + { 0x06, 0x88 }, + { 0x07, 0x38 }, + { 0x0A, 0x00 }, + { 0x0D, 0x88 }, + { 0x10, 0x00 }, + { 0x13, 0xC1 }, + } +}; + +// ****************************************************************** +// * D3D::ClearStateBlockFlags +// ****************************************************************** +SOOVPA<9> D3D_ClearStateBlockFlags_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_CLEARSTATEBLOCKFLAGS, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirect3D_ClearStateBlockFlags+0x0A : mov ecx, 0x87 + { 0x0A, 0xB9 }, // (Offset,Value)-Pair #1 + { 0x0B, 0x87 }, // (Offset,Value)-Pair #2 + + // IDirect3D_ClearStateBlockFlags+0x16 : mov ecx, [edx+0x07A4] + { 0x16, 0x8B }, // (Offset,Value)-Pair #3 + { 0x17, 0x8A }, // (Offset,Value)-Pair #4 + { 0x18, 0xA4 }, // (Offset,Value)-Pair #5 + { 0x19, 0x07 }, // (Offset,Value)-Pair #6 + + // IDirect3D_ClearStateBlockFlags+0x2F : add ecx, 0x90 + { 0x2F, 0x81 }, // (Offset,Value)-Pair #7 + { 0x30, 0xC1 }, // (Offset,Value)-Pair #8 + { 0x31, 0x90 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * D3D::RecordStateBlock +// ****************************************************************** +SOOVPA<10> D3D_RecordStateBlock_1_0_5849 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_RECORDSTATEBLOCK, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirect3D_RecordStateBlock+0x0F : mov eax, [edi+0x07A4] + { 0x0F, 0x8B }, // (Offset,Value)-Pair #1 + { 0x10, 0x87 }, // (Offset,Value)-Pair #2 + { 0x11, 0xA4 }, // (Offset,Value)-Pair #3 + { 0x12, 0x07 }, // (Offset,Value)-Pair #4 + + // IDirect3D_RecordStateBlock+0x95 : add ebx, ecx + { 0x95, 0x03 }, // (Offset,Value)-Pair #5 + { 0x96, 0xD9 }, // (Offset,Value)-Pair #6 + + // IDirect3D_RecordStateBlock+0xD5 : mov dword ptr [esi+0x0C], 1 + { 0xD5, 0xC7 }, // (Offset,Value)-Pair #7 + { 0xD6, 0x46 }, // (Offset,Value)-Pair #8 + { 0xD7, 0x0C }, // (Offset,Value)-Pair #9 + { 0xD8, 0x01 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_BackFillMode +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_BackFillMode_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x0B, 0xA3 }, + { 0x14, 0x04 }, + { 0x23, 0x8B }, + { 0x2A, 0xC9 }, + { 0x35, 0xC7 }, + { 0x40, 0x08 }, + { 0x4C, 0x5F }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_Dxt1NoiseEnable +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderState_Dxt1NoiseEnable_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x0D, 0x8B }, + { 0x1D, 0x80 }, + { 0x2B, 0x08 }, + { 0x3A, 0x01 }, + { 0x49, 0xC7 }, + { 0x58, 0x05 }, + { 0x67, 0xC0 }, + { 0x76, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetTile +// ****************************************************************** +SOOVPA<7> D3DDevice_GetTile_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x06, 0x8B }, + { 0x0E, 0x94 }, + { 0x16, 0x8B }, + { 0x1E, 0x04 }, + { 0x26, 0x48 }, + { 0x2E, 0x8B }, + { 0x36, 0x14 }, + } +}; + +// ****************************************************************** +// * D3DDevice_Swap +// ****************************************************************** +SOOVPA<7> D3DDevice_Swap_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x1B, 0xE8 }, + { 0x38, 0xC3 }, + { 0x55, 0xC0 }, + { 0x72, 0x3F }, + { 0x8F, 0x8E }, + { 0xAC, 0xC6 }, + { 0xC9, 0xC0 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Swap (2) +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_Swap2_1_0_5849 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 0, // XRef Not Used + + { + // IDirect3DDevice8_Swap+0x2A : mov ebx, 5 + { 0x2A, 0xBB }, // (Offset,Value)-Pair #1 + { 0x2B, 0x05 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_Swap+0x37 : test bl, 3 + { 0x37, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x38, 0xC3 }, // (Offset,Value)-Pair #4 + { 0x39, 0x03 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_Swap+0x60 : inc dword ptr [esi+0x2478] + { 0x60, 0xFF }, // (Offset,Value)-Pair #6 + { 0x61, 0x86 }, // (Offset,Value)-Pair #7 + { 0x62, 0x78 }, // (Offset,Value)-Pair #8 + { 0x63, 0x24 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_Swap+0xE0 : retn 4 + { 0xE0, 0xC2 }, // (Offset,Value)-Pair #10 + { 0xE1, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * D3D::CDevice::KickOff +// ****************************************************************** +SOOVPA<13> D3D_CDevice_KickOff_1_0_5849 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + 0, // Xref Is Used + + { + // D3D::CDevice::KickOff+0x0A : mov edx, [ecx+0x35C] + { 0x0A, 0x8B }, + { 0x0B, 0x96 }, + { 0x0C, 0x70 }, + { 0x0D, 0x07 }, + { 0x0E, 0x00 }, + { 0x0F, 0x00 }, + + // D3D::CDevice::KickOff+0x14 : test ch, 0x20 + { 0x14, 0xF6 }, + { 0x15, 0xC4 }, + { 0x16, 0x20 }, + + // D3D::CDevice::KickOff+0x24 : sfence + { 0x24, 0x0F }, + { 0x25, 0xAE }, + { 0x26, 0xF8 }, + + // D3D::CDevice::KickOff+0xAF : retn + { 0xAF, 0xC3 } + } +}; + +// ****************************************************************** +// * D3DDevice_SetSoftDisplayFilter +// ****************************************************************** +SOOVPA<7> D3DDevice_SetSoftDisplayFilter_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x0D, 0x56 }, + { 0x14, 0x8B }, + { 0x1F, 0x95 }, + { 0x2A, 0x00 }, + { 0x37, 0x33 }, + { 0x44, 0x01 }, + { 0x4D, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetFlickerFilter +// ****************************************************************** +SOOVPA<7> D3DDevice_SetFlickerFilter_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x07, 0xC9 }, + { 0x10, 0x24 }, + { 0x1A, 0x74 }, + { 0x22, 0x6A }, + { 0x2E, 0xC7 }, + { 0x34, 0x01 }, + { 0x3E, 0x5E }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleMode +// ****************************************************************** +SOOVPA<9> D3DDevice_SetRenderState_MultiSampleMode_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x03, 0x04 }, + { 0x0A, 0xA3 }, + { 0x0F, 0x8B }, + { 0x12, 0x1A }, + { 0x17, 0x14 }, + { 0x1B, 0x75 }, + { 0x1C, 0x07 }, + { 0x24, 0xC2 }, + { 0x26, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleRenderTargetMode +// ****************************************************************** +SOOVPA<9> D3DDevice_SetRenderState_MultiSampleRenderTargetMode_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x03, 0x04 }, + { 0x0A, 0xA3 }, + { 0x0F, 0x8B }, + { 0x12, 0x1A }, + { 0x17, 0x14 }, + { 0x1B, 0x74 }, + { 0x1C, 0x07 }, + { 0x24, 0xC2 }, + { 0x26, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleAntiAlias +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_MultiSampleAntiAlias_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x0D, 0xCE }, + { 0x1E, 0x8B }, + { 0x2B, 0xF9 }, + { 0x3A, 0xCF }, + { 0x49, 0x00 }, + { 0x58, 0xC1 }, + { 0x6B, 0x5F }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_MultiSampleMask +// ****************************************************************** +SOOVPA<8> D3DDevice_SetRenderState_MultiSampleMask_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x0A, 0xA3 }, + { 0x12, 0x56 }, + { 0x1C, 0x8B }, + { 0x2A, 0x85 }, + { 0x30, 0x01 }, + { 0x3D, 0xC7 }, + { 0x44, 0x78 }, + { 0x4E, 0x04 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetPixelShaderConstant +// ****************************************************************** +SOOVPA<7> D3DDevice_SetPixelShaderConstant_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x1E, 0x85 }, + { 0x3E, 0x8B }, + { 0x5E, 0xC0 }, + { 0x7E, 0x0F }, + { 0x9F, 0x8B }, + { 0xBE, 0x00 }, + { 0xDE, 0xC0 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetDisplayFieldStatus +// ****************************************************************** +SOOVPA<7> D3DDevice_GetDisplayFieldStatus_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x06, 0x90 }, + { 0x0E, 0x04 }, + { 0x16, 0x00 }, + { 0x1E, 0x56 }, + { 0x26, 0xD2 }, + { 0x2E, 0x89 }, + { 0x36, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetScissors +// ****************************************************************** +SOOVPA<7> D3DDevice_GetScissors_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x0B, 0x74 }, + { 0x14, 0x11 }, + { 0x1F, 0x04 }, + { 0x2A, 0x85 }, + { 0x35, 0xE1 }, + { 0x40, 0xC1 }, + { 0x4B, 0xA4 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetScissors +// ****************************************************************** +SOOVPA<8> D3DDevice_SetScissors_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x1D, 0x44 }, + { 0x3C, 0x8B }, + { 0x5D, 0xD9 }, + { 0x7D, 0xD8 }, + { 0x99, 0x0E }, + { 0xB8, 0xE8 }, + { 0xD7, 0x24 }, + { 0xF6, 0x8B }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetBackMaterial +// ****************************************************************** +SOOVPA<8> D3DDevice_GetBackMaterial_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x05, 0x56 }, + { 0x06, 0x57 }, + { 0x0A, 0x0C }, + { 0x0D, 0x44 }, + { 0x0E, 0x0F }, + { 0x12, 0x11 }, + { 0x16, 0xF3 }, + { 0x1A, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3DDevice_CaptureStateBlock +// ****************************************************************** +SOOVPA<8> D3DDevice_CaptureStateBlock_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x1E, 0x3C }, + { 0x3E, 0xC0 }, + { 0x5E, 0x7E }, + { 0x7E, 0x00 }, + { 0x9E, 0x74 }, + { 0xC0, 0x8B }, + { 0xDE, 0x83 }, + { 0xFE, 0x45 }, + } +}; + +// ****************************************************************** +// * D3DDevice_DeleteStateBlock +// ****************************************************************** +SOOVPA<9> D3DDevice_DeleteStateBlock_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 7 + + XRefNotSaved, + 0, // Xref Not Used + + { + // D3DDevice_DeleteStateBlock(x)+26: mov eax, [esi+4] + { 0x13, 0x8B }, + { 0x14, 0x46 }, + { 0x15, 0x04 }, + + // D3DDevice_DeleteStateBlock(x)+1B: + { 0x23, 0x43 }, // inc ebx + { 0x24, 0x3B }, // cmp ebx, [edi] + { 0x25, 0x1F }, + + // D3DDevice_DeleteStateBlock(x)+34: cmp [edi+8], ebp + { 0x3C, 0x39 }, + { 0x3D, 0x6F }, + { 0x3E, 0x08 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetRenderState_RopZCmpAlwaysRead +// ****************************************************************** +SOOVPA<7> D3DDevice_SetRenderState_RopZCmpAlwaysRead_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x05, XREF_D3DRS_ROPZCMPALWAYSREAD }, + + { 0x01, 0x44 }, + { 0x04, 0xA3 }, + { 0x09, 0xE8 }, + { 0x0E, 0xC2 }, + { 0x0F, 0x04 }, + { 0x10, 0x00 }, + } +}; + +// ****************************************************************** +// * D3DDevice_GetTexture2 +// ****************************************************************** +SOOVPA<8> D3DDevice_GetTexture2_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 0, // Xref Not Used + + { + { 0x03, 0x04 }, + { 0x0A, 0x56 }, + { 0x0D, 0x81 }, + { 0x0E, 0x88 }, + { 0x12, 0x8B }, + { 0x17, 0x06 }, + { 0x1E, 0x8B }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * D3D8_1_0_5849 +// ****************************************************************** +OOVPATable D3D8_1_0_5849[] = +{ + // IDirect3D8::CreateDevice (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3D8_CreateDevice_1_0_4627, + + XTL::EmuIDirect3D8_CreateDevice, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CreateDevice" + #endif + }, + // IDirect3DDevice8::BeginVisibilityTest (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_BeginVisibilityTest_1_0_4627, + + XTL::EmuIDirect3DDevice8_BeginVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginVisibilityTest" + #endif + }, + // IDirect3DDevice8::EndVisibilityTest + { + (OOVPA*)&IDirect3DDevice8_EndVisibilityTest_1_0_5849, + + XTL::EmuIDirect3DDevice8_EndVisibilityTest, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndVisibilityTest" + #endif + }, + // IDirect3DDevice8::GetVisibilityTestResult + { + (OOVPA*)&IDirect3DDevice8_GetVisibilityTestResult_1_0_5849, + + XTL::EmuIDirect3DDevice8_GetVisibilityTestResult, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetVisibilityTestResult" + #endif + }, + // IDirect3DDevice8::GetViewport + { + (OOVPA*)&IDirect3DDevice8_GetViewport_1_0_5849, + + XTL::EmuIDirect3DDevice8_GetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetViewport" + #endif + }, + // IDirect3DDevice8::SetBackBufferScale + { + (OOVPA*)&IDirect3DDevice8_SetBackBufferScale_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetBackBufferScale, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetBackBufferScale" + #endif + }, + // IDirect3DDevice8::GetCreationParameters (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetCreationParameters_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetCreationParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetCreationParameters" + #endif + }, + // IDirect3DDevice8::Clear (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_5233, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + // IDirect3DDevice8::Swap + { + (OOVPA*)&D3DDevice_Swap_1_0_5849, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap" + #endif + }, + // IDirect3DDevice8::Swap (2) + { + (OOVPA*)&IDirect3DDevice8_Swap2_1_0_5849, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap2" + #endif + }, + // IDirect3DDevice8::GetBackBuffer2 + { + (OOVPA*)&IDirect3DDevice8_GetBackBuffer2_1_0_5849, + + XTL::EmuIDirect3DDevice8_GetBackBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackBuffer2" + #endif + }, + // IDirect3DDevice8::GetDepthStencilSurface2 + { + (OOVPA*)&IDirect3DDevice8_GetDepthStencilSurface2_1_0_5849, + + XTL::EmuIDirect3DDevice8_GetDepthStencilSurface2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDepthStencilSurface2" + #endif + }, + // IDirect3DDevice8::CreateVertexShader + { + (OOVPA*)&IDirect3DDevice8_CreateVertexShader_1_0_5849, + + XTL::EmuIDirect3DDevice8_CreateVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexShader" + #endif + }, + // IDirect3DDevice8::CreatePixelShader + { + (OOVPA*)&IDirect3DDevice8_CreatePixelShader_1_0_5849, + + XTL::EmuIDirect3DDevice8_CreatePixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreatePixelShader" + #endif + }, + // IDirect3DDevice8::SetPixelShader (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + }, + // IDirect3DDevice8::GetDisplayMode (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_GetDisplayMode_1_0_4627, + + XTL::EmuIDirect3DDevice8_GetDisplayMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDisplayMode" + #endif + }, + // IDirect3DDevice8::SetVertexData2f + { + (OOVPA*)&IDirect3DDevice8_SetVertexData2f_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::SetVertexData4f + { + (OOVPA*)&IDirect3DDevice8_SetVertexData4f_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetVertexData4f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4f" + #endif + }, + // IDirect3DDevice8::SetVertexDataColor + { + (OOVPA*)&IDirect3DDevice8_SetVertexDataColor_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetVertexDataColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexDataColor" + #endif + }, + // IDirect3DDevice8::End (* unchanged since 5558 *) + { + (OOVPA*)&IDirect3DDevice8_End_1_0_5558, + + XTL::EmuIDirect3DDevice8_End, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_End" + #endif + }, + // IDirect3DDevice8::SetVerticalBlankCallback + { + (OOVPA*)&IDirect3DDevice8_SetVerticalBlankCallback_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetVerticalBlankCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVerticalBlankCallback" + #endif + }, + // IDirect3DDevice8::SetTextureState_TexCoordIndex (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, + // IDirect3DDevice8::SetTextureState_BumpEnv (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BumpEnv_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BumpEnv, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BumpEnv" + #endif + }, + // IDirect3DDevice8::SetTextureState_BorderColor (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BorderColor_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BorderColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullMode (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_TextureFactor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // IDirect3DDevice8::SetRenderState_NormalizeNormals (* unchanged since 4432 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_4432, + + XTL::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormals" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZBias (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZBias_1_0_3925, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZBias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZBias" + #endif + }, + // IDirect3DDevice8::SetRenderState_EdgeAntiAlias (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_FogColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_Simple (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_Simple_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetRenderState_Simple, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Simple" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnable (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_OcclusionCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleAntiAlias (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_ShadowFunc (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_ShadowFunc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ShadowFunc" + #endif + }, + // IDirect3DDevice8::SetRenderState_YuvEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_YuvEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_YuvEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_YuvEnable" + #endif + }, + // IDirect3DDevice8::SetVertexShader (* unchanged since 5558 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::SetIndices + { + (OOVPA*)&IDirect3DDevice8_SetIndices_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetIndices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetIndices" + #endif + }, + // IDirect3DDevice8::SetTexture (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // D3D::CDevice::LazySetStateVB (XREF) (* unchanged since 5558 *) + { + (OOVPA*)&D3D_CDevice_LazySetStateVB_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "D3D::CDevice::LazySetStateVB (XREF)" + #endif + }, + // IDirect3DDevice8::BeginPush (* unchanged since 5558 *) + { + (OOVPA*)&IDirect3DDevice8_BeginPush_1_0_5558, + + XTL::EmuIDirect3DDevice8_BeginPush, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginPush" + #endif + }, + // IDirect3DDevice8::EndPush (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_EndPush_1_0_4627, + + XTL::EmuIDirect3DDevice8_EndPush, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndPush" + #endif + }, + // /* Not implemented yet. + // IDirect3DDevice8::BeginPushBuffer + { + (OOVPA*)&IDirect3DDevice8_BeginPushBuffer_1_0_5849, + + XTL::EmuIDirect3DDevice8_BeginPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginPushBuffer" + #endif + }, + // IDirect3DDevice8::EndPushBuffer + { + (OOVPA*)&IDirect3DDevice8_EndPushBuffer_1_0_5849, + + XTL::EmuIDirect3DDevice8_EndPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndPushBuffer" + #endif + }, + // */ + // IDirect3DDevice8::RunPushBuffer + { + (OOVPA*)&IDirect3DDevice8_RunPushBuffer_1_0_5849, + + XTL::EmuIDirect3DDevice8_RunPushBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_RunPushBuffer" + #endif + }, + // IDirect3DDevice8::Begin (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_Begin_1_0_5233, + + XTL::EmuIDirect3DDevice8_Begin, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Begin" + #endif + }, + // IDirect3DDevice8::BeginStateBig + { + (OOVPA*)&IDirect3DDevice8_BeginStateBig_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "IDirect3DDevice8_BeginStateBig (XRef)" + #endif + + }, + // IDirect3DDevice8::GetTransform (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_GetTransform_1_0_4361, + + XTL::EmuIDirect3DDevice8_GetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTransform" + #endif + }, + // IDirect3DDevice8::SetTransform (* unchanged since 5558 *) + { + (OOVPA*)&IDirect3DDevice8_SetTransform_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTransform" + #endif + }, + // IDirect3DDevice8::DrawIndexedVertices + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_5849, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, + // IDirect3DDevice8::DrawIndexedVerticesUP + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVerticesUP_1_0_5849, + + XTL::EmuIDirect3DDevice8_DrawIndexedVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVerticesUP" + #endif + }, + // IDirect3DDevice8::SetMaterial + { + (OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetMaterial" + #endif + }, + // IDirect3DDevice8::SetStreamSource (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_4361, + + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // IDirect3DResource8::Register (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Register_1_0_3925, + + XTL::EmuIDirect3DResource8_Register, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Register" + #endif + }, + // IDirect3DResource8::AddRef (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_AddRef_1_0_3925, + + XTL::EmuIDirect3DResource8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_AddRef" + #endif + }, + // IDirect3DResource8::Release (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DResource8_Release_1_0_3925, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Release" + #endif + }, + // IDirect3DResource8::IsBusy (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DResource8_IsBusy_1_0_4361, + + XTL::EmuIDirect3DResource8_IsBusy, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_IsBusy" + #endif + }, + // IDirect3DSurface8::GetDesc (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DSurface8_GetDesc_1_0_4361, + + XTL::EmuIDirect3DSurface8_GetDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_GetDesc" + #endif + }, + // IDirect3DDevice8::CopyRects (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_CopyRects_1_0_5233, + + XTL::EmuIDirect3DDevice8_CopyRects, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CopyRects" + #endif + }, + // IDirect3DPalette8::Lock2 (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DPalette8_Lock2_1_0_5233, + + XTL::EmuIDirect3DPalette8_Lock2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DPalette8_Lock2" + #endif + }, + // IDirect3DTexture8::LockRect + { + (OOVPA*)&IDirect3DTexture8_LockRect_1_0_5849, + + XTL::EmuIDirect3DTexture8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_LockRect" + #endif + }, + // IDirect3DSurface8::LockRect (* unchanged since 3925 *) + { + (OOVPA*)&IDirect3DSurface8_LockRect_1_0_3925, + + XTL::EmuIDirect3DSurface8_LockRect, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DSurface8_LockRect" + #endif + }, + // IDirect3DBaseTexture8::GetLevelCount (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DBaseTexture8_GetLevelCount_1_0_4361, + + XTL::EmuIDirect3DBaseTexture8_GetLevelCount, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DBaseTexture8_GetLevelCount" + #endif + }, + // IDirect3DTexture8::GetSurfaceLevel2 (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DTexture8_GetSurfaceLevel2_1_0_4627, + + XTL::EmuIDirect3DTexture8_GetSurfaceLevel2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetSurfaceLevel2" + #endif + }, + // IDirect3DDevice8::SetLight + { + + (OOVPA*)&IDirect3DDevice8_SetLight_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight" + #endif + }, + // IDirect3DDevice8::CreateVertexBuffer2 + { + (OOVPA*)&IDirect3DDevice8_CreateVertexBuffer2_1_0_5849, + + XTL::EmuIDirect3DDevice8_CreateVertexBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexBuffer2" + #endif + }, + // IDirect3DVertexBuffer8_Lock + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock_1_0_5849, + + XTL::EmuIDirect3DVertexBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock" + #endif + }, + // IDirect3DVertexBuffer8::Lock2 + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock2_1_0_5849, + + XTL::EmuIDirect3DVertexBuffer8_Lock2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock2" + #endif + }, + // IDirect3DDevice8_LightEnable + { + (OOVPA*)&IDirect3DDevice8_LightEnable_1_0_5849, + + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable" + #endif + }, + // IDirect3DDevice8_DrawVertices + { + (OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_5849, + + XTL::EmuIDirect3DDevice8_DrawVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVertices" + #endif + }, + // IDirect3D8_AllocContiguousMemory + { + (OOVPA*)&IDirect3D8_AllocContiguousMemory_1_0_5849, + XTL::EmuIDirect3D8_AllocContiguousMemory, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_AllocContiguousMemory" + #endif + }, + // IDirect3DTexture8_GetLevelDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_5849, + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetLevelDesc" + #endif + }, + // IDirect3DDevice8::CreateTexture2 + { + (OOVPA*)&IDirect3DDevice8_CreateTexture2_1_0_5849, + + XTL::EmuIDirect3DDevice8_CreateTexture2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateTexture2" + #endif + }, + // Lock2DSurface + { + (OOVPA*)&Lock2DSurface_1_0_3925, + + XTL::EmuLock2DSurface, + + #ifdef _DEBUG_TRACE + "EmuLock2DSurface" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant4 + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant4_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant4, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant4" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant1 + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant1_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant1, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant1" + #endif + }, + // IDirect3DDevice8::DrawVerticesUP + { + (OOVPA*)&IDirect3DDevice8_DrawVerticesUP_1_0_5849, + + XTL::EmuIDirect3DDevice8_DrawVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVerticesUP" + #endif + }, + // IDirect3DDevice8::SetRenderTarget + { + (OOVPA*)&IDirect3DDevice8_SetRenderTarget_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderTarget, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTarget" + #endif + }, + // IDirect3DDevice8::SetShaderConstantMode (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetShaderConstantMode_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetShaderConstantMode" + #endif + }, + // IDirect3DDevice8::SetViewport + { + (OOVPA*)&D3DDevice_SetViewport_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport" + #endif + }, + // IDirect3DDevice8::BlockUntilVerticalBlank + { + (OOVPA*)&D3DDevice_BlockUntilVerticalBlank_1_0_5849, + + XTL::EmuIDirect3DDevice8_BlockUntilVerticalBlank, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BlockUntilVerticalBlank" + #endif + }, + // IDirect3DDevice8::SetRenderState_FrontFace (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FrontFace_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_FrontFace, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FrontFace" + #endif + }, + // IDirect3DDevice8::SetBackMaterial + { + (OOVPA*)&D3DDevice_SetBackMaterial_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetBackMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetBackMaterial" + #endif + }, + // IDirect3DDevice8::SetRenderState_TwoSidedLighting + { + (OOVPA*)&D3DDevice_SetRenderState_TwoSidedLighting_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetTextureState_TwoSidedLighting, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TwoSidedLighting" + #endif + }, + // IDirect3D8::KickOffAndWaitForIdle (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3D8_KickOffAndWaitForIdle_1_0_5233, + + XTL::EmuIDirect3D8_KickOffAndWaitForIdle, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_KickOffAndWaitForIdle" + #endif + }, + // D3D::SetTileNoWait + { + (OOVPA*)&D3DDevice_SetTileNoWait_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetTileNoWait, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTileNoWait" + #endif + }, + // IDirect3DDevice8::SetGammaRamp (* unchanged since 4928 *) + { + (OOVPA*)&IDirect3DDevice8_SetGammaRamp_1_0_4928, + + XTL::EmuIDirect3DDevice8_SetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetGammaRamp" + #endif + }, + // IDirect3DDevice8::GetGammaRamp (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetGammaRamp_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetGammaRamp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetGammaRamp" + #endif + }, + // D3DDevice_SetSwapCallback + { + (OOVPA*)&D3DDevice_SetSwapCallback_1_0_5849, + XTL::EmuIDirect3DDevice8_SetSwapCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSwapCallback" + #endif + }, + // IDirect3DDevice8::GetRenderTarget2 (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_GetRenderTarget2_1_0_5233, + + XTL::EmuIDirect3DDevice8_GetRenderTarget2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetRenderTarget2" + #endif + }, + // D3DDevice_SetRenderState_StencilFail + { + (OOVPA*)&D3DDevice_SetRenderState_StencilFail_1_0_5849, + XTL::EmuIDirect3DDevice8_SetRenderState_StencilFail, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilFail" + #endif + }, + // D3DDevice_SetRenderState_VertexBlend + { + (OOVPA*)&D3DDevice_SetRenderState_VertexBlend_1_0_5849, + XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_VertexBlend" + #endif + }, + // D3DDevice_SetRenderState_VertexBlend + { + (OOVPA*)&D3DDevice_SetRenderState_VertexBlend_1_0_5849, + XTL::EmuIDirect3DDevice8_SetRenderState_VertexBlend, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_VertexBlend" + #endif + }, + // IDirect3DDevice8::Reset (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_Reset_1_0_4134, + + XTL::EmuIDirect3DDevice8_Reset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Reset" + #endif + }, + // IDirect3DDevice::Release + { + (OOVPA*)&IDirect3DDevice8_Release_1_0_5849, + XTL::EmuIDirect3DDevice8_Release, + + #ifdef _DEBUG_TRACE + "D3DDevice_Release" + #endif + }, + // IDirect3DDevice8_InsertCallback (* unchanged since 5558 *) + { + (OOVPA*)&D3DDevice_InsertCallback_1_0_5558, + + XTL::EmuIDirect3DDevice8_InsertCallback, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_InsertCallback" + #endif + }, + // D3DDevice::SetRenderState_LineWidth + { + (OOVPA*)&D3DDevice_SetRenderState_LineWidth_1_0_5849, + XTL::EmuIDirect3DDevice8_SetRenderState_LineWidth, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LineWidth" + #endif + }, + // D3DDevice_SetRenderState_SampleAlpha (* unchanged since 5233 *) + { + (OOVPA*)&D3DDevice_SetRenderState_SampleAlpha_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetRenderState_SampleAlpha, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_SampleAlpha" + #endif + }, + // IDirect3DDevice8::SetTextureState_ColorKeyColor (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetTextureState_ColorKeyColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_ColorKeyColor" + #endif + }, + // IDirect3DDevice8::EnableOverlay (* unchanged since 4361 *) + { + (OOVPA*)&IDirect3DDevice8_EnableOverlay_1_0_4361, + + XTL::EmuIDirect3DDevice8_EnableOverlay, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EnableOverlay" + #endif + }, + // D3DDevice_SetRenderState_LogicOp (* unchanged since 5558 *) + { + (OOVPA*)&D3DDevice_SetRenderState_LogicOp_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetRenderState_LogicOp, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_LogicOp" + #endif + }, + // D3DDevice_SetRenderState_MultiSampleMask + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleMask_1_0_5849, + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMask, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMask" + #endif + }, + // D3DDevice_SetPalette + { + (OOVPA*)&D3DDevice_SetPalette_1_0_5849, + XTL::EmuIDirect3DDevice8_SetPalette, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPalette" + #endif + }, + // D3DDevice_LoadVertexShaderProgram + { + (OOVPA*)&D3DDevice_LoadVertexShaderProgram_1_0_5849, + XTL::EmuIDirect3DDevice8_LoadVertexShaderProgram, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShaderProgram" + #endif + }, + // D3DDevice_GetPushBufferOffset + { + (OOVPA*)&D3DDevice_GetPushBufferOffset_1_0_5849, + XTL::EmuIDirect3DDevice8_GetPushBufferOffset, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetPushBufferOffset" + #endif + }, + // D3D::MakeRequestedSpace + { + (OOVPA*)&D3D_MakeRequestedSpace_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "D3D::MakeRequestedSpace (XRef)" + #endif + }, + // D3D::Unknown + { + (OOVPA*)&D3D_Unknown_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "D3D::Unknown (XRef)" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstantNotInline (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstantNotInline_1_0_5233, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstantNotInline, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstantNotInline" + #endif + }, + // D3DDevice_FlushVertexCache + { + (OOVPA*)&D3DDevice_FlushVertexCache_1_0_5849, + XTL::EmuIDirect3DDevice8_FlushVertexCache, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_FlushVertexCache" + #endif + }, + // D3DDevice_GetVertexShaderSize (* unchanged since 3925 *) + { + (OOVPA*)&X_D3DDevice_GetVertexShaderSize_1_0_3925, + + XTL::EmuIDirect3DDevice8_GetVertexShaderSize, + + #ifdef _DEBUG_TRACE + "D3DDevice_GetVertexShaderSize" + #endif + }, + // IDirect3DDevice8::LoadVertexShader (* unchanged since 5233 *) + { + (OOVPA*)&IDirect3DDevice8_LoadVertexShader_1_0_5233, + + XTL::EmuIDirect3DDevice8_LoadVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LoadVertexShader" + #endif + }, + // IDirect3DDevice8::SelectVertexShader (* unchanged since 5558 *) + { + (OOVPA*)&IDirect3DDevice8_SelectVertexShader_1_0_5558, + + XTL::EmuIDirect3DDevice8_SelectVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SelectVertexShader" + #endif + }, + // D3DDevice_RunVertexStateShader (* unchanged since 4627 *) + { + (OOVPA*)&X_D3DDevice_RunVertexStateShader_1_0_4627, + + XTL::EmuIDirect3DDevice8_RunVertexStateShader, + + #ifdef _DEBUG_TRACE + "D3DDevice_RunVertexStateShader" + #endif + }, + // IDirect3DDevice8::AddRef + { + (OOVPA*)&D3DDevice_AddRef_1_0_5849, + + XTL::EmuIDirect3DDevice8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_AddRef" + #endif + }, + // D3D::ClearStateBlockFlags + { + (OOVPA*)&D3D_ClearStateBlockFlags_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "D3D::ClearStateBlockFlags (XREF)" + #endif + }, + // D3D::RecordStateBlock + { + (OOVPA*)&D3D_RecordStateBlock_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "D3D::RecordStateBlock (XREF)" + #endif + }, + // IDirect3DDevice8::BeginStateBlock + { + (OOVPA*)&IDirect3DDevice8_BeginStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_BeginStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_BeginStateBlock" + #endif + }, + // IDirect3DDevice8::EndStateBlock + { + (OOVPA*)&IDirect3DDevice8_EndStateBlock_1_0_4361, + + XTL::EmuIDirect3DDevice8_EndStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_EndStateBlock" + #endif + }, + // D3DDevice_SetRenderState_BackFillMode + { + (OOVPA*)&D3DDevice_SetRenderState_BackFillMode_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderState_BackFillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_BackFillMode" + #endif + }, + // D3DDevice_SetRenderState_Dxt1NoiseEnable + { + (OOVPA*)&D3DDevice_SetRenderState_Dxt1NoiseEnable_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_Dxt1NoiseEnable" + #endif + }, + // D3DDevice_GetTile + { + (OOVPA*)&D3DDevice_GetTile_1_0_5849, + + XTL::EmuIDirect3DDevice8_GetTile, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTile" + #endif + }, + // D3D::CDevice::KickOff + { + (OOVPA*)&D3D_CDevice_KickOff_1_0_5849, + + XTL::EmuD3DDevice_KickOff, + + #ifdef _DEBUG_TRACE + "D3D::CDevice::KickOff (D3DDevice::KickPushBuffer)" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZCmpAlwaysRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_DoNotCullUncompressed (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed" + #endif + }, + // IDirect3DDevice8::SetSoftDisplayFilter + { + (OOVPA*)&D3DDevice_SetSoftDisplayFilter_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetSoftDisplayFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetSoftDisplayFilter" + #endif + }, + // IDirect3DDevice8::SetFlickerFilter + { + (OOVPA*)&D3DDevice_SetFlickerFilter_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetFlickerFilter, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetFlickerFilter" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMode + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleMode_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleRenderTargetMode + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleRenderTargetMode_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleAntiAlias + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleAntiAlias_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleAntiAlias" + #endif + }, + // IDirect3DDevice8::SetRenderState_MultiSampleMask + { + (OOVPA*)&D3DDevice_SetRenderState_MultiSampleMask_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderState_MultiSampleMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_MultiSampleMode" + #endif + }, + // IDirect3DDevice8::SetPixelShaderConstant + { + (OOVPA*)&D3DDevice_SetPixelShaderConstant_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetPixelShaderConstant, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderConstant" + #endif + }, + // D3DDevice_GetDisplayFieldStatus + { + (OOVPA*)&D3DDevice_GetDisplayFieldStatus_1_0_5849, + XTL::EmuIDirect3DDevice8_GetDisplayFieldStatus, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetDisplayFieldStatus" + #endif + }, + // IDirect3DCubeTexture8::GetCubeMapSurface2 (* Unchanged since 4627 *) + { + (OOVPA*)&D3DCubeTexture_GetCubeMapSurface2_1_0_4627, + + XTL::EmuIDirect3DCubeTexture8_GetCubeMapSurface2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DCubeTexture8_GetCubeMapSurface2" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant1Fast (* Unchanged since 5558 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant1Fast_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant1, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant1Fast" + #endif + }, + // D3DDevice_SetPixelShaderProgram (* Unchanged since 5558 *) + { + (OOVPA*)&D3DDevice_SetPixelShaderProgram_1_0_5558, + XTL::EmuIDirect3DDevice8_SetPixelShaderProgram, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShaderProgram" + #endif + }, + // IDirect3DDevice8::SetScissors + { + (OOVPA*)&D3DDevice_SetScissors_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetScissors, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetScissors" + #endif + }, + // IDirect3DDevice8::GetScissors + { + (OOVPA*)&D3DDevice_GetScissors_1_0_5849, + + XTL::EmuIDirect3DDevice8_GetScissors, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetScissors" + #endif + }, + // IDirect3DDevice8::GetBackMaterial + { + (OOVPA*)&D3DDevice_GetBackMaterial_1_0_5849, + + XTL::EmuIDirect3DDevice8_GetBackMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetBackMaterial" + #endif + }, + // IDirect3DDevice8::ApplyStateBlock (* unchanged since 4627 *) + { + (OOVPA*)&D3DDevice_ApplyStateBlock_1_0_4627, + + XTL::EmuIDirect3DDevice8_ApplyStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_ApplyStateBlock" + #endif + }, + // IDirect3DDevice8::CaptureStateBlock + { + (OOVPA*)&D3DDevice_CaptureStateBlock_1_0_5849, + + XTL::EmuIDirect3DDevice8_CaptureStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CaptureStateBlock" + #endif + }, + // IDirect3DDevice8::DeleteStateBlock + { + (OOVPA*)&D3DDevice_DeleteStateBlock_1_0_5849, + + XTL::EmuIDirect3DDevice8_DeleteStateBlock, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DeleteStateBlock" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_OcclusionCullEnable (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZCmpAlwaysRead + { + (OOVPA*)&D3DDevice_SetRenderState_RopZCmpAlwaysRead_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_RopZRead (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_RopZRead_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_RopZRead, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_RopZRead" + #endif + }, + // IDirect3DDevice8::SetRenderState_DoNotCullUncompressed (* unchanged since 4134 *) + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_DoNotCullUncompressed_1_0_4134, + + XTL::EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_DoNotCullUncompressed" + #endif + }, + // D3DDevice_GetTexture2 + { + (OOVPA*)&D3DDevice_GetTexture2_1_0_5849, + XTL::EmuIDirect3DDevice8_GetTexture2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetTexture2" + #endif + }, + // IDirect3DDevice8::SetRenderTargetFast (* unchanged since 5344 *) + { + (OOVPA*)&D3DDevice_SetRenderTargetFast_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetRenderTargetFast, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderTargetFast" + #endif + }, + // D3DDevice_SetDepthClipPlanes + { + (OOVPA*)&D3DDevice_SetDepthClipPlanes_1_0_5849, + XTL::EmuIDirect3DDevice8_SetDepthClipPlanes, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetDepthClipPlanes" + #endif + }, +}; + +// ****************************************************************** +// * D3D8_1_0_5849_SIZE +// ****************************************************************** +uint32 D3D8_1_0_5849_SIZE = sizeof(D3D8_1_0_5849); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8LTCG.1.0.5849.h b/src/CxbxKrnl/HLEDataBase - Copy/D3D8LTCG.1.0.5849.h new file mode 100644 index 000000000..21ba788bb --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8LTCG.1.0.5849.h @@ -0,0 +1,45 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->D3D8LTCG.1.0.5849.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 D3D8LTCG_1_0_5849_H +#define D3D8LTCG_1_0_5849_H + +#include "OOVPA.h" + +extern SOOVPA<13> IDirect3DDevice8_SetRenderState_CullMode_1_0_5849_LTCG; +extern SOOVPA<10> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_5849_LTCG; + +extern OOVPATable D3D8LTCG_1_0_5849[]; +extern uint32 D3D8LTCG_1_0_5849_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/D3D8LTCG.1.0.5849.inl b/src/CxbxKrnl/HLEDataBase - Copy/D3D8LTCG.1.0.5849.inl new file mode 100644 index 000000000..8bf69603b --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/D3D8LTCG.1.0.5849.inl @@ -0,0 +1,1729 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->D3D8LTCG.1.0.5849.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 +// * +// ****************************************************************** + +// Verteks 09/03/2009 +// For Burnout 3 Takedown + +// ****************************************************************** +// * IDirect3D8_CreateDevice +// ****************************************************************** +SOOVPA<8> IDirect3D8_CreateDevice_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_CreateDevice+0x07 : jnz +0x0A + { 0x07, 0x75 }, // (Offset,Value)-Pair #1 + { 0x08, 0x0A }, // (Offset,Value)-Pair #2 + + // IDirect3D8_CreateDevice+0x7F : rep stos + { 0x7F, 0xF3 }, // (Offset,Value)-Pair #3 + { 0x80, 0xAB }, // (Offset,Value)-Pair #4 + + // IDirect3D8_CreateDevice+0x82 : mov eax, esi + { 0x82, 0x8B }, // (Offset,Value)-Pair #5 + { 0x83, 0xC6 }, // (Offset,Value)-Pair #6 + + // IDirect3D8_CreateDevice+0x8F : retn 0x18 + { 0x8F, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x90, 0x18 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetPixelShader +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetPixelShader_1_0_5849_LTCG = +{ + 0, // Large == 0 + 9, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3D8_SetPixelShader+0x1E : jnz +0x67 + { 0x1E, 0x75 }, // (Offset,Value)-Pair #1 + { 0x1F, 0x67 }, // (Offset,Value)-Pair #2 + + // IDirect3D8_SetPixelShader+0x3E : or eax, 0x2000 + { 0x3E, 0x0D }, // (Offset,Value)-Pair #3 + { 0x3F, 0x00 }, // (Offset,Value)-Pair #4 + + // IDirect3D8_SetPixelShader+0x60 : push eax + { 0x60, 0x50 }, // (Offset,Value)-Pair #5 + + // IDirect3D8_SetPixelShader+0x61 : shr eax, 1 + { 0x61, 0xD1 }, // (Offset,Value)-Pair #6 + { 0x62, 0xE8 }, // (Offset,Value)-Pair #7 + + // IDirect3D8_SetPixelShader+0xE1 : jb +0x0E + { 0xE1, 0x72 }, // (Offset,Value)-Pair #8 + { 0xE2, 0x0E }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_CreateVertexShader +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_CreateVertexShader_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x85 }, + { 0x3E, 0xE8 }, + { 0x5E, 0x75 }, + { 0x7E, 0x04 }, + { 0x9E, 0x24 }, + { 0xBE, 0x8B }, + { 0xDE, 0x73 }, + { 0xFD, 0xC7 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawIndexedVertices +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_DrawIndexedVertices_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x13, 0x89 }, + { 0x3E, 0x3B }, + { 0x5E, 0x05 }, + { 0x7E, 0xC3 }, + { 0x9E, 0xC1 }, + { 0xC4, 0x03 }, + { 0xDE, 0xE2 }, + { 0xFD, 0xEA }, + } +}; + +// Verteks 10/03/2009 + +// ****************************************************************** +// * IDirect3DDevice8_SetTexture +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetTexture_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x7C }, + { 0x3C, 0xE8 }, + { 0x5F, 0xE8 }, + { 0x7E, 0x45 }, + { 0x9E, 0x08 }, + { 0xBE, 0x0C }, + { 0xDE, 0x0F }, + { 0xFE, 0x8D }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetViewport +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetViewport_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0xAE }, + { 0x3E, 0x53 }, + { 0x5E, 0x00 }, + { 0x7E, 0x12 }, + { 0x9E, 0x75 }, + { 0xBE, 0x4C }, + { 0xDE, 0xE1 }, + { 0xF9, 0x7D }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetLight +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetLight_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x00 }, + { 0x3E, 0x89 }, + { 0x5E, 0x00 }, + { 0x7E, 0x07 }, + { 0x9E, 0xC8 }, + { 0xBE, 0xC9 }, + { 0xDE, 0x07 }, + { 0xFD, 0xC1 }, + } +}; + +/* Same as 5558 +// ****************************************************************** +// * IDirect3DDevice8_SetTransform +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetTransform_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0xB9 }, + { 0x3E, 0x0F }, + { 0x5E, 0xD9 }, + { 0x7A, 0x00 }, + { 0x99, 0x83 }, + { 0xB8, 0xE0 }, + { 0xD7, 0xD9 }, + { 0xF6, 0xF6 }, + } +}; +*/ + +/* Same as 5849 +// ****************************************************************** +// * IDirect3DDevice8_SetMaterial +// ****************************************************************** +SOOVPA<9> IDirect3DDevice8_SetMaterial_1_0_5849_LTCG = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x08 }, + { 0x0C, 0x81 }, + { 0x0E, 0x00 }, + { 0x10, 0x00 }, + { 0x16, 0x00 }, + { 0x1F, 0x81 }, + { 0x22, 0x90 }, + { 0x2C, 0x5E }, + { 0x2E, 0x04 }, + } +}; +*/ + +// ****************************************************************** +// * IDirect3DDevice8_SetStreamSource +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetStreamSource_1_0_5849_LTCG = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetStreamSource+0x07 : mov ebx, [esp+0x0C] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x5C }, // (Offset,Value)-Pair #2 + { 0x09, 0x24 }, // (Offset,Value)-Pair #3 + { 0x0A, 0x0C }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetStreamSource+0x28 : jz +0x26 + { 0x28, 0x74 }, // (Offset,Value)-Pair #5 + { 0x29, 0x26 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetStreamSource+0x70 : or ecx, 0x40 + { 0x70, 0x83 }, // (Offset,Value)-Pair #7 + { 0x71, 0xC9 }, // (Offset,Value)-Pair #8 + { 0x72, 0x40 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetStreamSource+0x7E : or ecx, 0x70 + { 0x7E, 0x83 }, // (Offset,Value)-Pair #10 + { 0x7F, 0xC9 }, // (Offset,Value)-Pair #11 + { 0x80, 0x70 }, // (Offset,Value)-Pair #12 + + // IDirect3DDevice8_SetStreamSource+0x89 : retn 0x0C + { 0x89, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x8A, 0x0C }, // (Offset,Value)-Pair #14 + } +}; + +/* Same as 5849 +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShaderConstant1 +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetVertexShaderConstant1_1_0_5849_LTCG = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShaderConstant1+0x06 : add eax, 0x1C + { 0x06, 0x83 }, // (Offset,Value)-Pair #1 + { 0x07, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x08, 0x1C }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x0F : jnb +0x43 + { 0x0F, 0x73 }, // (Offset,Value)-Pair #4 + { 0x10, 0x43 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x1D : mov [eax-0x18], ecx + { 0x1D, 0x89 }, // (Offset,Value)-Pair #6 + { 0x1E, 0x48 }, // (Offset,Value)-Pair #7 + { 0x1F, 0xE8 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x53 : retn + { 0x53, 0xC3 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexShaderConstant1+0x5D : jmp +0xA2 + { 0x5D, 0xEB }, // (Offset,Value)-Pair #10 + { 0x5E, 0xA2 }, // (Offset,Value)-Pair #11 + } +}; +*/ + +/* Same as 5849 +// ****************************************************************** +// * IDirect3DDevice8_CreateVertexBuffer2 +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_CreateVertexBuffer2_1_0_5849_LTCG = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0xE8 }, + { 0x12, 0x1E }, + { 0x1C, 0x50 }, + { 0x26, 0x68 }, + { 0x31, 0x33 }, + { 0x3A, 0xFF }, + { 0x44, 0x01 }, + } +}; +*/ + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_TexCoordIndex +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_5849_LTCG = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x14 : shl eax, 0x07 + { 0x14, 0xC1 }, // (Offset,Value)-Pair #1 + { 0x15, 0xE0 }, // (Offset,Value)-Pair #2 + { 0x16, 0x07 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x26 : cmp eax, ecx + { 0x26, 0x3B }, // (Offset,Value)-Pair #4 + { 0x27, 0xC1 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0x7A : mov ebp, 0x2400 + { 0x7A, 0xBD }, // (Offset,Value)-Pair #6 + { 0x7C, 0x24 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetTextureState_TexCoordIndex+0xB3 : shl ebx, 0x04 + { 0xB3, 0xC1 }, // (Offset,Value)-Pair #8 + { 0xB4, 0xE3 }, // (Offset,Value)-Pair #9 + { 0xB5, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_BumpEnv +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetTextureState_BumpEnv_1_0_5849_LTCG = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_BumpEnv+0x18 : jnz +0x03 + { 0x18, 0x75 }, // (Offset,Value)-Pair #1 + { 0x19, 0x03 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetTextureState_BumpEnv+0x1D : test bl, 3 + { 0x1D, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x1E, 0xC3 }, // (Offset,Value)-Pair #4 + { 0x1F, 0x03 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTextureState_BumpEnv+0x3B : mov ecx, [esp+0x18] + { 0x3B, 0x8B }, // (Offset,Value)-Pair #6 + { 0x3C, 0x4C }, // (Offset,Value)-Pair #7 + { 0x3D, 0x24 }, // (Offset,Value)-Pair #8 + { 0x3E, 0x18 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetTextureState_BumpEnv+0x59 : shl esi, 5 + { 0x59, 0xC1 }, // (Offset,Value)-Pair #10 + { 0x5A, 0xE6 }, // (Offset,Value)-Pair #11 + { 0x5B, 0x05 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_BorderColor +// ****************************************************************** +SOOVPA<15> IDirect3DDevice8_SetTextureState_BorderColor_1_0_5849_LTCG = +{ + 0, // Large == 0 + 15, // Count == 15 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_BorderColor+0x0C : jb +0x0E + { 0x0C, 0x72 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x0E }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetTextureState_BorderColor+0x22 : shl edx, 6 + { 0x22, 0xC1 }, // (Offset,Value)-Pair #3 + { 0x23, 0xE2 }, // (Offset,Value)-Pair #4 + { 0x24, 0x06 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetTextureState_BorderColor+0x34 : add eax, 8; mov [esi], eax; shl ecx, 7 + { 0x34, 0x83 }, // (Offset,Value)-Pair #6 + { 0x35, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x36, 0x08 }, // (Offset,Value)-Pair #8 + { 0x37, 0x89 }, // (Offset,Value)-Pair #9 + { 0x38, 0x06 }, // (Offset,Value)-Pair #10 + { 0x39, 0xC1 }, // (Offset,Value)-Pair #11 + { 0x3A, 0xE1 }, // (Offset,Value)-Pair #12 + { 0x3B, 0x07 }, // (Offset,Value)-Pair #13 + + // IDirect3DDevice8_SetTextureState_BorderColor+0x43 : retn 0x08 + { 0x43, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x44, 0x08 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_CullMode +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_CullMode_1_0_5849_LTCG = +{ + 0, // Large == 0 + 13, // Count == 13 + + XREF_DXSRSCULLMODE, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirect3DDevice8_SetRenderState_CullMode+0x23 : mov dword ptr [eax], 0x40308 + { 0x23, 0xC7 }, // (Offset,Value)-Pair #1 + { 0x25, 0x08 }, // (Offset,Value)-Pair #2 + { 0x26, 0x03 }, // (Offset,Value)-Pair #3 + { 0x27, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_CullMode+0x2E : add eax, 8 + { 0x2E, 0x83 }, // (Offset,Value)-Pair #5 + { 0x2F, 0xC0 }, // (Offset,Value)-Pair #6 + { 0x30, 0x08 }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_SetRenderState_CullMode+0x3A : retn 4 + { 0x3A, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x3B, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_CullMode+0x5C : add edx, 0x404 + { 0x5D, 0x81 }, // (Offset,Value)-Pair #10 + { 0x5E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x5F, 0x04 }, // (Offset,Value)-Pair #12 + { 0x60, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_TextureFactor +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetRenderState_TextureFactor_1_0_5849_LTCG = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x84 }, + { 0x14, 0x46 }, + { 0x28, 0x24 }, + { 0x33, 0xBA }, + { 0x3D, 0x4A }, + { 0x48, 0x5E }, + { 0x55, 0x5E }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_NormalizeNormals +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x2E : or [addr], 0x200 + { 0x2E, 0x81 }, // (Offset,Value)-Pair #3 + { 0x2F, 0x0D }, // (Offset,Value)-Pair #4 + { 0x34, 0x00 }, // (Offset,Value)-Pair #5 + { 0x35, 0x02 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_NormalizeNormals+0x3F : retn 0x04 + { 0x3F, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x40, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ZEnable +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_ZEnable_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0C, 0x72 }, + { 0x2B, 0xC9 }, + { 0x3D, 0x89 }, + { 0x4F, 0x0C }, + { 0x63, 0x74 }, + { 0x74, 0x8B }, + { 0x8A, 0x8B }, + { 0x97, 0x06 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_StencilEnable +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetRenderState_StencilEnable_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + { + { 0x12, 0x8B }, + { 0x2D, 0x33 }, + { 0x40, 0x74 }, + { 0x4A, 0x74 }, + { 0x63, 0x89 }, + { 0x79, 0xB9 }, + { 0x92, 0x33 }, + { 0x9F, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Swap +// ****************************************************************** +//SOOVPA<7> IDirect3DDevice8_Swap_1_0_5849_LTCG = +//{ +// 0, // Large == 0 +// 7, // Count == 7 +// +// XRefNotSaved, +// XRefNotUsed, +// +// { +// { 0x1B, 0xE8 }, +// { 0x38, 0xC3 }, +// { 0x55, 0xC0 }, +// { 0x72, 0xEB }, +// { 0x93, 0x85 }, +// { 0xAA, 0xC6 }, +// { 0xC9, 0x0A }, +// } +//}; + +/* Same as 4627 +// ****************************************************************** +// * IDirect3DDevice8_SetVertexData2f +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_SetVertexData2f_1_0_5849_LTCG = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexData2f+0x20 : lea edx, ds:abs[ecx*8] + { 0x20, 0x8D }, // (Offset,Value)-Pair #1 + { 0x21, 0x14 }, // (Offset,Value)-Pair #2 + { 0x22, 0xCD }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_SetVertexData2f+0x2B : mov [eax], edx; mov edx, [esp+0x10] + { 0x2B, 0x89 }, // (Offset,Value)-Pair #4 + { 0x2C, 0x10 }, // (Offset,Value)-Pair #5 + { 0x2D, 0x8B }, // (Offset,Value)-Pair #6 + { 0x2E, 0x54 }, // (Offset,Value)-Pair #7 + { 0x2F, 0x24 }, // (Offset,Value)-Pair #8 + { 0x30, 0x10 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetVertexData2f+0x37 : add eax, 0x0C + { 0x37, 0x83 }, // (Offset,Value)-Pair #10 + { 0x38, 0xC0 }, // (Offset,Value)-Pair #11 + { 0x39, 0x0C }, // (Offset,Value)-Pair #12 + + // IDirect3DDevice8_SetVertexData2f+0x3D : retn 0x0C + { 0x3D, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x3E, 0x0C }, // (Offset,Value)-Pair #14 + } +}; +*/ + +// ****************************************************************** +// * IDirect3DDevice8_End +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_End_1_0_5849_LTCG = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x13, 0x50 }, + { 0x1C, 0xC7 }, + { 0x22, 0xC7 }, + { 0x2B, 0x08 }, + { 0x34, 0xE1 }, + { 0x49, 0xC3 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_FillMode +// ****************************************************************** +SOOVPA<11> IDirect3DDevice8_SetRenderState_FillMode_1_0_5849_LTCG = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_FillMode+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_FillMode+0x2A : mov ecx, [esp+0x08] + { 0x2A, 0x8B }, // (Offset,Value)-Pair #3 + { 0x2B, 0x4C }, // (Offset,Value)-Pair #4 + { 0x2C, 0x24 }, // (Offset,Value)-Pair #5 + { 0x2D, 0x08 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_FillMode+0x2E : jnz +0x02 + { 0x2E, 0x75 }, // (Offset,Value)-Pair #7 + { 0x2F, 0x02 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_FillMode+0x3E : add eax, 0x0C + { 0x3E, 0x83 }, // (Offset,Value)-Pair #9 + { 0x3F, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x40, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_FogColor +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_FogColor_1_0_5849_LTCG = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_FogColor+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_FogColor+0x09 : cmp eax, [esi+4] + { 0x09, 0x3B }, // (Offset,Value)-Pair #3 + { 0x0A, 0x46 }, // (Offset,Value)-Pair #4 + { 0x0B, 0x04 }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_FogColor+0x2E : shl edi, 0x10 + { 0x2E, 0xC1 }, // (Offset,Value)-Pair #6 + { 0x2F, 0xE7 }, // (Offset,Value)-Pair #7 + { 0x30, 0x10 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_FogColor+0x49 : mov [esi], eax + { 0x49, 0x89 }, // (Offset,Value)-Pair #9 + { 0x4A, 0x06 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVerticesUP +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_DrawVerticesUP_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0xA1 }, + { 0x3E, 0x8B }, + { 0x5E, 0x08 }, + { 0x7E, 0xD0 }, + { 0x9E, 0x14 }, + { 0xBE, 0x8D }, + { 0xDE, 0x3B }, + { 0xFE, 0x81 }, + } +}; + +// Verteks 11/03/2009 +// blueshogun96 7/17/2010 + +// ****************************************************************** +// * D3DVertexBuffer_Lock2 +// ****************************************************************** +SOOVPA<10> IDirect3DVertexBuffer8_Lock2_1_0_5849_LTCG = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // D3DVertexBuffer_Lock2+0x05 : test bl, 0x10 + { 0x05, 0xF6 }, + { 0x06, 0xC3 }, + { 0x07, 0x10 }, + // D3DVertexBuffer_Lock2+0x7F : or eax, 0x8000000 + { 0x7F, 0x0D }, + { 0x80, 0x00 }, + { 0x81, 0x00 }, + { 0x82, 0x00 }, + { 0x83, 0x80 }, + // D3DVertexBuffer_Lock2+0x85 : retn 8 + { 0x85, 0xC2 }, + { 0x86, 0x08 }, + } +}; + + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_YuvEnable +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_YuvEnable_1_0_5849_LTCG = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_YuvEnable+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #1 + { 0x01, 0x44 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x10 : mov eax, [esi] + { 0x10, 0x8B }, // (Offset,Value)-Pair #5 + { 0x11, 0x06 }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x12 : cmp eax, [esi+4] + { 0x12, 0x3B }, // (Offset,Value)-Pair #7 + { 0x13, 0x46 }, // (Offset,Value)-Pair #8 + { 0x14, 0x04 }, // (Offset,Value)-Pair #9 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x15 : jb +0x0E + { 0x15, 0x72 }, // (Offset,Value)-Pair #10 + { 0x16, 0x0E }, // (Offset,Value)-Pair #11 + + // IDirect3DDevice8_SetRenderState_YuvEnable+0x30 : retn 0x04 + { 0x30, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x31, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_ShadowFunc +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_5849_LTCG = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x00 : push esi + { 0x00, 0x56 }, // (Offset,Value)-Pair #1 + + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x09 : cmp eax, [esi+4] + { 0x09, 0x3B }, // (Offset,Value)-Pair #2 + { 0x0A, 0x46 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x04 }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x0C : jb +0x0E + { 0x0C, 0x72 }, // (Offset,Value)-Pair #5 + { 0x0D, 0x0E }, // (Offset,Value)-Pair #6 + + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x26 : lea edx, [ecx-0x0200] + { 0x26, 0x8D }, // (Offset,Value)-Pair #7 + { 0x27, 0x91 }, // (Offset,Value)-Pair #8 + { 0x28, 0x00 }, // (Offset,Value)-Pair #9 + { 0x29, 0xFE }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_ShadowFunc+0x2F : add eax, 0x08 + { 0x2F, 0x83 }, // (Offset,Value)-Pair #11 + { 0x30, 0xC0 }, // (Offset,Value)-Pair #12 + { 0x31, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_OcclusionCullEnable +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_5849_LTCG = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x15 : jb +0x0E + { 0x15, 0x72 }, // (Offset,Value)-Pair #1 + { 0x16, 0x0E }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x4A : cmp [abs], 0x1E00 + { 0x4A, 0x81 }, // (Offset,Value)-Pair #3 + { 0x50, 0x00 }, // (Offset,Value)-Pair #4 + { 0x51, 0x1E }, // (Offset,Value)-Pair #5 + + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x59 : mov dword ptr [eax], 0x41D84 + { 0x59, 0xC7 }, // (Offset,Value)-Pair #6 + { 0x5A, 0x00 }, // (Offset,Value)-Pair #7 + { 0x5B, 0x84 }, // (Offset,Value)-Pair #8 + { 0x5C, 0x1D }, // (Offset,Value)-Pair #9 + { 0x5D, 0x04 }, // (Offset,Value)-Pair #10 + + // IDirect3DDevice8_SetRenderState_OcclusionCullEnable+0x68 : retn 0x04 + { 0x68, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x69, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetRenderState_EdgeAntiAlias +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_5849_LTCG = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x07 : mov eax, [esi] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x06 }, // (Offset,Value)-Pair #2 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x0C : jb +0x0E + { 0x0C, 0x72 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x0E }, // (Offset,Value)-Pair #4 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x1C : mov ecx, [esp+0x08] + { 0x1C, 0x8B }, // (Offset,Value)-Pair #5 + { 0x1D, 0x4C }, // (Offset,Value)-Pair #6 + { 0x1E, 0x24 }, // (Offset,Value)-Pair #7 + { 0x1F, 0x08 }, // (Offset,Value)-Pair #8 + + // IDirect3DDevice8_SetRenderState_EdgeAntiAlias+0x38 : retn 0x04 + { 0x38, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x39, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// I am not sure about this +// ****************************************************************** +// * IDirect3DTexture8_GetLevelDesc +// ****************************************************************** +// * NOTE: We are actually intercepting Get2DSurfaceDesc, because +// * GetLevelDesc Simply redirects to that function +// ****************************************************************** +SOOVPA<9> Get2DSurfaceDesc_1_0_5849_LTCG = +{ + 0, // Large == 0 + 9, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // Get2DSurfaceDesc+0x1E : movzx ecx, byte ptr [edi+0x0D] + { 0x1E, 0x0F }, // (Offset,Value)-Pair #1 + { 0x1F, 0xB6 }, // (Offset,Value)-Pair #2 + { 0x20, 0x4F }, // (Offset,Value)-Pair #3 + { 0x21, 0x0D }, // (Offset,Value)-Pair #4 + + // Get2DSurfaceDesc+0x45 : mov edx, [eax+0x1A14] + { 0x45, 0x8B }, // (Offset,Value)-Pair #5 + { 0x46, 0x90 }, // (Offset,Value)-Pair #6 + { 0x47, 0x14 }, // (Offset,Value)-Pair #7 + { 0x48, 0x1A }, // (Offset,Value)-Pair #8 + + // Get2DSurfaceDesc+0x9E : retn + { 0x9E, 0xC3 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetShaderConstantMode +// ****************************************************************** +SOOVPA<12> IDirect3DDevice8_SetShaderConstantMode_1_0_5849_LTCG = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x19, 0xFD }, + { 0x38, 0x8B }, + { 0x60, 0x0B }, + { 0x7A, 0xBA }, + { 0xA4, 0xC0 }, + { 0xB2, 0x00 }, + { 0xDA, 0x89 }, + { 0xF9, 0x00 }, + } +}; + +/* +I don't know which one of these is the right one : +0x0034E040 2 args +0x0034E200 2 args +0x0034F150 3 args +// ****************************************************************** +// * IDirect3DDevice8_SetIndices +// ****************************************************************** +SOOVPA<7> IDirect3DDevice8_SetIndices_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0F, 0x10 }, + { 0x20, 0xC7 }, + { 0x31, 0xC0 }, + { 0x42, 0x78 }, + { 0x53, 0xBE }, + { 0x64, 0x89 }, + { 0x75, 0x10 }, + } +}; +*/ + +/* Maybe this : 0x0034D730 (NOT THIS) + It's : 0x0034CC00 (same as 3925) + + 0035FEE8 accessed by CreateDevice (must contain 0035DA40 ?) +0034D730 /$ A1 E8FE3500 mov eax, dword ptr ds:[35FEE8] +0034D735 |. 8B88 041A0000 mov ecx, dword ptr ds:[eax+1A04] <- Exception here +0034D73B |. 85C9 test ecx, ecx +0034D73D |. 74 24 je short default.0034D763 +0034D73F |. 8B01 mov eax, dword ptr ds:[ecx] +0034D741 |. A9 FFFF0000 test eax, 0FFFF +0034D746 |. 75 19 jnz short default.0034D761 +0034D748 |. 25 00000700 and eax, 70000 +0034D74D |. 3D 00000500 cmp eax, default.00050000 +0034D752 |. 75 0D jnz short default.0034D761 +0034D754 |. 8B41 14 mov eax, dword ptr ds:[ecx+14] +0034D757 |. 85C0 test eax, eax +0034D759 |. 74 06 je short default.0034D761 +0034D75B |. 50 push eax +0034D75C |. E8 9FF4FFFF call default.0034CC00 <- IDirect3DResource8_AddRef +0034D761 |> FF01 inc dword ptr ds:[ecx] +0034D763 |> 8BC1 mov eax, ecx +0034D765 \. C3 retn +// ****************************************************************** +// * IDirect3DResource8_AddRef +// ****************************************************************** +SOOVPA<10> IDirect3DResource8_AddRef_1_0_5849_LTCG = +{ + 0, // Large == 0 + 10, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DResource8_AddRef+0x11 : test eax, 0xFFFF + { 0x11, 0xA9 }, // (Offset,Value)-Pair #1 + { 0x12, 0xFF }, // (Offset,Value)-Pair #2 + { 0x13, 0xFF }, // (Offset,Value)-Pair #3 + + // IDirect3DResource8_AddRef+0x18 : and eax, 0x00070000 + { 0x18, 0x25 }, // (Offset,Value)-Pair #4 + { 0x1B, 0x07 }, // (Offset,Value)-Pair #5 + + // IDirect3DResource8_AddRef+0x1D : cmp eax, 0x00050000 + { 0x1D, 0x3D }, // (Offset,Value)-Pair #6 + { 0x20, 0x05 }, // (Offset,Value)-Pair #7 + + // IDirect3DResource8_AddRef+0x2B : push eax + { 0x2B, 0x50 }, // (Offset,Value)-Pair #8 + + // IDirect3DResource8_AddRef+0x34 : mov eax, ecx + { 0x33, 0x8B }, // (Offset,Value)-Pair #9 + { 0x34, 0xC1 }, // (Offset,Value)-Pair #10 + } +}; +*/ + +// 0x0034CC40 +// ****************************************************************** +// * IDirect3DResource8_Release +// ****************************************************************** +SOOVPA<11> IDirect3DResource8_Release_1_0_5849_LTCG = +{ + 0, // Large == 0 + 11, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DResource8_Release+0x09 : and ecx, 0xFFFF + { 0x09, 0x81 }, // (Offset,Value)-Pair #1 + { 0x0A, 0xE1 }, // (Offset,Value)-Pair #2 + { 0x0B, 0xFF }, // (Offset,Value)-Pair #3 + { 0x0C, 0xFF }, // (Offset,Value)-Pair #4 + + // IDirect3DResource8_Release+0x14 : and eax, 0x00070000 + { 0x14, 0x25 }, // (Offset,Value)-Pair #5 + { 0x17, 0x07 }, // (Offset,Value)-Pair #6 + + // IDirect3DResource8_Release+0x19 : cmp eax, 0x00050000 + { 0x19, 0x3D }, // (Offset,Value)-Pair #7 + { 0x1C, 0x05 }, // (Offset,Value)-Pair #8 + + // IDirect3DResource8_Release+0x3D : pop edi + { 0x3D, 0x5F }, // (Offset,Value)-Pair #9 + + // IDirect3DResource8_Release+0x4A : retn 0x04 + { 0x4A, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x4B, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// Verteks 05/04/2009 +// ****************************************************************** +// * IDirect3DDevice8_SetTextureState_ColorKeyColor (Not sure) +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_5849_LTCG = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetTextureState_ColorKeyColor+0x05 : cmp esi, 0x5C + { 0x05, 0x83 }, + { 0x06, 0xFE }, + { 0x07, 0x5C }, + + // IDirect3DDevice8_SetTextureState_ColorKeyColor+0x29 : cmp esi, 0x88 + { 0x29, 0x81 }, + { 0x2A, 0xFE }, + { 0x2B, 0x88 }, + + // IDirect3DDevice8_SetTextureState_ColorKeyColor+0x4A : retn 0x08 + { 0x4A, 0xC2 }, + { 0x4B, 0x08 }, + + // IDirect3DDevice8_SetTextureState_ColorKeyColor+0x5A : retn 0x08 + { 0x5A, 0xC2 }, + { 0x5B, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Unknown1_3 +// ****************************************************************** +SOOVPA<13> IDirect3DDevice8_Unknown1_3_1_0_5849_LTCG = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Unknown1_3+0x04 : cmp eax, 0x0C + { 0x04, 0x83 }, + { 0x05, 0xF8 }, + { 0x06, 0x0C }, + + // IDirect3DDevice8_Unknown1_3+0x48 : and ecx, 0xFFFFBFF1 + { 0x48, 0x81 }, + { 0x49, 0xE1 }, + { 0x4A, 0xF1 }, + { 0x4B, 0xBF }, + { 0x4C, 0xFF }, + { 0x4D, 0xFF }, + + // IDirect3DDevice8_Unknown1_3+0x69 : retn 0x0C + { 0x69, 0xC2 }, + { 0x6A, 0x0C }, + + // IDirect3DDevice8_Unknown1_3+0xD7 : retn 0x0C + { 0xD7, 0xC2 }, + { 0xD8, 0x0C }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Clear +// ****************************************************************** +LOOVPA<9> IDirect3DDevice8_Clear_1_0_5849_LTCG = +{ + 1, // Large == 1 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Clear+0x0000 : sub esp, 38h + { 0x0000, 0x83 }, // (Offset,Value)-Pair #1 + { 0x0001, 0xEC }, // (Offset,Value)-Pair #2 + { 0x0002, 0x38 }, // (Offset,Value)-Pair #3 + + // IDirect3DDevice8_Clear+0x000B : mov ebx, [ebp+0x1A04] + { 0x000B, 0x8B }, // (Offset,Value)-Pair #4 + { 0x000C, 0x9D }, // (Offset,Value)-Pair #5 + { 0x000D, 0x04 }, // (Offset,Value)-Pair #6 + { 0x000E, 0x1A }, // (Offset,Value)-Pair #7 + + // IDirect3DDevice8_Clear+0x03D1 : retn 0x18 + { 0x03D1, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x03D2, 0x18 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_Swap +// ****************************************************************** +SOOVPA<6> IDirect3DDevice8_Swap_1_0_5849_LTCG = +{ + 0, // Large == 0 + 6, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_Swap+0x00 : push esi + { 0x00, 0x56 }, + // IDirect3DDevice8_Swap+0x32 : test ah, 0x40 + { 0x32, 0xF6 }, + { 0x33, 0xC4 }, + { 0x34, 0x40 }, + // IDirect3DDevice8_Swap+0xEA : retn 4 + { 0xEA, 0xC2 }, + { 0xEB, 0x04 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_SetVertexShader +// ****************************************************************** +SOOVPA<10> IDirect3DDevice8_SetVertexShader_1_0_5849_LTCG = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_SetVertexShader+0x27 : test al, 0x10 + { 0x27, 0xA8 }, + { 0x28, 0x10 }, + // IDirect3DDevice8_SetVertexShader+0x70 : or eax, 0x400 + { 0x70, 0x0D }, + { 0x71, 0x00 }, + { 0x72, 0x04 }, + { 0x73, 0x00 }, + { 0x74, 0x00 }, + // IDirect3DDevice8_SetVertexShader+0xCD : add eax, 8 + { 0xCD, 0x83 }, + { 0xCE, 0xC0 }, + { 0xCF, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirect3DDevice8_DrawVertices +// ****************************************************************** +SOOVPA<14> IDirect3DDevice8_DrawVertices_1_0_5849_LTCG = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirect3DDevice8_DrawVertices+0x2B : and ecx, 0x200 + { 0x2B, 0x81 }, + { 0x2C, 0xC1 }, + { 0x2D, 0x00 }, + { 0x2E, 0x02 }, + { 0x2F, 0x00 }, + { 0x30, 0x00 }, + // IDirect3DDevice8_DrawVertices+0x6F : cmp edi, 0x100 + { 0x6F, 0x81 }, + { 0x70, 0xFF }, + { 0x71, 0x00 }, + { 0x72, 0x01 }, + { 0x73, 0x00 }, + { 0x74, 0x00 }, + // IDirect3DDevice8_DrawVertices+0xCC : retn 0xC + { 0xCC, 0xC2 }, + { 0xCD, 0x0C }, + } +}; + +// ****************************************************************** +// * D3D8LTCG_1_0_5849 +// ****************************************************************** +OOVPATable D3D8LTCG_1_0_5849[] = +{ + // IDirect3D8::CreateDevice + { + (OOVPA*)&IDirect3D8_CreateDevice_1_0_5849_LTCG, + + XTL::EmuIDirect3D8_CreateDevice, + + #ifdef _DEBUG_TRACE + "EmuIDirect3D8_CreateDevice" + #endif + }, + // IDirect3DDevice8::SetPixelShader + { + (OOVPA*)&IDirect3DDevice8_SetPixelShader_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetPixelShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetPixelShader" + #endif + }, + // IDirect3DDevice8::CreateVertexShader + { + (OOVPA*)&IDirect3DDevice8_CreateVertexShader_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_CreateVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexShader" + #endif + }, + // IDirect3DDevice8::DrawIndexedVertices + { + (OOVPA*)&IDirect3DDevice8_DrawIndexedVertices_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_DrawIndexedVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawIndexedVertices" + #endif + }, + // IDirect3DDevice8::SetVertexShader + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, + // IDirect3DDevice8::SetTexture + { + (OOVPA*)&IDirect3DDevice8_SetTexture_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetTexture, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTexture" + #endif + }, + // IDirect3DDevice8::SetViewport + { + (OOVPA*)&IDirect3DDevice8_SetViewport_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetViewport, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetViewport" + #endif + }, + // IDirect3DDevice8::SetLight + { + (OOVPA*)&IDirect3DDevice8_SetLight_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight" + #endif + }, + // IDirect3DDevice8::SetTransform (* unchanged since 5558 *) + { + (OOVPA*)&IDirect3DDevice8_SetTransform_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetTransform, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTransform" + #endif + }, + // IDirect3DDevice8::SetMaterial (* unchanged since 5849 *) + { + (OOVPA*)&IDirect3DDevice8_SetMaterial_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetMaterial, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetMaterial" + #endif + }, + // IDirect3DDevice8::SetStreamSource + { + (OOVPA*)&IDirect3DDevice8_SetStreamSource_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetStreamSource, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetStreamSource" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant1 (* unchanged since 5849 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant1_1_0_5849, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant1, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant1" + #endif + }, + // IDirect3DDevice8::CreateVertexBuffer2 (* unchanged since 5849 *) + { + (OOVPA*)&IDirect3DDevice8_CreateVertexBuffer2_1_0_5849, + + XTL::EmuIDirect3DDevice8_CreateVertexBuffer2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_CreateVertexBuffer2" + #endif + }, + // IDirect3DDevice8::SetTextureState_TexCoordIndex + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_TexCoordIndex_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetTextureState_TexCoordIndex, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_TexCoordIndex" + #endif + }, + // IDirect3DDevice8::SetTextureState_BumpEnv + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BumpEnv_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetTextureState_BumpEnv, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BumpEnv" + #endif + }, + // IDirect3DDevice8::SetTextureState_BorderColor + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_BorderColor_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetTextureState_BorderColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_BorderColor" + #endif + }, + // IDirect3DDevice8::SetRenderState_CullMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_CullMode_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetRenderState_CullMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_CullMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_TextureFactor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_TextureFactor_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetRenderState_TextureFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_TextureFactor" + #endif + }, + // IDirect3DDevice8::SetRenderState_NormalizeNormals + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_NormalizeNormals_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetRenderState_NormalizeNormals, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_NormalizeNormals" + #endif + }, + // IDirect3DDevice8::SetRenderState_ZEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ZEnable_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetRenderState_ZEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ZEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_StencilEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_StencilEnable_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetRenderState_StencilEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_StencilEnable" + #endif + }, + // IDirect3DDevice8::Swap + { + (OOVPA*)&IDirect3DDevice8_Swap_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_Swap, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Swap" + #endif + }, + // IDirect3DDevice8::SetVertexData2f (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexData2f_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, + // IDirect3DDevice8::End + { + (OOVPA*)&IDirect3DDevice8_End_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_End, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_End" + #endif + }, + // IDirect3DDevice8::SetRenderState_FillMode + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FillMode_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetRenderState_FillMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FillMode" + #endif + }, + // IDirect3DDevice8::SetRenderState_FogColor + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_FogColor_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetRenderState_FogColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_FogColor" + #endif + }, + // IDirect3DDevice8::DrawVertices + { + (OOVPA*)&IDirect3DDevice8_DrawVertices_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_DrawVertices, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVertices" + #endif + }, + // IDirect3DDevice8::DrawVerticesUP + { + (OOVPA*)&IDirect3DDevice8_DrawVerticesUP_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_DrawVerticesUP, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_DrawVerticesUP" + #endif + }, + // IDirect3DDevice8::SetVertexShaderConstant4 (* unchanged since 4627 *) + { + (OOVPA*)&IDirect3DDevice8_SetVertexShaderConstant4_1_0_4627, + + XTL::EmuIDirect3DDevice8_SetVertexShaderConstant4, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShaderConstant4" + #endif + }, + // IDirect3DVertexBuffer8::Lock2 + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock2_1_0_5849_LTCG, + + XTL::EmuIDirect3DVertexBuffer8_Lock2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock2" + #endif + }, + // IDirect3DDevice8::SetRenderState_YuvEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_YuvEnable_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetRenderState_YuvEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_YuvEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_ShadowFunc + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_ShadowFunc_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetRenderState_ShadowFunc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_ShadowFunc" + #endif + }, + // IDirect3DDevice8::SetRenderState_OcclusionCullEnable + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_OcclusionCullEnable_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_OcclusionCullEnable" + #endif + }, + // IDirect3DDevice8::SetRenderState_EdgeAntiAlias + { + (OOVPA*)&IDirect3DDevice8_SetRenderState_EdgeAntiAlias_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetRenderState_EdgeAntiAlias" + #endif + }, + // IDirect3DTexture8::GetLevelDesc + { + (OOVPA*)&Get2DSurfaceDesc_1_0_5849_LTCG, + + XTL::EmuGet2DSurfaceDesc, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DTexture8_GetLevelDesc" + #endif + }, + // IDirect3DDevice8::SetShaderConstantMode + { + (OOVPA*)&IDirect3DDevice8_SetShaderConstantMode_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetShaderConstantMode, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetShaderConstantMode" + #endif + }, + // IDirect3DResource8::AddRef + { + (OOVPA*)&IDirect3DResource8_AddRef_1_0_3925, + + XTL::EmuIDirect3DResource8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_AddRef" + #endif + }, + // IDirect3DResource8::Release + { + (OOVPA*)&IDirect3DResource8_Release_1_0_5849_LTCG, + + XTL::EmuIDirect3DResource8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DResource8_Release" + #endif + }, + + // IDirect3DDevice8::SetTextureState_ColorKeyColor + { + (OOVPA*)&IDirect3DDevice8_SetTextureState_ColorKeyColor_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetTextureState_ColorKeyColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetTextureState_ColorKeyColor" + #endif + }, + // IDirect3DDevice8::Clear + { + (OOVPA*)&IDirect3DDevice8_Clear_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_Clear, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_Clear" + #endif + }, + // IDirect3DVertexBuffer8::Lock2 + { + (OOVPA*)&IDirect3DVertexBuffer8_Lock2_1_0_5849_LTCG, + + XTL::EmuIDirect3DVertexBuffer8_Lock2, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DVertexBuffer8_Lock2" + #endif + }, + // IDirect3DDevice8::SetVertexShader + { + (OOVPA*)&IDirect3DDevice8_SetVertexShader_1_0_5849_LTCG, + + XTL::EmuIDirect3DDevice8_SetVertexShader, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexShader" + #endif + }, +}; + +uint32 D3D8LTCG_1_0_5849_SIZE = sizeof(D3D8LTCG_1_0_5849); \ No newline at end of file diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.3936.h b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.3936.h new file mode 100644 index 000000000..090d21543 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.3936.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.3936.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_1_0_3936_H +#define DSOUND_1_0_3936_H + +#include "OOVPA.h" + +extern OOVPATable DSOUND_1_0_3936[]; +extern uint32 DSOUND_1_0_3936_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.3936.inl b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.3936.inl new file mode 100644 index 000000000..2997c55c1 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.3936.inl @@ -0,0 +1,6191 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.3936.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * DirectSoundCreate +// ****************************************************************** +SOOVPA<9> DirectSoundCreate_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // DirectSoundCreate+0x23 : add eax, 8 + { 0x23, 0x83 }, // (Offset,Value)-Pair #1 + { 0x24, 0xC0 }, // (Offset,Value)-Pair #2 + { 0x25, 0x08 }, // (Offset,Value)-Pair #3 + + // DirectSoundCreate+0x34 : push 0x1C + { 0x34, 0x6A }, // (Offset,Value)-Pair #4 + { 0x35, 0x1C }, // (Offset,Value)-Pair #5 + + // DirectSoundCreate+0x75 : sbb eax, eax + { 0x75, 0x1B }, // (Offset,Value)-Pair #6 + { 0x76, 0xC0 }, // (Offset,Value)-Pair #7 + + // DirectSoundCreate+0x9B : retn 0x0C + { 0x9B, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x9C, 0x0C }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * DirectSoundDoWorkB +// ****************************************************************** +SOOVPA<12> DirectSoundDoWorkB_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSDOWORKB, // XRef Is Saved + 0, // XRef Not Used + + { + // DirectSoundDoWorkB+0x06 : lea edi, [ebx+0x664] + { 0x06, 0x8D }, // (Offset,Value)-Pair #1 + { 0x07, 0xBB }, // (Offset,Value)-Pair #2 + { 0x08, 0x64 }, // (Offset,Value)-Pair #3 + { 0x09, 0x06 }, // (Offset,Value)-Pair #4 + { 0x0A, 0x00 }, // (Offset,Value)-Pair #5 + { 0x0B, 0x00 }, // (Offset,Value)-Pair #6 + + // DirectSoundDoWorkB+0x20 : mov eax, [ecx] + { 0x20, 0x8B }, // (Offset,Value)-Pair #7 + { 0x21, 0x01 }, // (Offset,Value)-Pair #8 + + // DirectSoundDoWorkB+0x33 : add edi, 4; dec ebp + { 0x33, 0x83 }, // (Offset,Value)-Pair #9 + { 0x34, 0xC7 }, // (Offset,Value)-Pair #10 + { 0x35, 0x04 }, // (Offset,Value)-Pair #11 + { 0x36, 0x4D }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * DirectSoundDoWorkA +// ****************************************************************** +SOOVPA<9> DirectSoundDoWorkA_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSDOWORKA, // XRef Is Saved + 1, // XRef Is Used + + { + // DirectSoundDoWorkA+0x10 : call [DirectSoundDoWorkB] + { 0x10, XREF_DSDOWORKB }, // (Offset,Value)-Pair #1 + + // DirectSoundDoWorkA+0x08 : mov eax, [esp+0x08] + { 0x08, 0x8B }, // (Offset,Value)-Pair #2 + { 0x09, 0x44 }, // (Offset,Value)-Pair #3 + { 0x0A, 0x24 }, // (Offset,Value)-Pair #4 + { 0x0B, 0x08 }, // (Offset,Value)-Pair #5 + + // DirectSoundDoWorkA+0x17 : jz +0x0B + { 0x17, 0x74 }, // (Offset,Value)-Pair #6 + { 0x18, 0x0B }, // (Offset,Value)-Pair #7 + + // DirectSoundDoWorkA+0x24 : retn 0x04 + { 0x24, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x25, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * DirectSoundDoWork +// ****************************************************************** +SOOVPA<9> DirectSoundDoWork_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // DirectSoundDoWork+0x13 : call [XREF_DSDOWORKA] + { 0x13, XREF_DSDOWORKA }, // (Offset,Value)-Pair #1 + + // DirectSoundDoWork+0x0D : test eax, eax;jz +0x06 + { 0x0D, 0x85 }, // (Offset,Value)-Pair #2 + { 0x0E, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x74 }, // (Offset,Value)-Pair #4 + { 0x10, 0x06 }, // (Offset,Value)-Pair #5 + + // DirectSoundDoWork+0x19 : pop esi; jz +0x0B + { 0x19, 0x5E }, // (Offset,Value)-Pair #6 + { 0x1A, 0x74 }, // (Offset,Value)-Pair #7 + { 0x1B, 0x0B }, // (Offset,Value)-Pair #8 + + // DirectSoundDoWork+0x27 : retn + { 0x27, 0xC3 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSound::CreateSoundStream +// ****************************************************************** +SOOVPA<16> CDirectSound_CreateSoundStream_1_0_3936 = +{ + 0, // Large == 0 + 16, // Count == 16 + + XREF_DSCREATESOUNDSTREAM, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_CreateSoundStream+0x2D : and esi, 0x7FF8FFF2 + { 0x2D, 0x81 }, // (Offset,Value)-Pair #1 + { 0x2E, 0xE6 }, // (Offset,Value)-Pair #2 + { 0x2F, 0xF2 }, // (Offset,Value)-Pair #3 + { 0x30, 0xFF }, // (Offset,Value)-Pair #4 + { 0x31, 0xF8 }, // (Offset,Value)-Pair #5 + { 0x32, 0x7F }, // (Offset,Value)-Pair #6 + + // CDirectSound_CreateSoundStream+0x33 : add esi, 0x8007000E + { 0x33, 0x81 }, // (Offset,Value)-Pair #7 + { 0x34, 0xC6 }, // (Offset,Value)-Pair #8 + { 0x35, 0x0E }, // (Offset,Value)-Pair #9 + { 0x36, 0x00 }, // (Offset,Value)-Pair #10 + { 0x37, 0x07 }, // (Offset,Value)-Pair #11 + { 0x38, 0x80 }, // (Offset,Value)-Pair #12 + + // CDirectSound_CreateSoundStream+0x3C : js +0x16 + { 0x3C, 0x78 }, // (Offset,Value)-Pair #13 + { 0x3D, 0x16 }, // (Offset,Value)-Pair #14 + + // CDirectSound_CreateSoundStream+0x72 : retn 0x10 + { 0x72, 0xC2 }, // (Offset,Value)-Pair #15 + { 0x73, 0x10 }, // (Offset,Value)-Pair #16 + } +}; + +// ****************************************************************** +// * IDirectSound8_CreateStream +// ****************************************************************** +SOOVPA<10> IDirectSound8_CreateStream_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + // TODO: tidy up the xref names (are probably not accurate) + + { + // IDirectSound8_CreateStream+0x1D : call [CDirectSound::CreateSoundStream] + { 0x1D, XREF_DSCREATESOUNDSTREAM }, // (Offset,Value)-Pair #1 + + // IDirectSound8_CreateStream+0x04 : mov eax, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // IDirectSound8_CreateStream+0x12 : and eax, 0xFFFFFFF8 + { 0x12, 0x83 }, // (Offset,Value)-Pair #6 + { 0x13, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x14, 0xF8 }, // (Offset,Value)-Pair #8 + + // IDirectSound8_CreateStream+0x21 : retn 0x10 + { 0x21, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x22, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSound::CreateSoundBuffer +// ****************************************************************** +SOOVPA<16> CDirectSound_CreateSoundBuffer_1_0_3936 = +{ + 0, // Large == 0 + 16, // Count == 16 + + XREF_DSCREATESOUNDBUFFER, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_CreateSoundBuffer+0x2D : and esi, 0x7FF8FFF2 + { 0x2D, 0x81 }, // (Offset,Value)-Pair #1 + { 0x2E, 0xE6 }, // (Offset,Value)-Pair #2 + { 0x2F, 0xF2 }, // (Offset,Value)-Pair #3 + { 0x30, 0xFF }, // (Offset,Value)-Pair #4 + { 0x31, 0xF8 }, // (Offset,Value)-Pair #5 + { 0x32, 0x7F }, // (Offset,Value)-Pair #6 + + // CDirectSound_CreateSoundBuffer+0x33 : add esi, 0x8007000E + { 0x33, 0x81 }, // (Offset,Value)-Pair #7 + { 0x34, 0xC6 }, // (Offset,Value)-Pair #8 + { 0x35, 0x0E }, // (Offset,Value)-Pair #9 + { 0x36, 0x00 }, // (Offset,Value)-Pair #10 + { 0x37, 0x07 }, // (Offset,Value)-Pair #11 + { 0x38, 0x80 }, // (Offset,Value)-Pair #12 + + // CDirectSound_CreateSoundBuffer+0x3C : js +0x21 + { 0x3C, 0x78 }, // (Offset,Value)-Pair #13 + { 0x3D, 0x21 }, // (Offset,Value)-Pair #14 + + // CDirectSound_CreateSoundBuffer+0x7D : retn 0x10 + { 0x7D, 0xC2 }, // (Offset,Value)-Pair #15 + { 0x7E, 0x10 }, // (Offset,Value)-Pair #16 + } +}; + +// ****************************************************************** +// * IDirectSound8_CreateBuffer +// ****************************************************************** +SOOVPA<10> IDirectSound8_CreateBuffer_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + // TODO: tidy up the xref names (are probably not accurate) + + { + // IDirectSound8_CreateBuffer+0x1D : call [CDirectSound::CreateSoundStream] + { 0x1D, XREF_DSCREATESOUNDBUFFER }, // (Offset,Value)-Pair #1 + + // IDirectSound8_CreateBuffer+0x04 : mov eax, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // IDirectSound8_CreateBuffer+0x12 : and eax, 0xFFFFFFF8 + { 0x12, 0x83 }, // (Offset,Value)-Pair #6 + { 0x13, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x14, 0xF8 }, // (Offset,Value)-Pair #8 + + // IDirectSound8_CreateBuffer+0x21 : retn 0x10 + { 0x21, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x22, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_Release +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_Release_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSoundBuffer8_Release+0x04 : lea ecx, [eax-0x1C] + { 0x04, 0x8D }, // (Offset,Value)-Pair #1 + { 0x05, 0x48 }, // (Offset,Value)-Pair #2 + { 0x06, 0xE4 }, // (Offset,Value)-Pair #3 + + // IDirectSoundBuffer8_Release+0x07 : neg eax; sbb eax, eax + { 0x07, 0xF7 }, // (Offset,Value)-Pair #4 + { 0x08, 0xD8 }, // (Offset,Value)-Pair #5 + { 0x09, 0x1B }, // (Offset,Value)-Pair #6 + { 0x0A, 0xC0 }, // (Offset,Value)-Pair #7 + + // IDirectSoundBuffer8_Release+0x10 : call dword ptr [ecx+0x08] + { 0x10, 0xFF }, // (Offset,Value)-Pair #8 + { 0x11, 0x51 }, // (Offset,Value)-Pair #9 + { 0x12, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetPitchB +// ****************************************************************** +SOOVPA<11> IDirectSoundBuffer8_SetPitchB_1_0_3936 = +{ + 0, // Large == 0 + 11,// Count == 11 + + XREF_DSBUFFERSETPITCHB,// XRef Is Saved + 0, // XRef Not Used + + { + // IDirectSoundBuffer8_SetPitchB+0x21 : lea edi, [esi+0xB4] + { 0x21, 0x8D }, // (Offset,Value)-Pair #1 + { 0x22, 0xBE }, // (Offset,Value)-Pair #2 + { 0x23, 0xB4 }, // (Offset,Value)-Pair #3 + { 0x24, 0x00 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_SetPitchB+0x58 : movzx eax, word ptr [eax+2] + { 0x58, 0x0F }, // (Offset,Value)-Pair #5 + { 0x59, 0xB7 }, // (Offset,Value)-Pair #6 + { 0x5A, 0x40 }, // (Offset,Value)-Pair #7 + { 0x5B, 0x02 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetPitchB+0x5E : dec eax; sar eax, 1 + { 0x5E, 0x48 }, // (Offset,Value)-Pair #9 + { 0x5F, 0xD1 }, // (Offset,Value)-Pair #10 + { 0x60, 0xF8 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetPitchA +// ****************************************************************** +SOOVPA<12> IDirectSoundBuffer8_SetPitchA_1_0_3936 = +{ + 0, // Large == 0 + 12,// Count == 12 + + XREF_DSBUFFERSETPITCHA,// XRef Is Saved + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetPitchA+0x1B : call [IDirectSoundBuffer8_SetPitchB] + { 0x1B, XREF_DSBUFFERSETPITCHB }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetPitchA+0x07 : mov edx, [esp+0x10] + { 0x07, 0x8B }, // (Offset,Value)-Pair #2 + { 0x08, 0x54 }, // (Offset,Value)-Pair #3 + { 0x09, 0x24 }, // (Offset,Value)-Pair #4 + { 0x0A, 0x10 }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer8_SetPitchA+0x11 : mov ecx, [eax+0x18] + { 0x11, 0x8B }, // (Offset,Value)-Pair #6 + { 0x12, 0x48 }, // (Offset,Value)-Pair #7 + { 0x13, 0x18 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetPitchA+0x23 : jz +0x0B + { 0x23, 0x74 }, // (Offset,Value)-Pair #9 + { 0x24, 0x0B }, // (Offset,Value)-Pair #10 + + // IDirectSoundBuffer8_SetPitchA+0x34 : retn 0x08 + { 0x34, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x35, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetPitch +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_SetPitch_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetPitch+0x15 : call [IDirectSoundBuffer8_SetPitchA] + { 0x15, XREF_DSBUFFERSETPITCHA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetPitch+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 + + // IDirectSoundBuffer8_SetPitch+0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetPitch+0x19 : retn 0x08 + { 0x19, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1A, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CMcpxBuffer::GetStatus +// ****************************************************************** +SOOVPA<13> CMcpxBuffer_GetStatus_1_0_3936 = +{ + 0, // Large == 0 + 13,// Count == 13 + + XREF_DSBUFFERGETSTATUSB, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_GetStatus+0x10 : mov eax, [ebp+0x08] + { 0x10, 0x8B }, // (Offset,Value)-Pair #1 + { 0x11, 0x45 }, // (Offset,Value)-Pair #2 + { 0x12, 0x08 }, // (Offset,Value)-Pair #3 + + // CMcpxBuffer_GetStatus+0x16 : xor ecx, ecx; inc ecx + { 0x16, 0x33 }, // (Offset,Value)-Pair #4 + { 0x17, 0xC9 }, // (Offset,Value)-Pair #5 + { 0x18, 0x41 }, // (Offset,Value)-Pair #6 + + // CMcpxBuffer_GetStatus+0x1C : jz +0x17 + { 0x1C, 0x74 }, // (Offset,Value)-Pair #7 + { 0x1D, 0x17 }, // (Offset,Value)-Pair #8 + + // CMcpxBuffer_GetStatus+0x2F : mov [eax], 5 + { 0x2F, 0xC7 }, // (Offset,Value)-Pair #9 + { 0x30, 0x00 }, // (Offset,Value)-Pair #10 + { 0x31, 0x05 }, // (Offset,Value)-Pair #11 + + // CMcpxBuffer_GetStatus+0x48 : retn 0x04 + { 0x48, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x49, 0x04 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::GetStatus +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_GetStatus_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSBUFFERGETSTATUSA, // XRef Not Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_GetStatus+0x14 : call [CMcpxBuffer::GetStatus] + { 0x15, XREF_DSBUFFERGETSTATUSB }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_GetStatus+0x07 : push [esp+0x10] + { 0x07, 0xFF }, // (Offset,Value)-Pair #2 + { 0x08, 0x74 }, // (Offset,Value)-Pair #3 + { 0x09, 0x24 }, // (Offset,Value)-Pair #4 + { 0x0A, 0x10 }, // (Offset,Value)-Pair #5 + + // CDirectSoundBuffer_GetStatus+0x11 : mov ecx, [eax+0x20] + { 0x11, 0x8B }, // (Offset,Value)-Pair #6 + { 0x12, 0x48 }, // (Offset,Value)-Pair #7 + { 0x13, 0x20 }, // (Offset,Value)-Pair #8 + + // CDirectSoundBuffer_GetStatus+0x2E : retn 0x08 + { 0x2E, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x2F, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_GetStatus +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_GetStatus_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_GetStatus+0x15 : call [CDirectSoundBuffer::GetStatus] + { 0x15, XREF_DSBUFFERGETSTATUSA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_GetStatus+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 + + // IDirectSoundBuffer8_GetStatus+0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_GetStatus+0x19 : retn 0x08 + { 0x19, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1A, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetVolumeB +// ****************************************************************** +SOOVPA<11> IDirectSoundBuffer8_SetVolumeB_1_0_3936 = +{ + 0, // Large == 0 + 11,// Count == 11 + + XREF_DSBUFFERSETVOLUMEB,// XRef Is Saved + 0, // XRef Not Used + + { + // IDirectSoundBuffer8_SetVolumeB+0x26 : mov ecx, [esi+0xE0] + { 0x26, 0x8B }, // (Offset,Value)-Pair #1 + { 0x27, 0x8E }, // (Offset,Value)-Pair #2 + { 0x28, 0xE0 }, // (Offset,Value)-Pair #3 + { 0x29, 0x00 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_SetVolumeB+0x2F : movzx ecx, word ptr [ecx+2] + { 0x2F, 0x0F }, // (Offset,Value)-Pair #5 + { 0x30, 0xB7 }, // (Offset,Value)-Pair #6 + { 0x31, 0x49 }, // (Offset,Value)-Pair #7 + { 0x32, 0x02 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetVolumeB+0x35 : dec ecx; sar ecx, 1 + { 0x35, 0x49 }, // (Offset,Value)-Pair #9 + { 0x36, 0xD1 }, // (Offset,Value)-Pair #10 + { 0x37, 0xF9 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetVolumeA +// ****************************************************************** +SOOVPA<12> IDirectSoundBuffer8_SetVolumeA_1_0_3936 = +{ + 0, // Large == 0 + 12,// Count == 12 + + XREF_DSBUFFERSETVOLUMEA,// XRef Is Saved + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetVolumeA+0x1E : call [IDirectSoundBuffer8_SetVolumeB] + { 0x1E, XREF_DSBUFFERSETVOLUMEB }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetVolumeA+0x07 : mov ecx, [esp+0x0C] + { 0x07, 0x8B }, // (Offset,Value)-Pair #2 + { 0x08, 0x4C }, // (Offset,Value)-Pair #3 + { 0x09, 0x24 }, // (Offset,Value)-Pair #4 + { 0x0A, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer8_SetVolumeA+0x11 : mov eax, [ecx+0x18] + { 0x11, 0x8B }, // (Offset,Value)-Pair #6 + { 0x12, 0x41 }, // (Offset,Value)-Pair #7 + { 0x13, 0x18 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetVolumeA+0x26 : jz +0x0B + { 0x26, 0x74 }, // (Offset,Value)-Pair #9 + { 0x27, 0x0B }, // (Offset,Value)-Pair #10 + + // IDirectSoundBuffer8_SetVolumeA+0x37 : retn 0x08 + { 0x37, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x38, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetVolume +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_SetVolume_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetVolume+0x15 : call [IDirectSoundBuffer8_SetVolumeA] + { 0x15, XREF_DSBUFFERSETVOLUMEA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetVolume+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 + + // IDirectSoundBuffer8_SetVolume+0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetVolume+0x19 : retn 0x08 + { 0x19, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1A, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetCurrentPositionB +// ****************************************************************** +SOOVPA<11> IDirectSoundBuffer8_SetCurrentPositionB_1_0_3936 = +{ + 0, // Large == 0 + 11,// Count == 11 + + XREF_DSBUFFERSETCURRENTPOSITIONB,// XRef Is Saved + 0, // XRef Not Used + + { + // IDirectSoundBuffer8_SetCurrentPositionB+0x25 : mov eax, [esi+0x148] + { 0x25, 0x8B }, // (Offset,Value)-Pair #1 + { 0x26, 0x86 }, // (Offset,Value)-Pair #2 + { 0x27, 0x48 }, // (Offset,Value)-Pair #3 + { 0x28, 0x01 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_SetCurrentPositionB+0x4A : push edi; push 4 + { 0x4A, 0x57 }, // (Offset,Value)-Pair #5 + { 0x4B, 0x6A }, // (Offset,Value)-Pair #6 + { 0x4C, 0x04 }, // (Offset,Value)-Pair #7 + + // IDirectSoundBuffer8_SetCurrentPositionB+0x71 : movzx eax, word ptr [eax+2] + { 0x71, 0x0F }, // (Offset,Value)-Pair #8 + { 0x72, 0xB7 }, // (Offset,Value)-Pair #9 + { 0x73, 0x40 }, // (Offset,Value)-Pair #10 + { 0x74, 0x02 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetCurrentPositionA +// ****************************************************************** +SOOVPA<12> IDirectSoundBuffer8_SetCurrentPositionA_1_0_3936 = +{ + 0, // Large == 0 + 12,// Count == 12 + + XREF_DSBUFFERSETCURRENTPOSITIONA,// XRef Is Saved + 1,// XRef Is Used + + { + // IDirectSoundBuffer8_SetCurrentPositionA+0x15 : call [IDirectSoundBuffer8_SetCurrentPositionB] + { 0x15, XREF_DSBUFFERSETCURRENTPOSITIONB }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetCurrentPositionA+0x0D : mov eax, [esp+0x10] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #2 + { 0x0E, 0x44 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x24 }, // (Offset,Value)-Pair #4 + { 0x10, 0x10 }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer8_SetCurrentPositionA+0x11 : mov ecx, [eax+0x20] + { 0x11, 0x8B }, // (Offset,Value)-Pair #6 + { 0x12, 0x48 }, // (Offset,Value)-Pair #7 + { 0x13, 0x20 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetCurrentPositionA+0x1D : jz +0x0B + { 0x1D, 0x74 }, // (Offset,Value)-Pair #9 + { 0x1E, 0x0B }, // (Offset,Value)-Pair #10 + + // IDirectSoundBuffer8_SetCurrentPositionA+0x2E : retn 0x08 + { 0x2E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x2F, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetCurrentPosition +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_SetCurrentPosition_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetCurrentPosition+0x15 : call [IDirectSoundBuffer8_SetCurrentPositionA] + { 0x15, XREF_DSBUFFERSETCURRENTPOSITIONA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetCurrentPosition+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 + + // IDirectSoundBuffer8_SetCurrentPosition+0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetCurrentPosition+0x19 : retn 0x08 + { 0x19, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1A, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetPlayRegionA +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_SetPlayRegionA_1_0_3936 = +{ + 0, // Large == 0 + 10,// Count == 10 + + XREF_DSBUFFERSETPLAYREGIONA,// XRef Is Saved + 0, // XRef Not Used + + { + // IDirectSoundBuffer8_SetPlayRegionA+0x20 : cmp edx, [ecx+0x54] + { 0x20, 0x3B }, // (Offset,Value)-Pair #1 + { 0x21, 0x51 }, // (Offset,Value)-Pair #2 + { 0x22, 0x54 }, // (Offset,Value)-Pair #3 + + // IDirectSoundBuffer8_SetPlayRegionA+0x2C : mov ecx, [esi+0x20] + { 0x2C, 0x8B }, // (Offset,Value)-Pair #4 + { 0x2D, 0x4E }, // (Offset,Value)-Pair #5 + { 0x2E, 0x20 }, // (Offset,Value)-Pair #6 + + // IDirectSoundBuffer8_SetPlayRegionA+0x38 : jz +0x0B + { 0x38, 0x74 }, // (Offset,Value)-Pair #7 + { 0x39, 0x0B }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetPlayRegionA+0x4A : retn 0x0C + { 0x4A, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x4B, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetPlayRegion +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_SetPlayRegion_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetPlayRegion+0x19 : call [IDirectSoundBuffer8_SetPlayRegionA] + { 0x19, XREF_DSBUFFERSETPLAYREGIONA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetPlayRegion+0x04 : push [esp+0x0C] + { 0x04, 0xFF }, // (Offset,Value)-Pair #2 + { 0x05, 0x74 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer8_SetPlayRegion+0x0E : add eax, 0xFFFFFFE4 + { 0x0E, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x10, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetPlayRegion+0x1D : retn 0x0C + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1E, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_LockA +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_LockA_1_0_3936 = +{ + 0, // Large == 0 + 10,// Count == 10 + + XREF_DSBUFFERLOCKA, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirectSoundBuffer8_LockA+0x37 : mov eax, [eax+0x4C] + { 0x37, 0x8B }, // (Offset,Value)-Pair #1 + { 0x38, 0x40 }, // (Offset,Value)-Pair #2 + { 0x39, 0x4C }, // (Offset,Value)-Pair #3 + + // IDirectSoundBuffer8_LockA+0x68 : mov [edi], ebx; jz +0x1F + { 0x68, 0x89 }, // (Offset,Value)-Pair #4 + { 0x69, 0x1F }, // (Offset,Value)-Pair #5 + { 0x6A, 0x74 }, // (Offset,Value)-Pair #6 + { 0x6B, 0x1F }, // (Offset,Value)-Pair #7 + + // IDirectSoundBuffer8_LockA+0x85 : and dword ptr [edx], 0 + { 0x85, 0x83 }, // (Offset,Value)-Pair #8 + { 0x86, 0x22 }, // (Offset,Value)-Pair #9 + { 0x87, 0x00 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_Lock +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_Lock_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_Lock+0x28 : call [IDirectSoundBuffer8_LockA] + { 0x28, XREF_DSBUFFERLOCKA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_Lock+0x03 : push [esp+0x24] + { 0x03, 0xFF }, // (Offset,Value)-Pair #2 + { 0x04, 0x75 }, // (Offset,Value)-Pair #3 + { 0x05, 0x24 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_Lock+0x11 : add eax, 0xFFFFFFE4 + { 0x11, 0x83 }, // (Offset,Value)-Pair #5 + { 0x12, 0xC0 }, // (Offset,Value)-Pair #6 + { 0x13, 0xE4 }, // (Offset,Value)-Pair #7 + + // IDirectSoundBuffer8_Lock+0x2D : retn 0x20 + { 0x2D, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x2E, 0x20 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetHeadroomA +// ****************************************************************** +SOOVPA<12> IDirectSoundBuffer8_SetHeadroomA_1_0_3936 = +{ + 0, // Large == 0 + 12,// Count == 12 + + XREF_DSBUFFERSETHEADROOMA,// XRef Is Saved + 1, // XRef Is Used + + // WARNING: I am unsure if this is SetHeadroom + + { + // IDirectSoundBuffer8_SetHeadroomA+0x23 : call [IDirectSoundBuffer8_SetVolumeB] + { 0x23, XREF_DSBUFFERSETVOLUMEB }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetHeadroomA+0x07 : mov edx, [esp+0x0C] + { 0x07, 0x8B }, // (Offset,Value)-Pair #2 + { 0x08, 0x54 }, // (Offset,Value)-Pair #3 + { 0x09, 0x24 }, // (Offset,Value)-Pair #4 + { 0x0A, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer8_SetHeadroomA+0x11 : mov eax, [edx+0x18] + { 0x11, 0x8B }, // (Offset,Value)-Pair #6 + { 0x12, 0x42 }, // (Offset,Value)-Pair #7 + { 0x13, 0x18 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetHeadroomA+0x2B : jz +0x0B + { 0x2B, 0x74 }, // (Offset,Value)-Pair #9 + { 0x2C, 0x0B }, // (Offset,Value)-Pair #10 + + // IDirectSoundBuffer8_SetHeadroomA+0x3C : retn 0x08 + { 0x3C, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x3D, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetHeadroom +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_SetHeadroom_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetHeadroom+0x15 : call [IDirectSoundBuffer8_SetHeadroomA] + { 0x15, XREF_DSBUFFERSETHEADROOMA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetHeadroom+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 + + // IDirectSoundBuffer8_SetHeadroom+0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetHeadroom+0x19 : retn 0x08 + { 0x19, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1A, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetBufferDataA +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_SetBufferDataA_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSSETBUFFERDATA, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirectSoundBuffer8_SetBufferDataA+0x22 : cmp ecx, [eax+0x4C] + { 0x22, 0x3B }, // (Offset,Value)-Pair #1 + { 0x23, 0x48 }, // (Offset,Value)-Pair #2 + { 0x24, 0x4C }, // (Offset,Value)-Pair #3 + + // IDirectSoundBuffer8_SetBufferDataA+0x38 : mov ecx, [esi+0x1C] + { 0x38, 0x8B }, // (Offset,Value)-Pair #4 + { 0x39, 0x4E }, // (Offset,Value)-Pair #5 + { 0x3A, 0x1C }, // (Offset,Value)-Pair #6 + + // IDirectSoundBuffer8_SetBufferDataA+0x71 : leave; retn 0x0C + { 0x71, 0xC9 }, // (Offset,Value)-Pair #7 + { 0x72, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x73, 0x0C }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetBufferData +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_SetBufferData_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetBufferData+0x18 : call [IDirectSoundBuffer8_SetBufferDataA] + { 0x19, XREF_DSSETBUFFERDATA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetBufferData+0x04 : push [esp+0x0C] + { 0x04, 0xFF }, // (Offset,Value)-Pair #2 + { 0x05, 0x74 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer8_SetBufferData+0x0E : add eax, 0xFFFFFFE4 + { 0x0E, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x10, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetBufferData+0x1D : retn 0x0C + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1E, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CMcpxVoiceClient::SetMixBins +// ****************************************************************** +SOOVPA<15> CMcpxVoiceClient_SetMixBins_1_0_3936 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XREF_DSSETMIXBINSB, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxVoiceClient_SetMixBins+0x1C : lea eax, [esi+0x84] + { 0x1D, 0x86 }, // (Offset,Value)-Pair #1 + { 0x1E, 0x84 }, // (Offset,Value)-Pair #2 + { 0x21, 0x00 }, // (Offset,Value)-Pair #3 + + // CMcpxVoiceClient_SetMixBins+0x2E : mov eax, [esi+0xE0] + { 0x2E, 0x8B }, // (Offset,Value)-Pair #4 + { 0x30, 0xE0 }, // (Offset,Value)-Pair #5 + { 0x31, 0x00 }, // (Offset,Value)-Pair #6 + + // CMcpxVoiceClient_SetMixBins+0x41 : jz +0x7F + { 0x41, 0x74 }, // (Offset,Value)-Pair #7 + { 0x42, 0x7F }, // (Offset,Value)-Pair #8 + + // CMcpxVoiceClient_SetMixBins+0x5A : mov ds:[0xFE8202F8], eax + { 0x5A, 0xA3 }, // (Offset,Value)-Pair #9 + { 0x5B, 0xF8 }, // (Offset,Value)-Pair #10 + { 0x5C, 0x02 }, // (Offset,Value)-Pair #11 + { 0x5D, 0x82 }, // (Offset,Value)-Pair #12 + + // CMcpxVoiceClient_SetMixBins+0xBF : jb +0x8C + { 0xBF, 0x72 }, // (Offset,Value)-Pair #13 + { 0xC0, 0x8C }, // (Offset,Value)-Pair #14 + + // CMcpxVoiceClient_SetMixBins+0xD6 : retn + { 0xD6, 0xC3 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetMixBins +// ****************************************************************** +SOOVPA<9> CDirectSoundVoice_SetMixBins_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSSETMIXBINSA, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundVoice_SetMixBins+0x28 : call [CMcpxVoiceClient::SetMixBins] + { 0x29, XREF_DSSETMIXBINSB }, // (Offset,Value)-Pair #1 + + // CDirectSoundVoice_SetMixBins+0x11 : mov ecx, [esi+0x18] + { 0x11, 0x8B }, // (Offset,Value)-Pair #2 + { 0x12, 0x4E }, // (Offset,Value)-Pair #3 + { 0x13, 0x18 }, // (Offset,Value)-Pair #4 + + // CDirectSoundVoice_SetMixBins+0x25 : mov ecx, [esi+0x14] + { 0x25, 0x8B }, // (Offset,Value)-Pair #5 + { 0x26, 0x4E }, // (Offset,Value)-Pair #6 + { 0x27, 0x14 }, // (Offset,Value)-Pair #7 + + // CDirectSoundVoice_SetMixBins+0x55 : retn 0x08 + { 0x55, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x56, 0x08 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirectSoundStream_SetMixBins +// ****************************************************************** +SOOVPA<10> IDirectSoundStream_SetMixBins_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundStream_SetFrequency+0x0C : call [CDirectSoundVoice::SetMixBins] + { 0x0D, XREF_DSSETMIXBINSA }, // (Offset,Value)-Pair #1 + + // IDirectSoundStream_SetMixBins+0x04 : mov eax, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // IDirectSoundStream_SetMixBins+0x08 : add eax, 0x04 + { 0x08, 0x83 }, // (Offset,Value)-Pair #6 + { 0x09, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirectSoundStream_SetMixBins+0x11 : retn 0x08 + { 0x11, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x12, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetMixBins +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetMixBins_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetMixBins+0x14 : call [CDirectSoundVoice::SetMixBins] + { 0x15, XREF_DSSETMIXBINSA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetMixBins+0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #2 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_SetMixBins+0x0F : sbb ecx, ecx + { 0x0F, 0x1B }, // (Offset,Value)-Pair #5 + { 0x10, 0xC9 }, // (Offset,Value)-Pair #6 + + // IDirectSoundBuffer8_SetMixBins+0x11 : and ecx, eax + { 0x11, 0x23 }, // (Offset,Value)-Pair #7 + { 0x12, 0xC8 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * CMcpxBuffer_GetCurrentPosition +// ****************************************************************** +SOOVPA<11> CMcpxBuffer_GetCurrentPosition_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_GETCURRENTPOSITION, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_GetCurrentPosition+0x12 : mov eax, [esi+8] + { 0x12, 0x8B }, // (Offset,Value)-Pair #1 + { 0x13, 0x46 }, // (Offset,Value)-Pair #2 + { 0x14, 0x08 }, // (Offset,Value)-Pair #3 + + // CMcpxBuffer_GetCurrentPosition+0x1A : jnz +0x79 + { 0x1A, 0x75 }, // (Offset,Value)-Pair #4 + { 0x1B, 0x79 }, // (Offset,Value)-Pair #5 + + // CMcpxBuffer_GetCurrentPosition+0x8E : div dword ptr [ecx+0x4C] + { 0x8E, 0xF7 }, // (Offset,Value)-Pair #6 + { 0x8F, 0x71 }, // (Offset,Value)-Pair #7 + { 0x90, 0x4C }, // (Offset,Value)-Pair #8 + + // CMcpxBuffer_GetCurrentPosition+0xC8 : retn 0x08 + { 0xC8, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xC9, 0x08 }, // (Offset,Value)-Pair #10 + { 0xCA, 0x00 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CMcpxBuffer_GetCurrentPosition +// ****************************************************************** +SOOVPA<11> CMcpxBuffer_GetCurrentPosition2_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_GETCURRENTPOSITION, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_GetCurrentPosition+0x12 : mov eax, [esi+0x18] + { 0x12, 0x8B }, // (Offset,Value)-Pair #1 + { 0x13, 0x46 }, // (Offset,Value)-Pair #2 + { 0x14, 0x18 }, // (Offset,Value)-Pair #3 + + // CMcpxBuffer_GetCurrentPosition+0x1A : jnz +0x79 + { 0x1A, 0x75 }, // (Offset,Value)-Pair #4 + { 0x1B, 0x79 }, // (Offset,Value)-Pair #5 + + // CMcpxBuffer_GetCurrentPosition+0x8E : div dword ptr [ecx+0x4C] + { 0x8E, 0xF7 }, // (Offset,Value)-Pair #6 + { 0x8F, 0x71 }, // (Offset,Value)-Pair #7 + { 0x90, 0x4C }, // (Offset,Value)-Pair #8 + + // CMcpxBuffer_GetCurrentPosition+0xC8 : retn 0x08 + { 0xC8, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xC9, 0x08 }, // (Offset,Value)-Pair #10 + { 0xCA, 0x00 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer_GetCurrentPosition +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_GetCurrentPosition_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_GETCURRENTPOSITION2, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_GetCurrentPosition+0x19 : call [CMcpxBuffer::GetCurrentPosition] + { 0x19, XREF_GETCURRENTPOSITION }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_GetCurrentPosition+0x0D : mov eax, [esp+0x10] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #2 + { 0x0E, 0x44 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x24 }, // (Offset,Value)-Pair #4 + { 0x10, 0x10 }, // (Offset,Value)-Pair #5 + + // CDirectSoundBuffer_GetCurrentPosition+0x21 : jz +0x0B + { 0x21, 0x74 }, // (Offset,Value)-Pair #6 + { 0x22, 0x0B }, // (Offset,Value)-Pair #7 + + // CDirectSoundBuffer_GetCurrentPosition+0x32 : retn 0x0C + { 0x32, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x33, 0x0C }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_GetCurrentPosition +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_GetCurrentPosition_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_GetCurrentPosition+0x19 : call [CDirectSoundBuffer::GetCurrentPosition] + { 0x19, XREF_GETCURRENTPOSITION2 }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_GetCurrentPosition+0x0E : add eax, 0xFFFFFFE4 + { 0x0E, 0x83 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x10, 0xE4 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_GetCurrentPosition+0x13 : sbb ecx, ecx + { 0x13, 0x1B }, // (Offset,Value)-Pair #5 + { 0x14, 0xC9 }, // (Offset,Value)-Pair #6 + + // IDirectSoundBuffer8_GetCurrentPosition+0x15 : and ecx, eax + { 0x15, 0x23 }, // (Offset,Value)-Pair #7 + { 0x16, 0xC8 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::Play +// ****************************************************************** +SOOVPA<7> CDirectSoundBuffer_Play_1_0_3936 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSOUNDPLAY, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0xFF }, + { 0x0C, 0xF0 }, + { 0x13, 0x24 }, + { 0x1A, 0x85 }, + { 0x25, 0xFF }, + { 0x2B, 0x8B }, + { 0x2F, 0xC2 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_Play +// ****************************************************************** +SOOVPA<16> IDirectSoundBuffer8_Play_1_0_3936 = +{ + 0, // Large == 0 + 16, // Count == 15 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_Play+0x1D : call CDirectSoundBuffer::Play + { 0x1D, XREF_DSOUNDPLAY }, + + // IDirectSoundBuffer8_Play+0x00 : push [esp+0x10] + { 0x00, 0xFF }, // (Offset,Value)-Pair #1 + { 0x01, 0x74 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x10 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_Play+0x04 : mov eax, [esp+4+arg_0] + { 0x04, 0x8B }, // (Offset,Value)-Pair #5 + { 0x05, 0x44 }, // (Offset,Value)-Pair #6 + { 0x06, 0x24 }, // (Offset,Value)-Pair #7 + { 0x07, 0x08 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_Play+0x12 : and eax, [0xFFFFFFE4] + { 0x12, 0x83 }, // (Offset,Value)-Pair #9 + { 0x13, 0xC0 }, // (Offset,Value)-Pair #10 + { 0x14, 0xE4 }, // (Offset,Value)-Pair #11 + + // IDirectSoundBuffer8_Play+0x17 : sbb ecx, ecx + { 0x17, 0x1B }, // (Offset,Value)-Pair #12 + { 0x18, 0xC9 }, // (Offset,Value)-Pair #13 + + // IDirectSoundBuffer8_Play+0x21 : retn 0x10 + { 0x21, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x22, 0x10 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_Play2 +// ****************************************************************** +SOOVPA<12> IDirectSoundBuffer8_Play2_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, + + { + // IDirectSoundBuffer8_Play+0x1D : call CDirectSoundBuffer::Play + { 0x1D, XREF_DSOUNDPLAY }, + + // IDirectSoundBuffer8_Play+0x00 : push [esp+0x10] + { 0x00, 0xFF }, // (Offset,Value)-Pair #1 + { 0x01, 0x74 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x10 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_Play+0x12 : and eax, [0xFFFFFFE4] + { 0x12, 0x83 }, // (Offset,Value)-Pair #5 + { 0x13, 0xC0 }, // (Offset,Value)-Pair #6 + { 0x14, 0xE4 }, // (Offset,Value)-Pair #7 + + // IDirectSoundBuffer8_Play+0x17 : sbb ecx, ecx + { 0x17, 0x1B }, // (Offset,Value)-Pair #8 + { 0x18, 0xC9 }, // (Offset,Value)-Pair #9 + + // IDirectSoundBuffer8_Play+0x21 : retn 0x10 + { 0x21, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x22, 0x10 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer_Stop +// ****************************************************************** +SOOVPA<12> CDirectSoundBuffer_Stop_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSOUNDSTOP, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundBuffer_Stop+0x07 : mov eax, 0x80004005 + { 0x07, 0x6A }, // (Offset,Value)-Pair #1 + { 0x08, 0x00 }, // (Offset,Value)-Pair #2 + { 0x09, 0x6A }, // (Offset,Value)-Pair #3 + { 0x0A, 0x00 }, // (Offset,Value)-Pair #4 + { 0x0B, 0x6A }, // (Offset,Value)-Pair #5 + { 0x0C, 0x00 }, // (Offset,Value)-Pair #6 + + // CDirectSoundBuffer_Stop+0x1A : mov ebx, eax; jz +0x0B + { 0x1A, 0x8B }, // (Offset,Value)-Pair #7 + { 0x1B, 0xD8 }, // (Offset,Value)-Pair #8 + { 0x1C, 0x74 }, // (Offset,Value)-Pair #9 + { 0x1D, 0x0B }, // (Offset,Value)-Pair #10 + + // CDirectSoundBuffer_Stop+0x2D : retn 0x04 + { 0x2D, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x2E, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_Stop +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_Stop_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_Stop+0x11 : call [CDirectSoundBuffer::Stop] + { 0x11, XREF_DSOUNDSTOP }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_Stop+0x06 : and eax, 0xFFFFFFE4 + { 0x06, 0x83 }, // (Offset,Value)-Pair #2 + { 0x07, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x08, 0xE4 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_Stop+0x0B : sbb ecx, ecx + { 0x0B, 0x1B }, // (Offset,Value)-Pair #5 + { 0x0C, 0xC9 }, // (Offset,Value)-Pair #6 + + // IDirectSoundBuffer8_Stop+0x0D : and ecx, eax + { 0x0D, 0x23 }, // (Offset,Value)-Pair #7 + { 0x0E, 0xC8 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * CMcpxVoiceClient_SetVolume +// ****************************************************************** +SOOVPA<10> CMcpxVoiceClient_SetVolume_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSSTREAMSETVOLUME, // XRef Is Saved + 0, // XRef Not Used + + // TODO: re-use for IDirectSoundBuffer_SetVolume! + + { + // CMcpxVoiceClient_SetVolume+0x14 : sub edx, [eax+0x1C] + { 0x14, 0x2B }, // (Offset,Value)-Pair #1 + { 0x15, 0x50 }, // (Offset,Value)-Pair #2 + { 0x16, 0x1C }, // (Offset,Value)-Pair #3 + + // CMcpxVoiceClient_SetVolume+0x1A : mov ecx, [ecx+0x14] + { 0x1A, 0x8B }, // (Offset,Value)-Pair #4 + { 0x1B, 0x49 }, // (Offset,Value)-Pair #5 + { 0x1C, 0x14 }, // (Offset,Value)-Pair #6 + + // CMcpxVoiceClient_SetVolume+0x26 : jz +0x0B + { 0x26, 0x74 }, // (Offset,Value)-Pair #7 + { 0x27, 0x0B }, // (Offset,Value)-Pair #8 + + // CMcpxVoiceClient_SetVolume+0x37 : retn 0x08 + { 0x37, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x38, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetVolume +// ****************************************************************** +SOOVPA<10> CDirectSoundStream_SetVolume_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetVolume+0x0D : call [IDirectSoundStream::SetVolume] + { 0x0D, XREF_DSSTREAMSETVOLUME }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetVolume+0x04 : mov eax, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetVolume+0x08 : add eax, 0x04 + { 0x08, 0x83 }, // (Offset,Value)-Pair #6 + { 0x09, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #8 + + // CDirectSoundStream_SetVolume+0x11 : retn 0x08 + { 0x11, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x12, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetAllParametersB +// ****************************************************************** +SOOVPA<11> CDirectSoundStream_SetAllParametersB_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSTREAMSETALLPARAMETERS1B, // XRef Is Saved + 0, // XRef Not Used + + // TODO: re-use for CDirectSoundBuffer_SetAllParametersB!? + + { + // CDirectSoundStream_SetAllParametersB+0x10 : or byte ptr [eax+0x80], 0x80 + { 0x10, 0x80 }, // (Offset,Value)-Pair #1 + { 0x11, 0x88 }, // (Offset,Value)-Pair #2 + { 0x12, 0x80 }, // (Offset,Value)-Pair #3 + { 0x13, 0x00 }, // (Offset,Value)-Pair #4 + { 0x14, 0x00 }, // (Offset,Value)-Pair #5 + { 0x15, 0x00 }, // (Offset,Value)-Pair #6 + { 0x16, 0x80 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetAllParametersB+0x20 : push 0 + { 0x20, 0x6A }, // (Offset,Value)-Pair #8 + { 0x21, 0x00 }, // (Offset,Value)-Pair #9 + + // CDirectSoundStream_SetAllParametersB+0x2B : retn 0x08 + { 0x2B, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x2C, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetAllParametersA +// ****************************************************************** +SOOVPA<12> CDirectSoundStream_SetAllParametersA_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSSTREAMSETALLPARAMETERS1A, // XRef Is Saved + 1, // XRef Is Used + + // TODO: re-use for CDirectSoundBuffer_SetAllParametersA!? + + { + // CDirectSoundStream_SetAllParametersA+0x25 : call [IDirectSoundStream::SetAllParametersB] + { 0x1F, XREF_DSSTREAMSETALLPARAMETERS1B }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetAllParametersA+0x09 : mov eax, [esp+0x14] + { 0x09, 0x8B }, // (Offset,Value)-Pair #2 + { 0x0A, 0x44 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x24 }, // (Offset,Value)-Pair #4 + { 0x0C, 0x14 }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetAllParametersA+0x0D : not eax; and eax, 1 + { 0x0D, 0xF7 }, // (Offset,Value)-Pair #6 + { 0x0E, 0xD0 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x83 }, // (Offset,Value)-Pair #8 + { 0x10, 0xE0 }, // (Offset,Value)-Pair #9 + { 0x11, 0x01 }, // (Offset,Value)-Pair #10 + + // CDirectSoundStream_SetAllParametersA+0x38 : retn 0x0C + { 0x38, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x39, 0x0C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetAllParameters +// ****************************************************************** +SOOVPA<10> CDirectSoundStream_SetAllParameters_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetAllParameters+0x11 : call [IDirectSoundStream::SetAllParametersA] + { 0x11, XREF_DSSTREAMSETALLPARAMETERS1A }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetAllParameters+0x04 : push eax, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetAllParameters+0x0C : add eax, 0x04 + { 0x0C, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0D, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0E, 0x04 }, // (Offset,Value)-Pair #8 + + // CDirectSoundStream_SetAllParameters+0x15 : retn 0x0C + { 0x15, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x16, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetConeAnglesB +// ****************************************************************** +SOOVPA<12> CDirectSoundStream_SetConeAnglesB_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSSTREAMSETCONEANGLES1B, // XRef Is Saved + 0, // XRef Not Used + + // TODO: re-use for CDirectSoundBuffer_SetConeAnglesB!? + + { + // CDirectSoundStream_SetConeAnglesB+0x04 : or dword ptr [eax+0x80], 0x10 + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0x89 }, // (Offset,Value)-Pair #2 + { 0x06, 0x80 }, // (Offset,Value)-Pair #3 + { 0x07, 0x00 }, // (Offset,Value)-Pair #4 + { 0x08, 0x00 }, // (Offset,Value)-Pair #5 + { 0x09, 0x00 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x10 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetConeAnglesB+0x10 : mov [ecx+0x38], eax + { 0x10, 0x89 }, // (Offset,Value)-Pair #8 + { 0x11, 0x41 }, // (Offset,Value)-Pair #9 + { 0x12, 0x38 }, // (Offset,Value)-Pair #10 + + // CDirectSoundStream_SetConeAnglesB+0x25 : retn 0x0C + { 0x25, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x26, 0x0C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetConeAnglesA +// ****************************************************************** +SOOVPA<12> CDirectSoundStream_SetConeAnglesA_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSSTREAMSETCONEANGLES1A, // XRef Is Saved + 1, // XRef Is Used + + // TODO: re-use for CDirectSoundBuffer_SetConeAnglesA!? + + { + // CDirectSoundStream_SetConeAnglesA+0x23 : call [IDirectSoundStream::SetConeAnglesB] + { 0x23, XREF_DSSTREAMSETCONEANGLES1B }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetConeAnglesA+0x09 : mov eax, [esp+0x18] + { 0x09, 0x8B }, // (Offset,Value)-Pair #2 + { 0x0A, 0x44 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x24 }, // (Offset,Value)-Pair #4 + { 0x0C, 0x18 }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetConeAnglesA+0x0D : not eax; and eax, 1 + { 0x0D, 0xF7 }, // (Offset,Value)-Pair #6 + { 0x0E, 0xD0 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x83 }, // (Offset,Value)-Pair #8 + { 0x10, 0xE0 }, // (Offset,Value)-Pair #9 + { 0x11, 0x01 }, // (Offset,Value)-Pair #10 + + // CDirectSoundStream_SetConeAnglesA+0x3C : retn 0x10 + { 0x3C, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x3D, 0x10 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetConeAngles +// ****************************************************************** +SOOVPA<10> CDirectSoundStream_SetConeAngles_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetConeAngles+0x15 : call [IDirectSoundStream::SetConeAnglesA] + { 0x15, XREF_DSSTREAMSETCONEANGLES1A }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetConeAngles+0x04 : mov eax, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetConeAngles+0x0C : add eax, 0x04 + { 0x0C, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0D, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0E, 0x04 }, // (Offset,Value)-Pair #8 + + // CDirectSoundStream_SetConeAngles+0x19 : retn 0x10 + { 0x19, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1A, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetConeOutsideVolumeB +// ****************************************************************** +SOOVPA<12> CDirectSoundStream_SetConeOutsideVolumeB_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSSTREAMSETCONEOUTSIDEVOLUME1B, // XRef Is Saved + 0, // XRef Not Used + + // TODO: re-use for CDirectSoundBuffer_SetConeOutsideVolumeB!? + + { + // CDirectSoundStream_SetConeOutsideVolumeB+0x04 : or dword ptr [eax+0x80], 0x10 + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0x89 }, // (Offset,Value)-Pair #2 + { 0x06, 0x80 }, // (Offset,Value)-Pair #3 + { 0x07, 0x00 }, // (Offset,Value)-Pair #4 + { 0x08, 0x00 }, // (Offset,Value)-Pair #5 + { 0x09, 0x00 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x10 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetConeOutsideVolumeB+0x10 : mov [ecx+0x4C], eax + { 0x10, 0x89 }, // (Offset,Value)-Pair #8 + { 0x11, 0x41 }, // (Offset,Value)-Pair #9 + { 0x12, 0x4C }, // (Offset,Value)-Pair #10 + + // CDirectSoundStream_SetConeOutsideVolumeB+0x1E : retn 0x08 + { 0x1E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x1F, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetConeOutsideVolumeA +// ****************************************************************** +SOOVPA<12> CDirectSoundStream_SetConeOutsideVolumeA_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSSTREAMSETCONEOUTSIDEVOLUME1A, // XRef Is Saved + 1, // XRef Is Used + + // TODO: re-use for CDirectSoundBuffer_SetConeOutsideVolumeA!? + + { + // CDirectSoundStream_SetConeOutsideVolumeA+0x1F : call [IDirectSoundStream::SetConeOutsideVolumeB] + { 0x1F, XREF_DSSTREAMSETCONEOUTSIDEVOLUME1B }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetConeOutsideVolumeA+0x09 : mov eax, [esp+0x14] + { 0x09, 0x8B }, // (Offset,Value)-Pair #2 + { 0x0A, 0x44 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x24 }, // (Offset,Value)-Pair #4 + { 0x0C, 0x14 }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetConeOutsideVolumeA+0x0D : not eax; and eax, 1 + { 0x0D, 0xF7 }, // (Offset,Value)-Pair #6 + { 0x0E, 0xD0 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x83 }, // (Offset,Value)-Pair #8 + { 0x10, 0xE0 }, // (Offset,Value)-Pair #9 + { 0x11, 0x01 }, // (Offset,Value)-Pair #10 + + // CDirectSoundStream_SetConeOutsideVolumeA+0x38 : retn 0x0C + { 0x38, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x39, 0x0C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetConeOutsideVolume +// ****************************************************************** +SOOVPA<10> CDirectSoundStream_SetConeOutsideVolume_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetConeOutsideVolume+0x11 : call [IDirectSoundStream::SetConeOutsideVolumeA] + { 0x11, XREF_DSSTREAMSETCONEOUTSIDEVOLUME1A }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetConeOutsideVolume+0x04 : mov eax, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetConeOutsideVolume+0x0C : add eax, 0x04 + { 0x0C, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0D, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0E, 0x04 }, // (Offset,Value)-Pair #8 + + // CDirectSoundStream_SetConeOutsideVolume+0x15 : retn 0x0C + { 0x15, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x16, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetMaxDistanceC +// ****************************************************************** +SOOVPA<12> CDirectSoundStream_SetMaxDistanceC_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSSTREAMSETMAXDISTANCE1C, // XRef Is Saved + 0, // XRef Not Used + + // TODO: re-use for CDirectSoundBuffer_SetMaxDistanceC!? + + { + // CDirectSoundStream_SetMaxDistanceC+0x04 : or byte ptr [ecx+0x80], 0x04 + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0x89 }, // (Offset,Value)-Pair #2 + { 0x06, 0x80 }, // (Offset,Value)-Pair #3 + { 0x07, 0x00 }, // (Offset,Value)-Pair #4 + { 0x08, 0x00 }, // (Offset,Value)-Pair #5 + { 0x09, 0x00 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetMaxDistanceC+0x10 : mov [ecx+0x54], eax + { 0x10, 0x89 }, // (Offset,Value)-Pair #8 + { 0x11, 0x41 }, // (Offset,Value)-Pair #9 + { 0x12, 0x54 }, // (Offset,Value)-Pair #10 + + // CDirectSoundStream_SetMaxDistanceC+0x1E : retn 0x08 + { 0x1E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x1F, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetMaxDistanceB +// ****************************************************************** +SOOVPA<15> CDirectSoundStream_SetMaxDistanceB_1_0_3936 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XREF_DSSTREAMSETMAXDISTANCE1B, // XRef Is Saved + 1, // XRef Is Used + + // TODO: re-use for CDirectSoundBuffer_SetMaxDistanceB!? + + { + // CDirectSoundStream_SetMaxDistanceB+0x23 : call [IDirectSoundStream::SetMaxDistanceC] + { 0x23, XREF_DSSTREAMSETMAXDISTANCE1C }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetMaxDistanceB+0x0D : mov eax, [esp+0x14] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #2 + { 0x0E, 0x44 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x24 }, // (Offset,Value)-Pair #4 + { 0x10, 0x14 }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetMaxDistanceB+0x11 : not eax + { 0x11, 0xF7 }, // (Offset,Value)-Pair #6 + { 0x12, 0xD0 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetMaxDistanceB+0x13 : and eax, 1 + { 0x13, 0x83 }, // (Offset,Value)-Pair #8 + { 0x14, 0xE0 }, // (Offset,Value)-Pair #9 + { 0x15, 0x01 }, // (Offset,Value)-Pair #10 + + // CDirectSoundStream_SetMaxDistanceB+0x1C : mov ecx, [eax+0x14] + { 0x1C, 0x8B }, // (Offset,Value)-Pair #11 + { 0x1D, 0x48 }, // (Offset,Value)-Pair #12 + { 0x1E, 0x14 }, // (Offset,Value)-Pair #13 + + // CDirectSoundStream_SetMaxDistanceB+0x3C : retn 0x0C + { 0x3C, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x3D, 0x0C }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetMaxDistanceA +// ****************************************************************** +SOOVPA<10> CDirectSoundStream_SetMaxDistanceA_1_0_3936 = +{ + 0, // Large == 0 + 10,// Count == 10 + + XREF_DSSTREAMSETMAXDISTANCE1A, // XRef Is Saved + 1, // XRef Is Used + + // TODO: re-use for CDirectSoundBuffer_SetMaxDistanceA!? + + { + // CDirectSoundStream_SetMaxDistanceA+0x15 : call [IDirectSoundStream::SetMaxDistanceB] + { 0x15, XREF_DSSTREAMSETMAXDISTANCE1B }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetMaxDistanceA+0x04 : fld [esp+0x0C] + { 0x04, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetMaxDistanceA+0x0D : add eax, 0x04 + { 0x0D, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0E, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #8 + + // CDirectSoundStream_SetMaxDistanceA+0x19 : retn 0x0C + { 0x19, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1A, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetMaxDistance +// ****************************************************************** +SOOVPA<11> CDirectSoundStream_SetMaxDistance_1_0_3936 = +{ + 0, // Large == 0 + 11,// Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetMaxDistance+0x11 : call [IDirectSoundStream::SetMaxDistanceA] + { 0x11, XREF_DSSTREAMSETMAXDISTANCE1A }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetMaxDistance+0x04 : fld [esp+0x0C] + { 0x04, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetMaxDistance+0x0C : push [esp+0x0C] + { 0x0C, 0xFF }, // (Offset,Value)-Pair #6 + { 0x0D, 0x74 }, // (Offset,Value)-Pair #7 + { 0x0E, 0x24 }, // (Offset,Value)-Pair #8 + { 0x0F, 0x0C }, // (Offset,Value)-Pair #9 + + // CDirectSoundStream_SetMaxDistance+0x15 : retn 0x0C + { 0x15, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x16, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetMinDistanceC +// ****************************************************************** +SOOVPA<12> CDirectSoundStream_SetMinDistanceC_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSSTREAMSETMINDISTANCE1C, // XRef Is Saved + 0, // XRef Not Used + + // TODO: re-use for CDirectSoundBuffer_SetMinDistanceC!? + + { + // CDirectSoundStream_SetMinDistanceC+0x04 : or byte ptr [ecx+0x80], 0x04 + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0x89 }, // (Offset,Value)-Pair #2 + { 0x06, 0x80 }, // (Offset,Value)-Pair #3 + { 0x07, 0x00 }, // (Offset,Value)-Pair #4 + { 0x08, 0x00 }, // (Offset,Value)-Pair #5 + { 0x09, 0x00 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetMinDistanceC+0x10 : mov [ecx+0x50], eax + { 0x10, 0x89 }, // (Offset,Value)-Pair #8 + { 0x11, 0x41 }, // (Offset,Value)-Pair #9 + { 0x12, 0x50 }, // (Offset,Value)-Pair #10 + + // CDirectSoundStream_SetMinDistanceC+0x1E : retn 0x08 + { 0x1E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x1F, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetMinDistanceB +// ****************************************************************** +SOOVPA<15> CDirectSoundStream_SetMinDistanceB_1_0_3936 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XREF_DSSTREAMSETMINDISTANCE1B, // XRef Is Saved + 1, // XRef Is Used + + // TODO: re-use for CDirectSoundBuffer_SetMinDistanceB!? + + { + // CDirectSoundStream_SetMinDistanceB+0x23 : call [IDirectSoundStream::SetMinDistanceC] + { 0x23, XREF_DSSTREAMSETMINDISTANCE1C }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetMinDistanceB+0x0D : mov eax, [esp+0x14] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #2 + { 0x0E, 0x44 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x24 }, // (Offset,Value)-Pair #4 + { 0x10, 0x14 }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetMinDistanceB+0x11 : not eax + { 0x11, 0xF7 }, // (Offset,Value)-Pair #6 + { 0x12, 0xD0 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetMinDistanceB+0x13 : and eax, 1 + { 0x13, 0x83 }, // (Offset,Value)-Pair #8 + { 0x14, 0xE0 }, // (Offset,Value)-Pair #9 + { 0x15, 0x01 }, // (Offset,Value)-Pair #10 + + // CDirectSoundStream_SetMinDistanceB+0x1C : mov ecx, [eax+0x14] + { 0x1C, 0x8B }, // (Offset,Value)-Pair #11 + { 0x1D, 0x48 }, // (Offset,Value)-Pair #12 + { 0x1E, 0x14 }, // (Offset,Value)-Pair #13 + + // CDirectSoundStream_SetMinDistanceB+0x3C : retn 0x0C + { 0x3C, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x3D, 0x0C }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetMinDistanceA +// ****************************************************************** +SOOVPA<10> CDirectSoundStream_SetMinDistanceA_1_0_3936 = +{ + 0, // Large == 0 + 10,// Count == 10 + + XREF_DSSTREAMSETMINDISTANCE1A, // XRef Is Saved + 1, // XRef Is Used + + // TODO: re-use for CDirectSoundBuffer_SetMinDistanceA!? + + { + // CDirectSoundStream_SetMinDistanceA+0x15 : call [IDirectSoundStream::SetMinDistanceB] + { 0x15, XREF_DSSTREAMSETMINDISTANCE1B }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetMinDistanceA+0x04 : fld [esp+0x0C] + { 0x04, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetMinDistanceA+0x0D : add eax, 0x04 + { 0x0D, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0E, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #8 + + // CDirectSoundStream_SetMinDistanceA+0x19 : retn 0x0C + { 0x19, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1A, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetMinDistance +// ****************************************************************** +SOOVPA<11> CDirectSoundStream_SetMinDistance_1_0_3936 = +{ + 0, // Large == 0 + 11,// Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetMinDistance+0x11 : call [IDirectSoundStream::SetMinDistanceA] + { 0x11, XREF_DSSTREAMSETMINDISTANCE1A }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetMinDistance+0x04 : fld [esp+0x0C] + { 0x04, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetMinDistance+0x0C : push [esp+0x0C] + { 0x0C, 0xFF }, // (Offset,Value)-Pair #6 + { 0x0D, 0x74 }, // (Offset,Value)-Pair #7 + { 0x0E, 0x24 }, // (Offset,Value)-Pair #8 + { 0x0F, 0x0C }, // (Offset,Value)-Pair #9 + + // CDirectSoundStream_SetMinDistance+0x15 : retn 0x0C + { 0x15, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x16, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetVelocityC +// ****************************************************************** +SOOVPA<12> CDirectSoundStream_SetVelocityC_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSSTREAMSETVELOCITY1C, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundStream_SetVelocityC+0x0C : or byte ptr [ecx+0x80], 0x40 + { 0x0C, 0x83 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x89 }, // (Offset,Value)-Pair #2 + { 0x0E, 0x80 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x00 }, // (Offset,Value)-Pair #4 + { 0x10, 0x00 }, // (Offset,Value)-Pair #5 + { 0x11, 0x00 }, // (Offset,Value)-Pair #6 + { 0x12, 0x40 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetVelocityC+0x09 : movsd; movsd; movsd + { 0x09, 0xA5 }, // (Offset,Value)-Pair #8 + { 0x0A, 0xA5 }, // (Offset,Value)-Pair #9 + { 0x0B, 0xA5 }, // (Offset,Value)-Pair #10 + + // CDirectSoundStream_SetVelocityC+0x25 : retn 0x08 + { 0x25, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x26, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetVelocityB +// ****************************************************************** +SOOVPA<14> CDirectSoundStream_SetVelocityB_1_0_3936 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XREF_DSSTREAMSETVELOCITY1B, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundStream_SetVelocityB+0x35 : call [IDirectSoundStream::SetVelocityC] + { 0x35, XREF_DSSTREAMSETVELOCITY1C }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetVelocityB+0x21 : mov eax, [ebp+0x18] + { 0x21, 0x8B }, // (Offset,Value)-Pair #2 + { 0x22, 0x45 }, // (Offset,Value)-Pair #3 + { 0x23, 0x18 }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetVelocityB+0x24 : not eax + { 0x24, 0xF7 }, // (Offset,Value)-Pair #5 + { 0x25, 0xD0 }, // (Offset,Value)-Pair #6 + + // CDirectSoundStream_SetVelocityB+0x26 : and eax, 1 + { 0x26, 0x83 }, // (Offset,Value)-Pair #7 + { 0x27, 0xE0 }, // (Offset,Value)-Pair #8 + { 0x28, 0x01 }, // (Offset,Value)-Pair #9 + + // CDirectSoundStream_SetVelocityB+0x31 : mov ecx, [eax+0x14] + { 0x31, 0x8B }, // (Offset,Value)-Pair #10 + { 0x32, 0x48 }, // (Offset,Value)-Pair #11 + { 0x33, 0x14 }, // (Offset,Value)-Pair #12 + + // CDirectSoundStream_SetVelocityB+0x4F : retn 0x14 + { 0x4F, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x50, 0x14 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetVelocityA +// ****************************************************************** +SOOVPA<9> CDirectSoundStream_SetVelocityA_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSSTREAMSETVELOCITY1A, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundStream_SetVelocityA+0x25 : call [IDirectSoundStream::SetVelocityB] + { 0x25, XREF_DSSTREAMSETVELOCITY1B }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetVelocityA+0x06 : fld [ebp+0x14] + { 0x06, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x07, 0x45 }, // (Offset,Value)-Pair #3 + { 0x08, 0x14 }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetVelocityA+0x0C : sub esp, 0x0C + { 0x0C, 0x83 }, // (Offset,Value)-Pair #5 + { 0x0D, 0xEC }, // (Offset,Value)-Pair #6 + { 0x0E, 0x0C }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetVelocityA+0x2A : retn 0x14 + { 0x2A, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x2B, 0x14 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetVelocity +// ****************************************************************** +SOOVPA<9> CDirectSoundStream_SetVelocity_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetVelocity+0x21 : call [IDirectSoundStream::SetVelocityA] + { 0x21, XREF_DSSTREAMSETVELOCITY1A }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetVelocity+0x06 : fld [ebp+0x14] + { 0x06, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x07, 0x45 }, // (Offset,Value)-Pair #3 + { 0x08, 0x14 }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetVelocity+0x1A : fstp [esp] + { 0x1A, 0xD9 }, // (Offset,Value)-Pair #5 + { 0x1B, 0x1C }, // (Offset,Value)-Pair #6 + { 0x1C, 0x24 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetVelocity+0x26 : retn 0x14 + { 0x26, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x27, 0x14 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetVelocity +// ****************************************************************** +SOOVPA<9> CDirectSoundBuffer_SetVelocity_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSBUFFERSETVELOCITY, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetVelocity+0x20 : call [CDirectSoundStream::SetVelocityB] + { 0x21, XREF_DSSTREAMSETVELOCITY1B }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_SetVelocity+0x06 : fld [ebp+arg_C] + { 0x06, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x07, 0x45 }, // (Offset,Value)-Pair #3 + { 0x08, 0x14 }, // (Offset,Value)-Pair #4 + + // CDirectSoundBuffer_SetVelocity+0x1A : fstp [esp+0x10+var_10] + { 0x1A, 0xD9 }, // (Offset,Value)-Pair #5 + { 0x1B, 0x1C }, // (Offset,Value)-Pair #6 + { 0x1C, 0x24 }, // (Offset,Value)-Pair #7 + + // CDirectSoundBuffer_SetVelocity+0x26 : retn 0x14 + { 0x27, 0x14 }, // (Offset,Value)-Pair #8 + { 0x28, 0x00 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetVelocity +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_SetVelocity_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetVelocity+0x2C : call [CDirectSoundBuffer::SetVelocity] + { 0x2D, XREF_DSBUFFERSETVELOCITY }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetVelocity+0x09 : mov eax, [ebp+arg_0] + { 0x09, 0x8B }, // (Offset,Value)-Pair #2 + { 0x0A, 0x45 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x08 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_SetVelocity+0x28 : fstp [esp+0x10+var_10] + { 0x28, 0xD9 }, // (Offset,Value)-Pair #5 + { 0x29, 0x1C }, // (Offset,Value)-Pair #6 + { 0x2A, 0x24 }, // (Offset,Value)-Pair #7 + + // IDirectSoundBuffer8_SetVelocity+0x32 : retn 0x14 + { 0x33, 0x14 }, // (Offset,Value)-Pair #8 + { 0x34, 0x00 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetConeOrientationC +// ****************************************************************** +SOOVPA<11> CDirectSoundStream_SetConeOrientationC_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSTREAMSETCONEORIENTATION1C, // XRef Is Saved + 0, // XRef Not Used + + // TODO: re-use for CDirectSoundBuffer_SetConeOrientationC!? + + { + // CDirectSoundStream_SetConeOrientationC+0x0C : or byte ptr [ecx+0x80], 0x18 + { 0x0C, 0x83 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x89 }, // (Offset,Value)-Pair #2 + { 0x0E, 0x80 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x00 }, // (Offset,Value)-Pair #4 + { 0x10, 0x00 }, // (Offset,Value)-Pair #5 + { 0x11, 0x00 }, // (Offset,Value)-Pair #6 + { 0x12, 0x18 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetConeOrientationC+0x1A : jz +0x07 + { 0x1A, 0x74 }, // (Offset,Value)-Pair #8 + { 0x1B, 0x07 }, // (Offset,Value)-Pair #9 + + // CDirectSoundStream_SetConeOrientationC+0x25 : retn 0x08 + { 0x25, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x26, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetConeOrientationB +// ****************************************************************** +SOOVPA<14> CDirectSoundStream_SetConeOrientationB_1_0_3936 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XREF_DSSTREAMSETCONEORIENTATION1B, // XRef Is Saved + 1, // XRef Is Used + + // TODO: re-use for CDirectSoundBuffer_SetConeOrientationB!? + + { + // CDirectSoundStream_SetConeOrientationB+0x35 : call [IDirectSoundStream::SetConeOrientationC] + { 0x35, XREF_DSSTREAMSETCONEORIENTATION1C }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetConeOrientationB+0x21 : mov eax, [ebp+0x18] + { 0x21, 0x8B }, // (Offset,Value)-Pair #2 + { 0x22, 0x45 }, // (Offset,Value)-Pair #3 + { 0x23, 0x18 }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetConeOrientationB+0x24 : not eax + { 0x24, 0xF7 }, // (Offset,Value)-Pair #5 + { 0x25, 0xD0 }, // (Offset,Value)-Pair #6 + + // CDirectSoundStream_SetConeOrientationB+0x26 : and eax, 1 + { 0x26, 0x83 }, // (Offset,Value)-Pair #7 + { 0x27, 0xE0 }, // (Offset,Value)-Pair #8 + { 0x28, 0x01 }, // (Offset,Value)-Pair #9 + + // CDirectSoundStream_SetConeOrientationB+0x31 : mov ecx, [eax+0x14] + { 0x31, 0x8B }, // (Offset,Value)-Pair #10 + { 0x32, 0x48 }, // (Offset,Value)-Pair #11 + { 0x33, 0x14 }, // (Offset,Value)-Pair #12 + + // CDirectSoundStream_SetConeOrientationB+0x4F : retn 0x14 + { 0x4F, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x50, 0x14 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetConeOrientationA +// ****************************************************************** +SOOVPA<9> CDirectSoundStream_SetConeOrientationA_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSSTREAMSETCONEORIENTATION1A, // XRef Is Saved + 1, // XRef Is Used + + // TODO: re-use for CDirectSoundBuffer_SetConeOrientationA!? + + { + // CDirectSoundStream_SetConeOrientationA+0x25 : call [IDirectSoundStream::SetConeOrientationB] + { 0x25, XREF_DSSTREAMSETCONEORIENTATION1B }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetConeOrientationA+0x06 : fld [ebp+0x14] + { 0x06, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x07, 0x45 }, // (Offset,Value)-Pair #3 + { 0x08, 0x14 }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetConeOrientationA+0x0C : sub esp, 0x0C + { 0x0C, 0x83 }, // (Offset,Value)-Pair #5 + { 0x0D, 0xEC }, // (Offset,Value)-Pair #6 + { 0x0E, 0x0C }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetConeOrientationA+0x2A : retn 0x14 + { 0x2A, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x2B, 0x14 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetConeOrientation +// ****************************************************************** +SOOVPA<9> CDirectSoundStream_SetConeOrientation_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetConeOrientation+0x21 : call [IDirectSoundStream::SetConeOrientationA] + { 0x21, XREF_DSSTREAMSETCONEORIENTATION1A }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetConeOrientation+0x06 : fld [ebp+0x14] + { 0x06, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x07, 0x45 }, // (Offset,Value)-Pair #3 + { 0x08, 0x14 }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetConeOrientation+0x1A : fstp [esp] + { 0x1A, 0xD9 }, // (Offset,Value)-Pair #5 + { 0x1B, 0x1C }, // (Offset,Value)-Pair #6 + { 0x1C, 0x24 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetConeOrientation+0x26 : retn 0x14 + { 0x26, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x27, 0x14 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetPositionC +// ****************************************************************** +SOOVPA<11> CDirectSoundStream_SetPositionC_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSTREAMSETPOSITION1C, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundStream_SetPositionC+0x0C : or byte ptr [ecx+0x80], 0xFF + { 0x0C, 0x80 }, // (Offset,Value)-Pair #1 + { 0x0D, 0x89 }, // (Offset,Value)-Pair #2 + { 0x0E, 0x80 }, // (Offset,Value)-Pair #3 + { 0x0F, 0x00 }, // (Offset,Value)-Pair #4 + { 0x10, 0x00 }, // (Offset,Value)-Pair #5 + { 0x11, 0x00 }, // (Offset,Value)-Pair #6 + { 0x12, 0xFF }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetPositionC+0x1A : jz +0x07 + { 0x1A, 0x74 }, // (Offset,Value)-Pair #8 + { 0x1B, 0x07 }, // (Offset,Value)-Pair #9 + + // CDirectSoundStream_SetPositionC+0x25 : retn 0x08 + { 0x25, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x26, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetPositionB +// ****************************************************************** +SOOVPA<14> CDirectSoundStream_SetPositionB_1_0_3936 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XREF_DSSTREAMSETPOSITION1B, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundStream_SetPositionB+0x35 : call [IDirectSoundStream::SetPositionC] + { 0x35, XREF_DSSTREAMSETPOSITION1C }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetPositionB+0x21 : mov eax, [ebp+0x18] + { 0x21, 0x8B }, // (Offset,Value)-Pair #2 + { 0x22, 0x45 }, // (Offset,Value)-Pair #3 + { 0x23, 0x18 }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetPositionB+0x24 : not eax + { 0x24, 0xF7 }, // (Offset,Value)-Pair #5 + { 0x25, 0xD0 }, // (Offset,Value)-Pair #6 + + // CDirectSoundStream_SetPositionB+0x26 : and eax, 1 + { 0x26, 0x83 }, // (Offset,Value)-Pair #7 + { 0x27, 0xE0 }, // (Offset,Value)-Pair #8 + { 0x28, 0x01 }, // (Offset,Value)-Pair #9 + + // CDirectSoundStream_SetPositionB+0x31 : mov ecx, [eax+0x14] + { 0x31, 0x8B }, // (Offset,Value)-Pair #10 + { 0x32, 0x48 }, // (Offset,Value)-Pair #11 + { 0x33, 0x14 }, // (Offset,Value)-Pair #12 + + // CDirectSoundStream_SetPositionB+0x4F : retn 0x14 + { 0x4F, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x50, 0x14 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetPositionA +// ****************************************************************** +SOOVPA<9> CDirectSoundStream_SetPositionA_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSSTREAMSETPOSITION1A, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundStream_SetPositionA+0x25 : call [IDirectSoundStream::SetPositionB] + { 0x25, XREF_DSSTREAMSETPOSITION1B }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetPositionA+0x06 : fld [ebp+0x14] + { 0x06, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x07, 0x45 }, // (Offset,Value)-Pair #3 + { 0x08, 0x14 }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetPositionA+0x0C : sub esp, 0x0C + { 0x0C, 0x83 }, // (Offset,Value)-Pair #5 + { 0x0D, 0xEC }, // (Offset,Value)-Pair #6 + { 0x0E, 0x0C }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetPositionA+0x2A : retn 0x14 + { 0x2A, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x2B, 0x14 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetPosition +// ****************************************************************** +SOOVPA<9> CDirectSoundStream_SetPosition_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetPosition+0x21 : call [IDirectSoundStream::SetPositionA] + { 0x21, XREF_DSSTREAMSETPOSITION1A }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetPosition+0x06 : fld [ebp+0x14] + { 0x06, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x07, 0x45 }, // (Offset,Value)-Pair #3 + { 0x08, 0x14 }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetPosition+0x1A : fstp [esp] + { 0x1A, 0xD9 }, // (Offset,Value)-Pair #5 + { 0x1B, 0x1C }, // (Offset,Value)-Pair #6 + { 0x1C, 0x24 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetPosition+0x26 : retn 0x14 + { 0x26, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x27, 0x14 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetPosition +// ****************************************************************** +SOOVPA<9> CDirectSoundBuffer_SetPosition_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSBUFFERSETPOSITION, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetPosition+0x20 : call [CDirectSoundStream::PositionB] + { 0x21, XREF_DSSTREAMSETPOSITION1B }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_SetPosition+0x06 : fld [ebp+arg_C] + { 0x06, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x07, 0x45 }, // (Offset,Value)-Pair #3 + { 0x08, 0x14 }, // (Offset,Value)-Pair #4 + + // CDirectSoundBuffer_SetPosition+0x1A : fstp [esp+0x10+var_10] + { 0x1A, 0xD9 }, // (Offset,Value)-Pair #5 + { 0x1B, 0x1C }, // (Offset,Value)-Pair #6 + { 0x1C, 0x24 }, // (Offset,Value)-Pair #7 + + // CDirectSoundBuffer_SetPosition+0x26 : retn 0x14 + { 0x27, 0x14 }, // (Offset,Value)-Pair #8 + { 0x28, 0x00 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetPosition +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_SetPosition_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetPosition+0x2C : call [CDirectSoundBuffer::SetPosition] + { 0x2D, XREF_DSBUFFERSETPOSITION }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetPosition+0x09 : mov eax, [ebp+arg_0] + { 0x09, 0x8B }, // (Offset,Value)-Pair #2 + { 0x0A, 0x45 }, // (Offset,Value)-Pair #3 + { 0x0B, 0x08 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_SetPosition+0x28 : fstp [esp+0x10+var_10] + { 0x28, 0xD9 }, // (Offset,Value)-Pair #5 + { 0x29, 0x1C }, // (Offset,Value)-Pair #6 + { 0x2A, 0x24 }, // (Offset,Value)-Pair #7 + + // IDirectSoundBuffer8_SetPosition+0x32 : retn 0x14 + { 0x33, 0x14 }, // (Offset,Value)-Pair #8 + { 0x34, 0x00 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetFrequencyB +// ****************************************************************** +SOOVPA<11> CDirectSoundStream_SetFrequencyB_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSTREAMSETFREQUENCY1B,// XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundStream_SetFrequencyB+0x08 : cmp esi, 0xBB80 + { 0x08, 0x81 }, // (Offset,Value)-Pair #1 + { 0x09, 0xFE }, // (Offset,Value)-Pair #2 + { 0x0A, 0x80 }, // (Offset,Value)-Pair #3 + { 0x0B, 0xBB }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetFrequencyB+0x1D : jmp +0x2B + { 0x1D, 0xEB }, // (Offset,Value)-Pair #5 + { 0x1E, 0x2B }, // (Offset,Value)-Pair #6 + + // CDirectSoundStream_SetFrequencyB+0x1F : lea ecx, [ebp+0x08] + { 0x1F, 0x8D }, // (Offset,Value)-Pair #7 + { 0x20, 0x4D }, // (Offset,Value)-Pair #8 + { 0x21, 0x08 }, // (Offset,Value)-Pair #9 + + // CDirectSoundStream_SetFrequencyB+0x4E : retn 0x08 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x4F, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetFrequencyA +// ****************************************************************** +SOOVPA<9> CDirectSoundStream_SetFrequencyA_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSSTREAMSETFREQUENCY1A,// XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundStream_SetFrequencyA+0x1F : call [CDirectSoundStream::SetFrequencyB] + { 0x20, XREF_DSSTREAMSETFREQUENCY1B }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetFrequencyA+0x15 : mov eax, [esi+0x18] + { 0x15, 0x8B }, // (Offset,Value)-Pair #2 + { 0x16, 0x46 }, // (Offset,Value)-Pair #3 + { 0x17, 0x18 }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetFrequencyA+0x18 : mov eax, [eax+0x10] + { 0x18, 0x8B }, // (Offset,Value)-Pair #5 + { 0x19, 0x40 }, // (Offset,Value)-Pair #6 + { 0x1A, 0x10 }, // (Offset,Value)-Pair #7 + + // CDirectSoundStream_SetFrequencyA+0x40 : retn 0x08 + { 0x40, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x41, 0x08 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetFrequency +// ****************************************************************** +SOOVPA<10> CDirectSoundStream_SetFrequency_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetFrequency+0x0D : call [IDirectSoundStream::SetFrequency] + { 0x0D, XREF_DSSTREAMSETFREQUENCY1A }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetFrequency+0x04 : mov eax, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetFrequency+0x08 : add eax, 0x04 + { 0x08, 0x83 }, // (Offset,Value)-Pair #6 + { 0x09, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #8 + + // CDirectSoundStream_SetFrequency+0x11 : retn 0x08 + { 0x11, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x12, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetFrequency +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetFrequency_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetFrequency+0x15 : call [IDirectSoundStream::SetFrequency] + { 0x15, XREF_DSSTREAMSETFREQUENCY1A }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetFrequency+0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #2 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_SetFrequency+0x0F : sbb ecx, ecx + { 0x0F, 0x1B }, // (Offset,Value)-Pair #5 + { 0x10, 0xC9 }, // (Offset,Value)-Pair #6 + + // IDirectSoundBuffer8_SetFrequency+0x11 : and ecx, eax + { 0x11, 0x23 }, // (Offset,Value)-Pair #7 + { 0x12, 0xC8 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * CMcpxVoiceClient::Set3dMode +// ****************************************************************** +SOOVPA<12> CMcpxVoiceClient_Set3dMode_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSBUFFERSETMODEB, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxVoiceClient_Set3dMode+0x04 : or byte ptr [ecx+0x80], 0xFF + { 0x04, 0x80 }, // (Offset,Value)-Pair #1 + { 0x05, 0x89 }, // (Offset,Value)-Pair #2 + { 0x06, 0x80 }, // (Offset,Value)-Pair #3 + { 0x07, 0x00 }, // (Offset,Value)-Pair #4 + { 0x08, 0x00 }, // (Offset,Value)-Pair #5 + { 0x09, 0x00 }, // (Offset,Value)-Pair #6 + { 0x0A, 0xFF }, // (Offset,Value)-Pair #7 + + // CMcpxVoiceClient_Set3dMode+0x10 : cmp [ecx+0x58], eax + { 0x10, 0x89 }, // (Offset,Value)-Pair #8 + { 0x11, 0x41 }, // (Offset,Value)-Pair #9 + { 0x12, 0x58 }, // (Offset,Value)-Pair #10 + + // CMcpxVoiceClient_Set3dMode+0x1E : retn 0x08 + { 0x1E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x1F, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetMode +// ****************************************************************** +SOOVPA<10> CDirectSoundVoice_SetMode_1_0_3936 = +{ + 0, // Large == 0 + 10,// Count == 10 + + XREF_DSBUFFERSETMODEA, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundVoice_SetMode+0x1E : call [CMcpxVoiceClient::Set3dMode] + { 0x1F, XREF_DSBUFFERSETMODEB }, // (Offset,Value)-Pair #1 + + // CDirectSoundVoice_SetMode+0x17 : push [esp+0x14] + { 0x17, 0xFF }, // (Offset,Value)-Pair #2 + { 0x18, 0x74 }, // (Offset,Value)-Pair #3 + { 0x19, 0x24 }, // (Offset,Value)-Pair #4 + { 0x1A, 0x14 }, // (Offset,Value)-Pair #5 + + // CDirectSoundVoice_SetMode+0x1B : mov ecx, [eax+0x14] + { 0x1B, 0x8B }, // (Offset,Value)-Pair #6 + { 0x1C, 0x48 }, // (Offset,Value)-Pair #7 + { 0x1D, 0x14 }, // (Offset,Value)-Pair #8 + + // CDirectSoundVoice_SetMode+0x38 : retn 0x0C + { 0x38, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x39, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetMode +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_SetMode_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetMode+0x18 : call [CDirectSoundVoice::SetMode] + { 0x19, XREF_DSBUFFERSETMODEA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetMode+0x04 : push [esp+0x0C] + { 0x04, 0xFF }, // (Offset,Value)-Pair #2 + { 0x05, 0x74 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer8_SetMode+0x0E : add eax, 0xFFFFFFE4 + { 0x0E, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x10, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetMode+0x1D : retn 0x0C + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1E, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +/* +// ****************************************************************** +// * CDirectSoundStream_SetRolloffFactor +// ****************************************************************** +SOOVPA<10> CDirectSoundStream_SetRolloffFactor_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetRolloffFactor+0x11 : call [IDirectSoundStream::SetRolloffFactor] + { 0x11, XREF_DSSTREAMSETROLLOFFFACTOR1A }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetRolloffFactor+0x04 : mov eax, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // CDirectSoundStream_SetRolloffFactor+0x0C : add eax, 0x04 + { 0x0C, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0D, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0E, 0x04 }, // (Offset,Value)-Pair #8 + + // CDirectSoundStream_SetRolloffFactor+0x15 : retn 0x0C + { 0x15, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x16, 0x0C }, // (Offset,Value)-Pair #10 + } +}; +*/ +// ****************************************************************** +// * IDirectSoundStream_SetI3DL2SourceA +// ****************************************************************** +/*SOOVPA<11> IDirectSoundStream_SetI3DL2SourceA_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSETI3DL2SOURCE1A, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirectSoundStream_SetI3DL2SourceA+0x07 : call [addr] + { 0x07, 0xE8 }, // (Offset,Value)-Pair #1 + + // IDirectSoundStream_SetI3DL2SourceA+0x16 : push 0x24 + { 0x16, 0x6A }, // (Offset,Value)-Pair #2 + { 0x17, 0x24 }, // (Offset,Value)-Pair #3 + + // IDirectSoundStream_SetI3DL2SourceA+0x23 : shl ebx, cl + { 0x23, 0xD3 }, // (Offset,Value)-Pair #4 + { 0x24, 0xE3 }, // (Offset,Value)-Pair #5 + + // IDirectSoundStream_SetI3DL2SourceA+0x4A : cmp [ebp-0x04], 0x20 + { 0x4A, 0x83 }, // (Offset,Value)-Pair #6 + { 0x4B, 0x7D }, // (Offset,Value)-Pair #7 + { 0x4C, 0xFC }, // (Offset,Value)-Pair #8 + { 0x4D, 0x20 }, // (Offset,Value)-Pair #9 + + // IDirectSoundStream_SetI3DL2SourceA+0x71 : retn 0x0C + { 0x71, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x72, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSoundStream_SetI3DL2Source +// ****************************************************************** +SOOVPA<10> IDirectSoundStream_SetI3DL2Source_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + // TODO: Tentative! (most likely incorrect, actually!) + + { + // IDirectSoundStream_SetI3DL2SourceB+0x11 : call [IDirectSoundStream_SetI3DL2SourceA] + { 0x11, XREF_DSSETI3DL2SOURCE1A }, // (Offset,Value)-Pair #1 + + // IDirectSoundStream_SetI3DL2SourceB+0x04 : mov eax, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // IDirectSoundStream_SetI3DL2SourceB+0x0C : add eax, 0x04 + { 0x0C, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0D, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0E, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirectSoundStream_SetI3DL2SourceB+0x15 : retn 0x0C + { 0x15, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x16, 0x0C }, // (Offset,Value)-Pair #10 + } +};*/ +/* +// ****************************************************************** +// * IDirectSoundStream_Unknown1 +// ****************************************************************** +SOOVPA<9> IDirectSoundStream_Unknown1_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + // TODO: Tentative! (most likely incorrect, actually!) + + { + // IDirectSoundStream_Unknown1A+0x38 : call [IDirectSoundStream_SetI3DL2SourceA] + { 0x38, XREF_DSSETI3DL2SOURCE1A }, // (Offset,Value)-Pair #1 + + // IDirectSoundStream_Unknown1A+0x17 : cmp edi, [ecx+0x20] + { 0x17, 0x3B }, // (Offset,Value)-Pair #2 + { 0x18, 0x79 }, // (Offset,Value)-Pair #3 + { 0x19, 0x20 }, // (Offset,Value)-Pair #4 + + // IDirectSoundStream_Unknown1A+0x25 : mov ecx, [esi+0x14] + { 0x25, 0x8B }, // (Offset,Value)-Pair #5 + { 0x26, 0x4E }, // (Offset,Value)-Pair #6 + { 0x27, 0x14 }, // (Offset,Value)-Pair #7 + + // IDirectSoundStream_Unknown1A+0x55 : retn 0x08 + { 0x55, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x56, 0x08 }, // (Offset,Value)-Pair #9 + } +}; +//*/ +// ****************************************************************** +// * IDirectSoundStream_SetHeadroomA +// ****************************************************************** +SOOVPA<11> IDirectSoundStream_SetHeadroomA_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSETHEADROOMA, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirectSoundStream_SetHeadroomA+0x09 : call [addr] + { 0x09, 0xE8 }, // (Offset,Value)-Pair #1 + + // IDirectSoundStream_SetHeadroomA+0x17 : cmp edi, [ecx+0x20] + { 0x17, 0x3B }, // (Offset,Value)-Pair #2 + { 0x18, 0x79 }, // (Offset,Value)-Pair #3 + { 0x19, 0x20 }, // (Offset,Value)-Pair #4 + + // IDirectSoundStream_SetHeadroomA+0x1D : jz +0x1F + { 0x1D, 0x74 }, // (Offset,Value)-Pair #5 + { 0x1E, 0x1F }, // (Offset,Value)-Pair #6 + + // IDirectSoundStream_SetHeadroomA+0x3E : cmp [ebp-0x04], 0 + { 0x3E, 0x83 }, // (Offset,Value)-Pair #7 + { 0x3F, 0x7D }, // (Offset,Value)-Pair #8 + { 0x40, 0xFC }, // (Offset,Value)-Pair #9 + + // IDirectSoundStream_SetHeadroomA+0x55 : retn 0x08 + { 0x55, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x56, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSoundStream_SetHeadroom +// ****************************************************************** +SOOVPA<10> IDirectSoundStream_SetHeadroom_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + // TODO: Tentative! (most likely incorrect, actually!) + { + // IDirectSoundStream_SetHeadroomB+0x0D : call [IDirectSoundStream_SetHeadroomA] + { 0x0D, XREF_DSSETHEADROOMA }, // (Offset,Value)-Pair #1 + + // IDirectSoundStream_SetHeadroomB+0x04 : mov eax, [esp+0x08] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // IDirectSoundStream_SetHeadroomB+0x08 : add eax, 0x04 + { 0x08, 0x83 }, // (Offset,Value)-Pair #6 + { 0x09, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #8 + + // IDirectSoundStream_SetHeadroomB+0x11 : retn 0x08 + { 0x11, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x12, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetOrientation +// ****************************************************************** +SOOVPA<13> IDirectSound8_SetOrientation_1_0_3936 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSound8_SetOrientation+0x06 : fld [ebp+0x20] + { 0x06, 0xD9 }, // (Offset,Value)-Pair #1 + { 0x07, 0x45 }, // (Offset,Value)-Pair #2 + { 0x08, 0x20 }, // (Offset,Value)-Pair #3 + + // IDirectSound8_SetOrientation+0x0C : sub esp, 0x18 + { 0x0C, 0x83 }, // (Offset,Value)-Pair #4 + { 0x0D, 0xEC }, // (Offset,Value)-Pair #5 + { 0x0E, 0x18 }, // (Offset,Value)-Pair #6 + + // IDirectSound8_SetOrientation+0x18 : add eax, 0xFFFFFFF8 + { 0x18, 0x83 }, // (Offset,Value)-Pair #7 + { 0x19, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x1A, 0xF8 }, // (Offset,Value)-Pair #9 + + // IDirectSound8_SetOrientation+0x1F : neg ecx + { 0x1F, 0xF7 }, // (Offset,Value)-Pair #10 + { 0x20, 0xD9 }, // (Offset,Value)-Pair #11 + + // IDirectSound8_SetOrientation+0x47 : retn 0x20 + { 0x47, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x48, 0x20 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * CDirectSound::CommitDeferredSettingsB +// ****************************************************************** +SOOVPA<11> CDirectSound_CommitDeferredSettingsB_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_COMMITDEFERREDSETTINGSB, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_CommitDeferredSettingsB+0x56 : fld dword ptr [eax+0x174] + { 0x56, 0xD9 }, // (Offset,Value)-Pair #1 + { 0x57, 0x80 }, // (Offset,Value)-Pair #2 + { 0x58, 0x74 }, // (Offset,Value)-Pair #3 + { 0x59, 0x01 }, // (Offset,Value)-Pair #4 + { 0x5A, 0x00 }, // (Offset,Value)-Pair #5 + { 0x5B, 0x00 }, // (Offset,Value)-Pair #6 + + // CDirectSound_CommitDeferredSettingsB+0xA8 : fsubp st(1), st + { 0xA8, 0xDE }, // (Offset,Value)-Pair #7 + { 0xA9, 0xE9 }, // (Offset,Value)-Pair #8 + + // CDirectSound_CommitDeferredSettingsB+0xD4 : mov esi, 0x118 + { 0xD4, 0xBE }, // (Offset,Value)-Pair #9 + { 0xD5, 0x18 }, // (Offset,Value)-Pair #10 + { 0xD6, 0x01 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::CommitDeferredSettingsA +// ****************************************************************** +SOOVPA<10> CDirectSound_CommitDeferredSettingsA_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_COMMITDEFERREDSETTINGSA, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSound_CommitDeferredSettingsA+0x12 : call [CDirectSound::CommitDeferredSettingsB] + { 0x12, XREF_COMMITDEFERREDSETTINGSB }, // (Offset,Value)-Pair #1 + + // CDirectSound_CommitDeferredSettingsA+0x0C : mov ecx, [eax+0x0C] + { 0x0C, 0x8B }, // (Offset,Value)-Pair #2 + { 0x0D, 0x48 }, // (Offset,Value)-Pair #3 + { 0x0E, 0x0C }, // (Offset,Value)-Pair #4 + + // CDirectSound_CommitDeferredSettingsA+0x0F : push 0 + { 0x0F, 0x6A }, // (Offset,Value)-Pair #5 + { 0x10, 0x00 }, // (Offset,Value)-Pair #6 + + // CDirectSound_CommitDeferredSettingsA+0x19 : jz +0x0B + { 0x19, 0x74 }, // (Offset,Value)-Pair #7 + { 0x1A, 0x0B }, // (Offset,Value)-Pair #8 + + // CDirectSound_CommitDeferredSettingsA+0x28 : retn 0x04 + { 0x28, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x29, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSound_CommitDeferredSettings +// ****************************************************************** +SOOVPA<8> CDirectSound_CommitDeferredSettings_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSound_CommitDeferredSettings+0x11 : call [CDirectSound::CommitDeferredSettingsA] + { 0x11, XREF_COMMITDEFERREDSETTINGSA }, // (Offset,Value)-Pair #1 + + // CDirectSound_CommitDeferredSettings+0x06 : and eax, 0xFFFFFFF8 + { 0x06, 0x83 }, // (Offset,Value)-Pair #2 + { 0x07, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x08, 0xF8 }, // (Offset,Value)-Pair #4 + + // CDirectSound_CommitDeferredSettings+0x09 : neg ecx + { 0x09, 0xF7 }, // (Offset,Value)-Pair #5 + { 0x0A, 0xD9 }, // (Offset,Value)-Pair #6 + + // CDirectSound_CommitDeferredSettings+0x15 : retn 0x04 + { 0x15, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x16, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirectSound8_Release +// ****************************************************************** +SOOVPA<10> IDirectSound8_Release_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSound8_Release+0x04 : lea ecx, [eax-8] + { 0x04, 0x8D }, // (Offset,Value)-Pair #1 + { 0x05, 0x48 }, // (Offset,Value)-Pair #2 + { 0x06, 0xF8 }, // (Offset,Value)-Pair #3 + + // IDirectSound8_Release+0x07 : neg eax + { 0x07, 0xF7 }, // (Offset,Value)-Pair #4 + { 0x08, 0xD8 }, // (Offset,Value)-Pair #5 + + // IDirectSound8_Release+0x10 : call dword ptr [ecx+8] + { 0x10, 0xFF }, // (Offset,Value)-Pair #6 + { 0x11, 0x51 }, // (Offset,Value)-Pair #7 + { 0x12, 0x08 }, // (Offset,Value)-Pair #8 + + // IDirectSound8_Release+0x13 : retn 0x04 + { 0x13, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x14, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSound::SetDistanceFactorB +// ****************************************************************** +SOOVPA<13> CDirectSound_SetDistanceFactorB_1_0_3936 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XREF_SETDISTANCEFACTORB,// XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetDistanceFactorB+0x04 : or dword ptr [ecx+0x01B4], 0x60 + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0x89 }, // (Offset,Value)-Pair #2 + { 0x06, 0xB4 }, // (Offset,Value)-Pair #3 + { 0x07, 0x01 }, // (Offset,Value)-Pair #4 + { 0x08, 0x00 }, // (Offset,Value)-Pair #5 + { 0x09, 0x00 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x60 }, // (Offset,Value)-Pair #7 + + // CDirectSound_SetDistanceFactorB+0x0B : cmp [esp+0x08], 0 + { 0x0B, 0x83 }, // (Offset,Value)-Pair #8 + { 0x0C, 0x7C }, // (Offset,Value)-Pair #9 + { 0x0D, 0x24 }, // (Offset,Value)-Pair #10 + { 0x0E, 0x08 }, // (Offset,Value)-Pair #11 + + // CDirectSound_SetDistanceFactorB+0x12 : mov [ecx+0x0178], eax + { 0x12, 0x78 }, // (Offset,Value)-Pair #12 + { 0x13, 0x01 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * CDirectSound::SetDistanceFactorA +// ****************************************************************** +SOOVPA<12> CDirectSound_SetDistanceFactorA_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 11 + + XREF_SETDISTANCEFACTORA,// XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSound_SetDistanceFactorA+0x23 : call [CDirectSound::SetDistanceFactorB] + { 0x23, XREF_SETDISTANCEFACTORB }, // (Offset,Value)-Pair #1 + + // CDirectSound_SetDistanceFactorA+0x00 : push esi; push edi + { 0x00, 0x56 }, // (Offset,Value)-Pair #2 + { 0x01, 0x57 }, // (Offset,Value)-Pair #3 + + // CDirectSound_SetDistanceFactorA+0x07 : fld [esp+0x10] + { 0x07, 0xD9 }, // (Offset,Value)-Pair #4 + { 0x08, 0x44 }, // (Offset,Value)-Pair #5 + { 0x09, 0x24 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x10 }, // (Offset,Value)-Pair #7 + + // CDirectSound_SetDistanceFactorA+0x11 : not eax; and eax, 1 + { 0x11, 0xF7 }, // (Offset,Value)-Pair #8 + { 0x12, 0xD0 }, // (Offset,Value)-Pair #9 + { 0x13, 0x83 }, // (Offset,Value)-Pair #10 + { 0x14, 0xE0 }, // (Offset,Value)-Pair #11 + { 0x15, 0x01 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetDistanceFactor +// ****************************************************************** +SOOVPA<11> IDirectSound8_SetDistanceFactor_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + // TODO: Tentative (may not be SetDistanceFactor) + + { + // IDirectSound8_SetDistanceFactor+0x1D : call [CDirectSound::SetDistanceFactorA] + { 0x1D, XREF_SETDISTANCEFACTORA }, // (Offset,Value)-Pair #1 + + // IDirectSound8_SetDistanceFactor+0x04 : fld [esp+0x0C] + { 0x04, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSound8_SetDistanceFactor+0x0C : push ecx + { 0x0C, 0x51 }, // (Offset,Value)-Pair #6 + + // IDirectSound8_SetDistanceFactor+0x12 : add eax, 0xFFFFFFF8 + { 0x12, 0x83 }, // (Offset,Value)-Pair #7 + { 0x13, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x14, 0xF8 }, // (Offset,Value)-Pair #9 + + // IDirectSound8_SetDistanceFactor+0x21 : retn 0x0C + { 0x21, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x22, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetRolloffFactorB +// ****************************************************************** +SOOVPA<13> CDirectSound_SetRolloffFactorB_1_0_3936 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XREF_SETROLLOFFFACTORB, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetRolloffFactorB+0x04 : or dword ptr [ecx+0x01B4], 0x60 + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0x89 }, // (Offset,Value)-Pair #2 + { 0x06, 0xB4 }, // (Offset,Value)-Pair #3 + { 0x07, 0x01 }, // (Offset,Value)-Pair #4 + { 0x08, 0x00 }, // (Offset,Value)-Pair #5 + { 0x09, 0x00 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #7 + + // CDirectSound_SetRolloffFactorB+0x0B : cmp [esp+0x08], 0 + { 0x0B, 0x83 }, // (Offset,Value)-Pair #8 + { 0x0C, 0x7C }, // (Offset,Value)-Pair #9 + { 0x0D, 0x24 }, // (Offset,Value)-Pair #10 + { 0x0E, 0x08 }, // (Offset,Value)-Pair #11 + + // CDirectSound_SetRolloffFactorB+0x12 : mov [ecx+0x017C], eax + { 0x12, 0x7C }, // (Offset,Value)-Pair #12 + { 0x13, 0x01 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * CDirectSound::SetRolloffFactorA +// ****************************************************************** +SOOVPA<12> CDirectSound_SetRolloffFactorA_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 11 + + XREF_SETROLLOFFFACTORA, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSound_SetRolloffFactorA+0x23 : call [CDirectSound::SetRolloffFactorB] + { 0x23, XREF_SETROLLOFFFACTORB }, // (Offset,Value)-Pair #1 + + // CDirectSound_SetRolloffFactorA+0x00 : push esi; push edi + { 0x00, 0x56 }, // (Offset,Value)-Pair #2 + { 0x01, 0x57 }, // (Offset,Value)-Pair #3 + + // CDirectSound_SetRolloffFactorA+0x07 : fld [esp+0x10] + { 0x07, 0xD9 }, // (Offset,Value)-Pair #4 + { 0x08, 0x44 }, // (Offset,Value)-Pair #5 + { 0x09, 0x24 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x10 }, // (Offset,Value)-Pair #7 + + // CDirectSound_SetRolloffFactorA+0x11 : not eax; and eax, 1 + { 0x11, 0xF7 }, // (Offset,Value)-Pair #8 + { 0x12, 0xD0 }, // (Offset,Value)-Pair #9 + { 0x13, 0x83 }, // (Offset,Value)-Pair #10 + { 0x14, 0xE0 }, // (Offset,Value)-Pair #11 + { 0x15, 0x01 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetRolloffFactor +// ****************************************************************** +SOOVPA<11> IDirectSound8_SetRolloffFactor_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + // TODO: Tentative (may not be SetRolloffFactor) + + { + // IDirectSound8_SetRolloffFactor+0x1D : call [CDirectSound::SetRolloffFactorA] + { 0x1D, XREF_SETROLLOFFFACTORA }, // (Offset,Value)-Pair #1 + + // IDirectSound8_SetRolloffFactor+0x04 : fld [esp+0x0C] + { 0x04, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSound8_SetRolloffFactor+0x0C : push ecx + { 0x0C, 0x51 }, // (Offset,Value)-Pair #6 + + // IDirectSound8_SetRolloffFactor+0x12 : add eax, 0xFFFFFFF8 + { 0x12, 0x83 }, // (Offset,Value)-Pair #7 + { 0x13, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x14, 0xF8 }, // (Offset,Value)-Pair #9 + + // IDirectSound8_SetRolloffFactor+0x21 : retn 0x0C + { 0x21, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x22, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetMixBinHeadroomB +// ****************************************************************** +SOOVPA<12> CDirectSound_SetMixBinHeadroomB_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSSETMIXBINHEADROOMB, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetMixBinHeadroomB+0x04 : cmp dword ptr ds:[0xFE820010], 4 + { 0x12, 0x83 }, // (Offset,Value)-Pair #1 + { 0x13, 0x3D }, // (Offset,Value)-Pair #2 + { 0x14, 0x10 }, // (Offset,Value)-Pair #3 + { 0x15, 0x00 }, // (Offset,Value)-Pair #4 + { 0x16, 0x82 }, // (Offset,Value)-Pair #5 + { 0x17, 0xFE }, // (Offset,Value)-Pair #6 + { 0x18, 0x04 }, // (Offset,Value)-Pair #7 + + // CDirectSound_SetMixBinHeadroomB+0x1F : and edx, 7 + { 0x1F, 0x83 }, // (Offset,Value)-Pair #8 + { 0x20, 0xE2 }, // (Offset,Value)-Pair #9 + { 0x21, 0x07 }, // (Offset,Value)-Pair #10 + + // CDirectSound_SetMixBinHeadroomB+0x2D : jl +0xD8 + { 0x2D, 0x7C }, // (Offset,Value)-Pair #11 + { 0x2E, 0xD8 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSound::SetMixBinHeadroomA +// ****************************************************************** +SOOVPA<9> CDirectSound_SetMixBinHeadroomA_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSSETMIXBINHEADROOMA, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSound_SetMixBinHeadroomA+0x19 : call [CDirectSound::SetMixBinHeadroomB] + { 0x19, XREF_DSSETMIXBINHEADROOMB }, // (Offset,Value)-Pair #1 + + // CDirectSound_SetMixBinHeadroomA+0x00 : push esi; push edi + { 0x00, 0x56 }, // (Offset,Value)-Pair #2 + { 0x01, 0x57 }, // (Offset,Value)-Pair #3 + + // CDirectSound_SetMixBinHeadroomA+0x07 : push [esp+0x14] + { 0x07, 0xFF }, // (Offset,Value)-Pair #4 + { 0x08, 0x74 }, // (Offset,Value)-Pair #5 + { 0x09, 0x24 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x14 }, // (Offset,Value)-Pair #7 + + // CDirectSound_SetMixBinHeadroomA+0x21 : jz +0x0B + { 0x21, 0x74 }, // (Offset,Value)-Pair #8 + { 0x22, 0x0B }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetMixBinHeadroom +// ****************************************************************** +SOOVPA<12> IDirectSound8_SetMixBinHeadroom_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSound8_SetMixBinHeadroom+0x19 : call [CDirectSound::SetMixBinHeadroomA] + { 0x19, XREF_DSSETMIXBINHEADROOMA }, // (Offset,Value)-Pair #1 + + // IDirectSound8_SetMixBinHeadroom+0x04 : push [esp+0x0C] + { 0x04, 0xFF }, // (Offset,Value)-Pair #2 + { 0x05, 0x74 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSound8_SetMixBinHeadroom+0x08 : mov ecx, eax + { 0x08, 0x8B }, // (Offset,Value)-Pair #6 + { 0x09, 0xC8 }, // (Offset,Value)-Pair #7 + + // IDirectSound8_SetMixBinHeadroom+0x0E : add eax, 0xFFFFFFF8 + { 0x0E, 0x83 }, // (Offset,Value)-Pair #8 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #9 + { 0x10, 0xF8 }, // (Offset,Value)-Pair #10 + + // IDirectSound8_SetMixBinHeadroom+0x1D : retn 0x0C + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x1E, 0x0C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSound::SetPositionB +// ****************************************************************** +SOOVPA<12> CDirectSound_SetPositionB_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSSETPOSITIONB, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetPositionB+0x0C : movsd; movsd; movsd + { 0x0C, 0xA5 }, // (Offset,Value)-Pair #1 + { 0x0D, 0xA5 }, // (Offset,Value)-Pair #2 + { 0x0E, 0xA5 }, // (Offset,Value)-Pair #3 + + // CDirectSound_SetPositionB+0x0F : or byte ptr [ecx+0x01B4], 0xFF + { 0x0F, 0x80 }, // (Offset,Value)-Pair #4 + { 0x10, 0x89 }, // (Offset,Value)-Pair #5 + { 0x11, 0xB4 }, // (Offset,Value)-Pair #6 + { 0x12, 0x01 }, // (Offset,Value)-Pair #7 + { 0x13, 0x00 }, // (Offset,Value)-Pair #8 + { 0x14, 0x00 }, // (Offset,Value)-Pair #9 + { 0x15, 0xFF }, // (Offset,Value)-Pair #10 + + // CDirectSound_SetPositionB+0x28 : retn 0x08 + { 0x28, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x29, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSound::SetPositionA +// ****************************************************************** +SOOVPA<10> CDirectSound_SetPositionA_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSSETPOSITIONA, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSound_SetPositionA+0x35 : call [CDirectSound::SetPositionB] + { 0x35, XREF_DSSETPOSITIONB }, // (Offset,Value)-Pair #1 + + // CDirectSound_SetPositionA+0x06 : push esi; push edi + { 0x06, 0x56 }, // (Offset,Value)-Pair #2 + { 0x07, 0x57 }, // (Offset,Value)-Pair #3 + + // CDirectSound_SetPositionA+0x24 : not eax; and eax, 1 + { 0x24, 0xF7 }, // (Offset,Value)-Pair #4 + { 0x25, 0xD0 }, // (Offset,Value)-Pair #5 + { 0x26, 0x83 }, // (Offset,Value)-Pair #6 + { 0x27, 0xE0 }, // (Offset,Value)-Pair #7 + { 0x28, 0x01 }, // (Offset,Value)-Pair #8 + + // CDirectSound_SetPositionA+0x4F : retn 0x14 + { 0x4F, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x50, 0x14 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetPosition +// ****************************************************************** +SOOVPA<11> IDirectSound8_SetPosition_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSound8_SetPosition+0x2D : call [CDirectSound::SetPositionA] + { 0x2D, XREF_DSSETPOSITIONA }, // (Offset,Value)-Pair #1 + + // IDirectSound8_SetPosition+0x06 : fld [ebp+0x14] + { 0x06, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x07, 0x45 }, // (Offset,Value)-Pair #3 + { 0x08, 0x14 }, // (Offset,Value)-Pair #4 + + // IDirectSound8_SetPosition+0x0C : sub esp, 0x0C + { 0x0C, 0x83 }, // (Offset,Value)-Pair #5 + { 0x0D, 0xEC }, // (Offset,Value)-Pair #6 + { 0x0E, 0x0C }, // (Offset,Value)-Pair #7 + + // IDirectSound8_SetPosition+0x1B : neg ecx + { 0x1B, 0xF7 }, // (Offset,Value)-Pair #8 + { 0x1C, 0xD9 }, // (Offset,Value)-Pair #9 + + // IDirectSound8_SetPosition+0x32 : retn 0x14 + { 0x32, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x33, 0x14 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetVelocityB +// ****************************************************************** +SOOVPA<12> CDirectSound_SetVelocityB_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSSETVELOCITYB, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetVelocityB+0x0C : movsd; movsd; movsd + { 0x0C, 0xA5 }, // (Offset,Value)-Pair #1 + { 0x0D, 0xA5 }, // (Offset,Value)-Pair #2 + { 0x0E, 0xA5 }, // (Offset,Value)-Pair #3 + + // CDirectSound_SetVelocityB+0x0F : or dword ptr [ecx+0x01B4], 0x40 + { 0x0F, 0x83 }, // (Offset,Value)-Pair #4 + { 0x10, 0x89 }, // (Offset,Value)-Pair #5 + { 0x11, 0xB4 }, // (Offset,Value)-Pair #6 + { 0x12, 0x01 }, // (Offset,Value)-Pair #7 + { 0x13, 0x00 }, // (Offset,Value)-Pair #8 + { 0x14, 0x00 }, // (Offset,Value)-Pair #9 + { 0x15, 0x40 }, // (Offset,Value)-Pair #10 + + // CDirectSound_SetVelocityB+0x28 : retn 0x08 + { 0x28, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x29, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSound::SetVelocityA +// ****************************************************************** +SOOVPA<10> CDirectSound_SetVelocityA_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSSETVELOCITYA, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSound_SetVelocityA+0x35 : call [CDirectSound::SetVelocityB] + { 0x35, XREF_DSSETVELOCITYB }, // (Offset,Value)-Pair #1 + + // CDirectSound_SetVelocityA+0x06 : push esi; push edi + { 0x06, 0x56 }, // (Offset,Value)-Pair #2 + { 0x07, 0x57 }, // (Offset,Value)-Pair #3 + + // CDirectSound_SetVelocityA+0x24 : not eax; and eax, 1 + { 0x24, 0xF7 }, // (Offset,Value)-Pair #4 + { 0x25, 0xD0 }, // (Offset,Value)-Pair #5 + { 0x26, 0x83 }, // (Offset,Value)-Pair #6 + { 0x27, 0xE0 }, // (Offset,Value)-Pair #7 + { 0x28, 0x01 }, // (Offset,Value)-Pair #8 + + // CDirectSound_SetVelocityA+0x4F : retn 0x14 + { 0x4F, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x50, 0x14 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetVelocity +// ****************************************************************** +SOOVPA<11> IDirectSound8_SetVelocity_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSound8_SetVelocity+0x2D : call [CDirectSound::SetVelocityA] + { 0x2D, XREF_DSSETVELOCITYA }, // (Offset,Value)-Pair #1 + + // IDirectSound8_SetVelocity+0x06 : fld [ebp+0x14] + { 0x06, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x07, 0x45 }, // (Offset,Value)-Pair #3 + { 0x08, 0x14 }, // (Offset,Value)-Pair #4 + + // IDirectSound8_SetVelocity+0x0C : sub esp, 0x0C + { 0x0C, 0x83 }, // (Offset,Value)-Pair #5 + { 0x0D, 0xEC }, // (Offset,Value)-Pair #6 + { 0x0E, 0x0C }, // (Offset,Value)-Pair #7 + + // IDirectSound8_SetVelocity+0x1B : neg ecx + { 0x1B, 0xF7 }, // (Offset,Value)-Pair #8 + { 0x1C, 0xD9 }, // (Offset,Value)-Pair #9 + + // IDirectSound8_SetVelocity+0x32 : retn 0x14 + { 0x32, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x33, 0x14 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetAllParametersB +// ****************************************************************** +SOOVPA<13> CDirectSound_SetAllParametersB_1_0_3936 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XREF_DSSETALLPARAMETERSB, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetAllParametersB+0x08 : push 0x0C; pop ecx + { 0x08, 0x6A }, // (Offset,Value)-Pair #1 + { 0x09, 0x0C }, // (Offset,Value)-Pair #2 + { 0x0A, 0x59 }, // (Offset,Value)-Pair #3 + + // CDirectSound_SetAllParametersB+0x13 : or word ptr [ecx+0x01B4], 0x0180 + { 0x13, 0x66 }, // (Offset,Value)-Pair #4 + { 0x14, 0x81 }, // (Offset,Value)-Pair #5 + { 0x15, 0x88 }, // (Offset,Value)-Pair #6 + { 0x16, 0xB4 }, // (Offset,Value)-Pair #7 + { 0x17, 0x01 }, // (Offset,Value)-Pair #8 + { 0x18, 0x00 }, // (Offset,Value)-Pair #9 + { 0x1A, 0x80 }, // (Offset,Value)-Pair #10 + { 0x1B, 0x01 }, // (Offset,Value)-Pair #11 + + // CDirectSound_SetAllParametersB+0x30 : retn 0x08 + { 0x30, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x31, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * CDirectSound::SetAllParametersA +// ****************************************************************** +SOOVPA<10> CDirectSound_SetAllParametersA_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSSETALLPARAMETERSA, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSound_SetAllParametersA+0x2F : call [CDirectSound::SetAllParametersB] + { 0x2F, XREF_DSSETALLPARAMETERSB }, // (Offset,Value)-Pair #1 + + // CDirectSound_SetAllParametersA+0x00 : push esi; push edi + { 0x00, 0x56 }, // (Offset,Value)-Pair #2 + { 0x01, 0x57 }, // (Offset,Value)-Pair #3 + + // CDirectSound_SetAllParametersA+0x21 : not ecx; and ecx, 1 + { 0x21, 0xF7 }, // (Offset,Value)-Pair #4 + { 0x22, 0xD1 }, // (Offset,Value)-Pair #5 + { 0x23, 0x83 }, // (Offset,Value)-Pair #6 + { 0x24, 0xE1 }, // (Offset,Value)-Pair #7 + { 0x25, 0x01 }, // (Offset,Value)-Pair #8 + + // CDirectSound_SetAllParametersA+0x48 : retn 0x0C + { 0x48, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x49, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetAllParameters +// ****************************************************************** +SOOVPA<12> IDirectSound8_SetAllParameters_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSound8_SetAllParameters+0x19 : call [CDirectSound::SetAllParametersA] + { 0x19, XREF_DSSETALLPARAMETERSA }, // (Offset,Value)-Pair #1 + + // IDirectSound8_SetAllParameters+0x04 : push [esp+0x0C] + { 0x04, 0xFF }, // (Offset,Value)-Pair #2 + { 0x05, 0x74 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSound8_SetAllParameters+0x0E : add eax, 0xFFFFFFF8 + { 0x0E, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x10, 0xF8 }, // (Offset,Value)-Pair #8 + + // IDirectSound8_SetAllParameters+0x13 : sbb ecx, ecx + { 0x13, 0x1B }, // (Offset,Value)-Pair #9 + { 0x14, 0xC9 }, // (Offset,Value)-Pair #10 + + // IDirectSound8_SetAllParameters+0x1D : retn 0x0C + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x1E, 0x0C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirectSound8_DownloadEffectsImage +// ****************************************************************** +SOOVPA<11> IDirectSound8_DownloadEffectsImage_1_0_3936 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSound8_DownloadEffectsImage+0x03 : push [ebp+0x18] + { 0x03, 0xFF }, // (Offset,Value)-Pair #1 + { 0x04, 0x75 }, // (Offset,Value)-Pair #2 + { 0x05, 0x18 }, // (Offset,Value)-Pair #3 + + // IDirectSound8_DownloadEffectsImage+0x06 : mov eax, [ebp+0x08] + { 0x06, 0x8B }, // (Offset,Value)-Pair #4 + { 0x07, 0x45 }, // (Offset,Value)-Pair #5 + { 0x08, 0x08 }, // (Offset,Value)-Pair #6 + + // IDirectSound8_DownloadEffectsImage+0x11 : add eax, 0xFFFFFFF8 + { 0x11, 0x83 }, // (Offset,Value)-Pair #7 + { 0x12, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x13, 0xF8 }, // (Offset,Value)-Pair #9 + + // IDirectSound8_DownloadEffectsImage+0x24 : retn 0x14 + { 0x24, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x25, 0x14 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetMode +// ****************************************************************** +SOOVPA<7> CDirectSoundStream_SetMode_1_0_3936 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetMode+0x10 : call [CDirectSoundVoice::SetMode] + { 0x11, XREF_DSBUFFERSETMODEA }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_SetMode+0x0C : add eax, 4 + { 0x0C, 0x83 }, // (Offset,Value)-Pair #2 + { 0x0D, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x0E, 0x04 }, // (Offset,Value)-Pair #4 + + // CDirectSoundStream_SetMode+0x0F : push eax + { 0x0F, 0x50 }, // (Offset,Value)-Pair #6 + + // CDirectSoundBuffer8_SetMode+0x15 : retn 0x0C + { 0x15, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x16, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * DirectSound::CMcpxBuffer::Play +// ****************************************************************** +SOOVPA<8> DirectSound_CMcpxBuffer_Play_1_0_3925 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CMcpxBuffer_Play, // Xref Is Saved + XRefNotUsed, + + { + { 0x06, 0x56 }, + { 0x0E, 0xF1 }, + { 0x16, 0xFF }, + { 0x1D, 0x03 }, + { 0x1E, 0xFF }, + { 0x26, 0x75 }, + { 0x2F, 0x8B }, + { 0x36, 0xC2 }, + } +}; + +// ****************************************************************** +// * CMcpxAPU::Set3dDopplerFactor +// ****************************************************************** +SOOVPA<7> CMcpxAPU_Set3dDopplerFactor_1_0_3936 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_CMcpxAPU_Set3dDopplerFactor, // Xref Is Saved + XRefNotUsed, + + { + { 0x03, 0x04 }, + { 0x08, 0x00 }, + { 0x0D, 0x24 }, + { 0x12, 0x80 }, + { 0x17, 0x07 }, + { 0x1F, 0x33 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * CDirectSound::SetDopplerFactor +// ****************************************************************** +SOOVPA<9> CDirectSound_SetDopplerFactor_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_SETDOPPLERFACTOR, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x23, XREF_CMcpxAPU_Set3dDopplerFactor }, + + { 0x07, 0xD9 }, + { 0x0E, 0x44 }, + { 0x16, 0x50 }, + { 0x1E, 0x0C }, + { 0x27, 0x85 }, + { 0x32, 0xFF }, + { 0x38, 0x8B }, + { 0x3E, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetDopplerFactor +// ****************************************************************** +SOOVPA<8> IDirectSound_SetDopplerFactor_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_SETDOPPLERFACTOR }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * CSensaura3d::GetFullHRTFFilterPair +// ****************************************************************** +SOOVPA<7> CSensaura3d_GetFullHRTFFilterPair_1_0_3936 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_CSensaura3d_GetFullHRTFFilterPair, // Xref Is Saved + XRefNotUsed, + + { + { 0x1E, 0xEB }, + { 0x3E, 0x40 }, + { 0x5E, 0x7E }, + { 0x7E, 0x1E }, + { 0xA2, 0xD9 }, + { 0xBE, 0x09 }, + { 0xDE, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSoundUseFullHRTF +// ****************************************************************** +SOOVPA<8> DirectSoundUseFullHRTF_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x0D, XREF_CSensaura3d_GetFullHRTFFilterPair }, + + { 0x05, 0x85 }, + { 0x06, 0xC0 }, + { 0x11, 0x74 }, + { 0x12, 0x0B }, + { 0x13, 0x68 }, + { 0x18, 0xFF }, + { 0x1E, 0xC3 }, + } +}; + +// ****************************************************************** +// * DirectSoundUseFullHRTF2 +// ****************************************************************** +SOOVPA<8> DirectSoundUseFullHRTF2_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x01, XREF_DirectSoundEnterCriticalSection }, + + { 0x05, 0x85 }, + { 0x06, 0xC0 }, + { 0x11, 0x74 }, + { 0x12, 0x0B }, + { 0x13, 0x68 }, + { 0x18, 0xFF }, + { 0x1E, 0xC3 }, + } +}; + +// ****************************************************************** +// * CDirectSound::GetCaps +// ****************************************************************** +SOOVPA<8> CDirectSound_GetCaps_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_CDirectSound_GetCaps, // Xref Is Saved + XRefNotUsed, + + { + { 0x08, 0x8B }, + { 0x12, 0x8D }, + { 0x1C, 0x0C }, + { 0x26, 0xFF }, + { 0x34, 0x03 }, + { 0x3A, 0xDB }, + { 0x48, 0x8B }, + { 0x4E, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirectSound_GetCaps +// ****************************************************************** +SOOVPA<8> IDirectSound_GetCaps_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_CDirectSound_GetCaps }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetPitch +// ****************************************************************** +SOOVPA<8> CDirectSoundVoice_SetPitch_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_CDirectSoundVoice_SetPitch, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0C, 0xF0 }, + { 0x13, 0x18 }, + { 0x1A, 0xE8 }, + { 0x21, 0x8B }, + { 0x2A, 0xFF }, + { 0x30, 0x8B }, + { 0x36, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetPitch +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetPitch_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_CDirectSoundVoice_SetPitch }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetConeAngles +// ****************************************************************** +SOOVPA<8> CDirectSoundVoice_SetConeAngles_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSVOICESETCONEANGLES, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0E, 0xD0 }, + { 0x16, 0x18 }, + { 0x1E, 0x18 }, + { 0x27, 0x85 }, + { 0x32, 0xFF }, + { 0x38, 0x8B }, + { 0x3E, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetConeAngles +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetConeAngles_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DSVOICESETCONEANGLES }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSoundEnterCriticalSection +// ****************************************************************** +SOOVPA<7> DirectSoundEnterCriticalSection_1_0_3936 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSoundEnterCriticalSection, // Xref Is Saved + XRefNotUsed, + + { + { 0x02, 0xB6 }, + { 0x06, 0x00 }, + { 0x0A, 0x74 }, + { 0x0E, 0xC3 }, + { 0x14, 0xFF }, + { 0x1A, 0x33 }, + { 0x1B, 0xC0 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::PlayEx +// ****************************************************************** +SOOVPA<9> CDirectSoundBuffer_PlayEx_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DirectSound_CDirectSoundBuffer_PlayEx, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x03, XREF_DirectSoundEnterCriticalSection }, + + { 0x00, 0x56 }, + { 0x07, 0x8B }, + { 0x0E, 0xE0 }, + { 0x16, 0x44 }, + { 0x1E, 0x48 }, + { 0x26, 0xF6 }, + { 0x30, 0xFF }, + { 0x36, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_PlayEx +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_PlayEx_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DirectSound_CDirectSoundBuffer_PlayEx }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * IDirectSound8_AddRef +// ****************************************************************** +SOOVPA<12> IDirectSound8_AddRef_1_0_3936 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSound8_AddRef+0x04 : lea ecx, [eax-8] + { 0x04, 0x8D }, // (Offset,Value)-Pair #1 + { 0x05, 0x48 }, // (Offset,Value)-Pair #2 + { 0x06, 0xF8 }, // (Offset,Value)-Pair #3 + + // IDirectSound8_AddRef+0x07 : neg eax + { 0x07, 0xF7 }, // (Offset,Value)-Pair #4 + { 0x08, 0xD8 }, // (Offset,Value)-Pair #5 + + // IDirectSound8_AddRef+0x09 : sbb eax, eax + { 0x09, 0x1B }, // (Offset,Value)-Pair #6 + { 0x0A, 0xC0 }, // (Offset,Value)-Pair #7 + + // IDirectSound8_AddRef+0x0D : mov ecx, [eax] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #8 + { 0x0E, 0x08 }, // (Offset,Value)-Pair #9 + + // IDirectSound8_AddRef+0x10 : call dword ptr [ecx+4] + { 0x10, 0xFF }, // (Offset,Value)-Pair #10 + { 0x11, 0x51 }, // (Offset,Value)-Pair #11 + { 0x12, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * DirectSoundGetSampleTime +// ****************************************************************** +SOOVPA<6> DirectSoundGetSampleTime_1_0_3936 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0xA1 }, + { 0x01, 0x0C }, + { 0x02, 0x20 }, + { 0x03, 0x80 }, + { 0x04, 0xFE }, + { 0x05, 0xC3 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_AddRef +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_AddRef_1_0_3936 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSoundBuffer8_AddRef+0x04 : lea ecx, [eax-0x1C] + { 0x04, 0x8D }, // (Offset,Value)-Pair #1 + { 0x05, 0x48 }, // (Offset,Value)-Pair #2 + { 0x06, 0xE4 }, // (Offset,Value)-Pair #3 + + // IDirectSoundBuffer8_AddRef+0x07 : neg eax; sbb eax, eax + { 0x07, 0xF7 }, // (Offset,Value)-Pair #4 + { 0x08, 0xD8 }, // (Offset,Value)-Pair #5 + { 0x09, 0x1B }, // (Offset,Value)-Pair #6 + { 0x0A, 0xC0 }, // (Offset,Value)-Pair #7 + + // IDirectSoundBuffer8_AddRef+0x10 : call dword ptr [ecx+0x04] + { 0x10, 0xFF }, // (Offset,Value)-Pair #8 + { 0x11, 0x51 }, // (Offset,Value)-Pair #9 + { 0x12, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetMinDistance +// ****************************************************************** +SOOVPA<9> CDirectSoundBuffer_SetMinDistance_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_CDirectSoundBuffer_SetMinDistance, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x11, XREF_DSSTREAMSETMINDISTANCE1B }, + + { 0x01, 0x74 }, + { 0x04, 0xD9 }, + { 0x07, 0x0C }, + { 0x0A, 0x1C }, + { 0x0D, 0x74 }, + { 0x10, 0xE8 }, + { 0x15, 0xC2 }, + { 0x16, 0x0C }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMinDistance +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetMinDistance_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_CDirectSoundBuffer_SetMinDistance }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetMaxDistance +// ****************************************************************** +SOOVPA<9> CDirectSoundBuffer_SetMaxDistance_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_CDirectSoundBuffer_SetMaxDistance, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x11, XREF_DSSTREAMSETMAXDISTANCE1B }, + + { 0x01, 0x74 }, + { 0x04, 0xD9 }, + { 0x07, 0x0C }, + { 0x0A, 0x1C }, + { 0x0D, 0x74 }, + { 0x10, 0xE8 }, + { 0x15, 0xC2 }, + { 0x16, 0x0C }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMaxDistance +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetMaxDistance_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_CDirectSoundBuffer_SetMaxDistance }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * CMcpxVoiceClient::Commit3dSettings +// ****************************************************************** +SOOVPA<10> CMcpxVoiceClient_Commit3dSettings_1_0_3936 = +{ + 0, // Large == 0 + 10, // Small == 10 + + XREF_CMcpxVoiceClient_Commit3dSettings, // XRef Is Saved + XRefNotUsed, + + { + // CMcpxVoiceClient::Commit3dSettings+0x17 : or [eax+0x80], ecx + { 0x17, 0x09 }, + { 0x18, 0x88 }, + { 0x19, 0x80 }, + { 0x1A, 0x00 }, + // CMcpxVoiceClient::Commit3dSettings+0x2B : add eax, 0x80 + { 0x2B, 0x05 }, + { 0x2C, 0x80 }, + { 0x2D, 0x00 }, + // CMcpxVoiceClient::Commit3dSettings+0x3D : cmpxchg [ecx], edx + { 0x3D, 0x0F }, + { 0x3E, 0xB1 }, + { 0x3F, 0x11 }, + } +}; + +// ****************************************************************** +// * CMcpxVoiceClient::SetI3DL2Source +// ****************************************************************** +SOOVPA<8> CMcpxVoiceClient_SetI3DL2Source_1_0_3936 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_CMcpxVoiceClient_SetI3DL2Source, // Xref Is Saved + XRefNotUsed, + + { + { 0x04, 0x08 }, + { 0x0A, 0x59 }, + { 0x10, 0x80 }, + { 0x16, 0x80 }, + { 0x1C, 0x5F }, + { 0x22, 0x8B }, + { 0x29, 0x33 }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetI3DL2Source +// ****************************************************************** +SOOVPA<9> CDirectSoundVoice_SetI3DL2Source_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_CDirectSoundVoice_SetI3DL2Source, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x1F, XREF_CMcpxVoiceClient_SetI3DL2Source }, + + { 0x00, 0x56 }, + { 0x07, 0x8B }, + { 0x0E, 0xD0 }, + { 0x16, 0x10 }, + { 0x1E, 0xE8 }, + { 0x26, 0xF8 }, + { 0x2E, 0xFF }, + { 0x36, 0x5F }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetI3DL2Source +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_SetI3DL2Source_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_CDirectSoundVoice_SetI3DL2Source }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetMixBinVolumes +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetMixBinVolumes_1_0_3936 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_CDirectSoundVoice_SetMixBinVolumes, // Xref Is Saved + XRefNotUsed, + + { + { 0x0D, 0x65 }, + { 0x1C, 0x53 }, + { 0x2B, 0xC0 }, + { 0x3A, 0xC7 }, + { 0x49, 0xFC }, + { 0x58, 0x83 }, + { 0x67, 0x15 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMixBinVolumes +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_SetMixBinVolumes_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_CDirectSoundVoice_SetMixBinVolumes }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * CMcpxAPU::Set3dParameters +// ****************************************************************** +SOOVPA<7> CMcpxAPU_Set3dParameters_1_0_3936 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETALLPARAMETERSB, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x57 }, + { 0x0C, 0xB8 }, + { 0x13, 0x80 }, + { 0x1A, 0x83 }, + { 0x21, 0x74 }, + { 0x2C, 0x33 }, + { 0x2F, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSound::SetAllParameters +// ****************************************************************** +SOOVPA<9> CDirectSound_SetAllParameters_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSSETALLPARAMETERSA, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x1F, XREF_DSSETALLPARAMETERSB }, + + { 0x00, 0x56 }, + { 0x07, 0x8B }, + { 0x0E, 0xD0 }, + { 0x16, 0x10 }, + { 0x1E, 0xE8 }, + { 0x26, 0xF8 }, + { 0x2E, 0xFF }, + { 0x36, 0x5F }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetAllParameters +// ****************************************************************** +SOOVPA<9> IDirectSound_SetAllParameters_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DSSETALLPARAMETERSA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * CDirectSound::SetI3DL2Listener +// ****************************************************************** +SOOVPA<7> CDirectSound_SetI3DL2Listener_1_0_3936 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETI3DL2LISTENER, // Xref Is Saved + XRefNotUsed, + + { + { 0x08, 0xF8 }, + { 0x12, 0x0C }, + { 0x1C, 0x18 }, + { 0x26, 0x51 }, + { 0x33, 0x8B }, + { 0x3E, 0xFF }, + { 0x44, 0x5F }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetI3DL2Listener +// ****************************************************************** +SOOVPA<9> IDirectSound_SetI3DL2Listener_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DSSETI3DL2LISTENER }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * CDirectSound::EnableHeadphones +// ****************************************************************** +SOOVPA<7> CDirectSound_EnableHeadphones_1_0_3936 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSound_EnableHeadphones, // Xref Is Saved + XRefNotUsed, + + { + { 0x18, 0x8B }, + { 0x32, 0x0C }, + { 0x4F, 0x8B }, + { 0x66, 0x8B }, + { 0x80, 0xFF }, + { 0x9A, 0x76 }, + { 0xB4, 0x5B }, + } +}; + +// ****************************************************************** +// * IDirectSound_EnableHeadphones +// ****************************************************************** +SOOVPA<8> IDirectSound_EnableHeadphones_1_0_3936 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DirectSound_CDirectSound_EnableHeadphones }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSoundStream::SetMixBinVolumes +// ****************************************************************** +SOOVPA<9> CDirectSoundStream_SetMixBinVolumes_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_CDirectSoundStream_SetMixBinVolumes, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x11, XREF_CDirectSoundVoice_SetMixBinVolumes }, + + { 0x01, 0x74 }, + { 0x04, 0x8B }, + { 0x07, 0x08 }, + { 0x0A, 0x24 }, + { 0x0D, 0xC0 }, + { 0x10, 0xE8 }, + { 0x15, 0xC2 }, + { 0x16, 0x0C }, + } +}; + +// ****************************************************************** +// * CDirectSoundStream::SetI3DL2Source +// ****************************************************************** +SOOVPA<9> CDirectSoundStream_SetI3DL2Source_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + 0, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x11, XREF_CDirectSoundVoice_SetI3DL2Source }, + + { 0x01, 0x74 }, + { 0x04, 0x8B }, + { 0x07, 0x08 }, + { 0x0A, 0x24 }, + { 0x0D, 0xC0 }, + { 0x10, 0xE8 }, + { 0x15, 0xC2 }, + { 0x16, 0x0C }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetNotificationPositions +// ****************************************************************** +SOOVPA<7> CDirectSoundBuffer_SetNotificationPositions_1_0_3936 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_CDirectSoundBuffer_SetNotificationPositions, // Xref Is Saved + XRefNotUsed, + + { + { 0x09, 0x24 }, + { 0x14, 0x24 }, + { 0x1F, 0x74 }, + { 0x2A, 0x50 }, + { 0x35, 0xF6 }, + { 0x40, 0x07 }, + { 0x4D, 0x5F }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetNotificationPositions +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_SetNotificationPositions_1_0_3936 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_CDirectSoundBuffer_SetNotificationPositions }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * CDirectSoundStream::Pause +// ****************************************************************** +SOOVPA<6> CDirectSoundStream_Pause_1_0_3936 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0xFF }, + { 0x07, 0x08 }, + { 0x0A, 0x24 }, + { 0x10, 0xC2 }, + { 0x11, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSoundCreate_1_0_3936 +// ****************************************************************** +OOVPATable DSound_1_0_3936[] = +{ + // DirectSoundCreate + { + (OOVPA*)&DirectSoundCreate_1_0_3936, + + XTL::EmuDirectSoundCreate, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreate" + #endif + }, + // DirectSoundDoWorkB (XREF) + { + (OOVPA*)&DirectSoundDoWorkB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "DirectSoundDoWorkB (XRef)" + #endif + }, + // DirectSoundDoWorkA (XREF) + { + (OOVPA*)&DirectSoundDoWorkA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "DirectSoundDoWorkA (XRef)" + #endif + }, + // DirectSoundDoWork + { + (OOVPA*)&DirectSoundDoWork_1_0_3936, + + XTL::EmuDirectSoundDoWork, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundDoWork" + #endif + }, + // CDirectSound_CreateSoundStream + { + (OOVPA*)&CDirectSound_CreateSoundStream_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundStream (XREF)" + #endif + }, + // IDirectSound8_CreateStream + { + (OOVPA*)&IDirectSound8_CreateStream_1_0_3936, + + XTL::EmuIDirectSound8_CreateStream, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateStream" + #endif + }, + // CDirectSound_CreateSoundBuffer + { + (OOVPA*)&CDirectSound_CreateSoundBuffer_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundBuffer (XREF)" + #endif + }, + // IDirectSound8_CreateBuffer + { + (OOVPA*)&IDirectSound8_CreateBuffer_1_0_3936, + + XTL::EmuIDirectSound8_CreateBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateBuffer" + #endif + }, + // IDirectSoundBuffer8::Release + { + (OOVPA*)&IDirectSoundBuffer8_Release_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Release" + #endif + }, + // IDirectSoundBuffer8::SetPitchB (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_SetPitchB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetPitchB (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetPitchA (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_SetPitchA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetPitchA (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetPitch + { + (OOVPA*)&IDirectSoundBuffer8_SetPitch_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetPitch, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetPitch" + #endif + }, + // CMcpxBuffer::GetStatus (XREF) + { + (OOVPA*)&CMcpxBuffer_GetStatus_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer::GetStatus (XRef)" + #endif + }, + // CDirectSoundBuffer::GetStatus (XREF) + { + (OOVPA*)&CDirectSoundBuffer_GetStatus_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::GetStatus (XRef)" + #endif + }, + // IDirectSoundBuffer8::GetStatus + { + (OOVPA*)&IDirectSoundBuffer8_GetStatus_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_GetStatus, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_GetStatus" + #endif + }, + // IDirectSoundBuffer8::SetVolumeB (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_SetVolumeB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetVolumeB (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetVolumeA (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_SetVolumeA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetVolumeA (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetVolume + { + (OOVPA*)&IDirectSoundBuffer8_SetVolume_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetVolume" + #endif + }, + // IDirectSoundBuffer8::SetCurrentPositionB (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_SetCurrentPositionB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetCurrentPositionB (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetCurrentPositionA (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_SetCurrentPositionA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetCurrentPositionA (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetCurrentPosition + { + (OOVPA*)&IDirectSoundBuffer8_SetCurrentPosition_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetCurrentPosition, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetCurrentPosition" + #endif + }, + // IDirectSoundBuffer8::SetPlayRegionA (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_SetPlayRegionA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetPlayRegionA (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetPlayRegion + { + (OOVPA*)&IDirectSoundBuffer8_SetPlayRegion_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetPlayRegion, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetPlayRegion" + #endif + }, + // IDirectSoundBuffer8::LockA (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_LockA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_LockA (XRef)" + #endif + }, + // IDirectSoundBuffer8::Lock + { + (OOVPA*)&IDirectSoundBuffer8_Lock_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Lock" + #endif + }, + // IDirectSoundBuffer8::SetHeadroomA (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_SetHeadroomA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetHeadroomA (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetHeadroom + { + (OOVPA*)&IDirectSoundBuffer8_SetHeadroom_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetHeadroom, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetHeadroom" + #endif + }, + // IDirectSoundBuffer8::SetBufferDataA (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_SetBufferDataA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetBufferDataA (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetBufferData + { + (OOVPA*)&IDirectSoundBuffer8_SetBufferData_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetBufferData, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetBufferData" + #endif + }, + // CMcpxVoiceClient::SetMixBins (XRef) + { + (OOVPA*)&CMcpxVoiceClient_SetMixBins_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::SetMixBins (XRef)" + #endif + }, + // CDirectSoundVoice::SetMixBins (XRef) + { + (OOVPA*)&CDirectSoundVoice_SetMixBins_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMixBins (XRef)" + #endif + }, + // IDirectSoundStream::SetMixBins + { + (OOVPA*)&IDirectSoundStream_SetMixBins_1_0_3936, + + XTL::EmuCDirectSoundStream_SetMixBins, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundStream_SetMixBins" + #endif + }, + // IDirectSoundBuffer8::SetMixBins + { + (OOVPA*)&IDirectSoundBuffer8_SetMixBins_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetMixBins, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMixBins" + #endif + }, + // CMcpxBuffer::GetCurrentPosition + { + (OOVPA*)&CMcpxBuffer_GetCurrentPosition_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetCurrentPosition (XREF)" + #endif + }, + // CMcpxBuffer::GetCurrentPosition + { + (OOVPA*)&CMcpxBuffer_GetCurrentPosition2_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetCurrentPosition (XREF)" + #endif + }, + // CDirectSoundBuffer::GetCurrentPosition + { + (OOVPA*)&CDirectSoundBuffer_GetCurrentPosition_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_GetCurrentPosition (XREF)" + #endif + }, + // IDirectSoundBuffer8::GetCurrentPosition + { + (OOVPA*)&IDirectSoundBuffer8_GetCurrentPosition_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_GetCurrentPosition, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_GetCurrentPosition" + #endif + }, + // CDirectSoundBuffer_Play + { + (OOVPA*)&CDirectSoundBuffer_Play_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::Play (XREF)" + #endif + }, + // IDirectSoundBuffer8::Play + { + (OOVPA*)&IDirectSoundBuffer8_Play_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Play, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Play" + #endif + }, + // IDirectSoundBuffer8::Play + /* { + (OOVPA*)&IDirectSoundBuffer8_Play2_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Play, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Play [YESSSS! IT WORKED!]" + #endif + },*/ + // CDirectSoundBuffer::Stop + { + (OOVPA*)&CDirectSoundBuffer_Stop_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_Stop (XREF)" + #endif + }, + // IDirectSoundBuffer8::Stop + { + (OOVPA*)&IDirectSoundBuffer8_Stop_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Stop, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_Stop" + #endif + }, + // CMcpxVoiceClient_SetVolume + { + (OOVPA*)&CMcpxVoiceClient_SetVolume_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::SetVolume (XREF)" + #endif + }, + // CDirectSoundStream_SetVolume + { + (OOVPA*)&CDirectSoundStream_SetVolume_1_0_3936, + + XTL::EmuCDirectSoundStream_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetVolume" + #endif + }, + // CDirectSoundStream::SetConeAnglesB (XREF) + { + (OOVPA*)&CDirectSoundStream_SetConeAnglesB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetConeAnglesB (XRef)" + #endif + }, + // CDirectSoundStream::SetConeAnglesA (XREF) + { + (OOVPA*)&CDirectSoundStream_SetConeAnglesA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetConeAnglesA (XRef)" + #endif + }, + // CDirectSoundStream::SetConeAngles + { + (OOVPA*)&CDirectSoundStream_SetConeAngles_1_0_3936, + + XTL::EmuCDirectSoundStream_SetConeAngles, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetConeAngles" + #endif + }, + // CDirectSoundStream::SetConeOutsideVolumeB (XREF) + { + (OOVPA*)&CDirectSoundStream_SetConeOutsideVolumeB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetConeOutsideVolumeB (XRef)" + #endif + }, + // CDirectSoundStream::SetConeOutsideVolumeA (XREF) + { + (OOVPA*)&CDirectSoundStream_SetConeOutsideVolumeA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetConeOutsideVolumeA (XRef)" + #endif + }, + // CDirectSoundStream::SetConeOutsideVolume + { + (OOVPA*)&CDirectSoundStream_SetConeOutsideVolume_1_0_3936, + + XTL::EmuCDirectSoundStream_SetConeOutsideVolume, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetConeOutsideVolume" + #endif + }, + //// CDirectSoundStream::SetAllParametersB (XREF) + //{ + // (OOVPA*)&CDirectSoundStream_SetAllParametersB_1_0_3936, 0, + + // #ifdef _DEBUG_TRACE + // "CDirectSoundStream_SetAllParametersB (XRef)" + // #endif + //}, + //// CDirectSoundStream::SetAllParametersA (XREF) + //{ + // (OOVPA*)&CDirectSoundStream_SetAllParametersA_1_0_3936, 0, + + // #ifdef _DEBUG_TRACE + // "CDirectSoundStream_SetAllParametersA (XRef)" + // #endif + //}, + //// CDirectSoundStream::SetAllParameters + //{ + // (OOVPA*)&CDirectSoundStream_SetAllParameters_1_0_3936, + + // XTL::EmuCDirectSoundStream_SetAllParameters, + + // #ifdef _DEBUG_TRACE + // "EmuCDirectSoundStream_SetAllParameters" + // #endif + //}, + // CDirectSoundStream::SetMaxDistanceC (XREF) + { + (OOVPA*)&CDirectSoundStream_SetMaxDistanceC_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetMaxDistanceC (XRef)" + #endif + }, + // CDirectSoundStream::SetMaxDistanceB (XREF) + { + (OOVPA*)&CDirectSoundStream_SetMaxDistanceB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetMaxDistanceB (XRef)" + #endif + }, + // CDirectSoundStream::SetMaxDistanceA (XREF) + { + (OOVPA*)&CDirectSoundStream_SetMaxDistanceA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetMaxDistanceA (XRef)" + #endif + }, + // CDirectSoundStream::SetMaxDistance + { + (OOVPA*)&CDirectSoundStream_SetMaxDistance_1_0_3936, + + XTL::EmuCDirectSoundStream_SetMaxDistance, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetMaxDistance" + #endif + }, + // CDirectSoundStream::SetMinDistanceC (XREF) + { + (OOVPA*)&CDirectSoundStream_SetMinDistanceC_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetMinDistanceC (XRef)" + #endif + }, + // CDirectSoundStream::SetMinDistanceB (XREF) + { + (OOVPA*)&CDirectSoundStream_SetMinDistanceB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetMinDistanceB (XRef)" + #endif + }, + // CDirectSoundStream::SetMinDistanceA (XREF) + { + (OOVPA*)&CDirectSoundStream_SetMinDistanceA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetMinDistanceA (XRef)" + #endif + }, + // CDirectSoundStream::SetMinDistance + { + (OOVPA*)&CDirectSoundStream_SetMinDistance_1_0_3936, + + XTL::EmuCDirectSoundStream_SetMinDistance, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetMinDistance" + #endif + }, + // CDirectSoundStream::SetVelocityC (XREF) + { + (OOVPA*)&CDirectSoundStream_SetVelocityC_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetVelocityC (XRef)" + #endif + }, + // CDirectSoundStream::SetVelocityB (XREF) + { + (OOVPA*)&CDirectSoundStream_SetVelocityB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetVelocityB (XRef)" + #endif + }, + // CDirectSoundStream::SetVelocityA (XREF) + { + (OOVPA*)&CDirectSoundStream_SetVelocityA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetVelocityA (XRef)" + #endif + }, + // CDirectSoundStream::SetVelocity + { + (OOVPA*)&CDirectSoundStream_SetVelocity_1_0_3936, + + XTL::EmuCDirectSoundStream_SetVelocity, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetVelocity" + #endif + }, + // CDirectSoundBuffer::SetVelocity (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetVelocity_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetVelocity (XRef)" + #endif + }, + // IDirectSoundBuffer8_SetVelocity + { + (OOVPA*)&IDirectSoundBuffer8_SetVelocity_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetVelocity, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetVelocity" + #endif + }, + // CDirectSoundStream::SetConeOrientationC (XREF) + { + (OOVPA*)&CDirectSoundStream_SetConeOrientationC_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetConeOrientationC (XRef)" + #endif + }, + // CDirectSoundStream::SetConeOrientationB (XREF) + { + (OOVPA*)&CDirectSoundStream_SetConeOrientationB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetConeOrientationB (XRef)" + #endif + }, + // CDirectSoundStream::SetConeOrientationA (XREF) + { + (OOVPA*)&CDirectSoundStream_SetConeOrientationA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetConeOrientationA (XRef)" + #endif + }, + // CDirectSoundStream::SetConeOrientation + { + (OOVPA*)&CDirectSoundStream_SetConeOrientation_1_0_3936, + + XTL::EmuCDirectSoundStream_SetConeOrientation, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetConeOrientation" + #endif + }, + // CDirectSoundStream::SetPositionC (XREF) + { + (OOVPA*)&CDirectSoundStream_SetPositionC_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetPositionC (XRef)" + #endif + }, + // CDirectSoundStream::SetPositionB (XREF) + { + (OOVPA*)&CDirectSoundStream_SetPositionB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetPositionB (XRef)" + #endif + }, + // CDirectSoundStream::SetPositionA (XREF) + { + (OOVPA*)&CDirectSoundStream_SetPositionA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetPositionA (XRef)" + #endif + }, + // CDirectSoundStream::SetPosition + { + (OOVPA*)&CDirectSoundStream_SetPosition_1_0_3936, + + XTL::EmuCDirectSoundStream_SetPosition, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetPosition" + #endif + }, + // CDirectSoundBuffer::SetPosition (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetPosition_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetPosition (XRef)" + #endif + }, + // IDirectSoundBuffer8_SetPosition + { + (OOVPA*)&IDirectSoundBuffer8_SetPosition_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetPosition, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetPosition" + #endif + }, + // CDirectSoundStream::SetFrequencyB (XREF) + { + (OOVPA*)&CDirectSoundStream_SetFrequencyB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetFrequencyB (XRef)" + #endif + }, + // CDirectSoundStream::SetFrequencyA (XREF) + { + (OOVPA*)&CDirectSoundStream_SetFrequencyA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetFrequencyA (XRef)" + #endif + }, + // CDirectSoundStream::SetFrequency + { + (OOVPA*)&CDirectSoundStream_SetFrequency_1_0_3936, + + XTL::EmuCDirectSoundStream_SetFrequency, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetFrequency" + #endif + }, + // IDirectSoundBuffer8::SetFrequency + { + (OOVPA*)&IDirectSoundBuffer8_SetFrequency_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetFrequency, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetFrequency" + #endif + }, + // CMcpxVoiceClient::Set3dMode (XREF) + { + (OOVPA*)&CMcpxVoiceClient_Set3dMode_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::Set3dMode (XRef)" + #endif + }, + // CDirectSoundVoice::SetMode (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetMode_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMode (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetMode + { + (OOVPA*)&IDirectSoundBuffer8_SetMode_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetMode, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMode" + #endif + }, + // IDirectSoundStream::SetI3DL2SourceA (XREF) + /*{ + (OOVPA*)&IDirectSoundStream_SetI3DL2SourceA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundStream_SetI3DL2SourceA (XRef) ******************" + #endif + }, + // IDirectSoundStream::SetI3DL2Source + { + (OOVPA*)&IDirectSoundStream_SetI3DL2Source_1_0_3936, + + XTL::EmuIDirectSoundStream_SetI3DL2Source, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundStream_SetI3DL2Source ***********************" + #endif + },*/ + /* + // IDirectSoundStream::Unknown1 + { + (OOVPA*)&IDirectSoundStream_Unknown1_1_0_3936, + + XTL::EmuIDirectSoundStream_Unknown1, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundStream_Unknown1" + #endif + }, + //*/ + // IDirectSoundStream::SetHeadroomA (XREF) + { + (OOVPA*)&IDirectSoundStream_SetHeadroomA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundStream_SetHeadroomA (XRef)" + #endif + }, + // IDirectSoundStream::SetHeadroom + { + (OOVPA*)&IDirectSoundStream_SetHeadroom_1_0_3936, + + XTL::EmuIDirectSoundStream_SetHeadroom, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundStream_SetHeadroom" + #endif + }, + // IDirectSound8::SetOrientation + { + (OOVPA*)&IDirectSound8_SetOrientation_1_0_3936, + + XTL::EmuIDirectSound8_SetOrientation, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetOrientation" + #endif + }, + // CDirectSound::CommitDeferredSettingsB (XREF) + { + (OOVPA*)&CDirectSound_CommitDeferredSettingsB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_CommitDeferredSettingsB (XRef)" + #endif + }, + // CDirectSound::CommitDeferredSettingsA (XREF) + { + (OOVPA*)&CDirectSound_CommitDeferredSettingsA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_CommitDeferredSettingsA (XRef)" + #endif + }, + // CDirectSound::CommitDeferredSettings + { + (OOVPA*)&CDirectSound_CommitDeferredSettings_1_0_3936, + + XTL::EmuCDirectSound_CommitDeferredSettings, + + #ifdef _DEBUG_TRACE + "EmuCDirectSound_CommitDeferredSettings" + #endif + }, + // IDirectSound8::Release + { + (OOVPA*)&IDirectSound8_Release_1_0_3936, + + XTL::EmuIDirectSound8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_Release" + #endif + }, + // CDirectSound::SetDistanceFactorB (XREF) + { + (OOVPA*)&CDirectSound_SetDistanceFactorB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetDistanceFactorB (XRef)" + #endif + }, + // CDirectSound::SetDistanceFactorA (XREF) + { + (OOVPA*)&CDirectSound_SetDistanceFactorA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetDistanceFactorA (XRef)" + #endif + }, + // IDirectSound8::SetDistanceFactor + { + (OOVPA*)&IDirectSound8_SetDistanceFactor_1_0_3936, + + XTL::EmuIDirectSound8_SetDistanceFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetDistanceFactor" + #endif + }, + // CDirectSound::SetRolloffFactorB (XREF) + { + (OOVPA*)&CDirectSound_SetRolloffFactorB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetRolloffFactorB (XRef)" + #endif + }, + // CDirectSound::SetRolloffFactorA (XREF) + { + (OOVPA*)&CDirectSound_SetRolloffFactorA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetRolloffFactorA (XRef)" + #endif + }, + // IDirectSound8::SetRolloffFactor + { + (OOVPA*)&IDirectSound8_SetRolloffFactor_1_0_3936, + + XTL::EmuIDirectSound8_SetRolloffFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetRolloffFactor" + #endif + }, + // CDirectSound::SetMixBinHeadroomB (XREF) + { + (OOVPA*)&CDirectSound_SetMixBinHeadroomB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetMixBinHeadroomB (XRef)" + #endif + }, + // CDirectSound::SetMixBinHeadroomA (XREF) + { + (OOVPA*)&CDirectSound_SetMixBinHeadroomA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetMixBinHeadroomA (XRef)" + #endif + }, + // IDirectSound8::SetMixBinHeadroom + { + (OOVPA*)&IDirectSound8_SetMixBinHeadroom_1_0_3936, + + XTL::EmuIDirectSound8_SetMixBinHeadroom, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetMixBinHeadroom" + #endif + }, + // CDirectSound::SetPositionB (XREF) + { + (OOVPA*)&CDirectSound_SetPositionB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetPositionB (XRef)" + #endif + }, + // CDirectSound::SetPositionA (XREF) + { + (OOVPA*)&CDirectSound_SetPositionA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetPositionA (XRef)" + #endif + }, + // IDirectSound8::SetPosition + { + (OOVPA*)&IDirectSound8_SetPosition_1_0_3936, + + XTL::EmuIDirectSound8_SetPosition, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetPosition" + #endif + }, + // CDirectSound::SetVelocityB (XREF) + { + (OOVPA*)&CDirectSound_SetVelocityB_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetVelocityB (XRef)" + #endif + }, + // CDirectSound::SetVelocityA (XREF) + { + (OOVPA*)&CDirectSound_SetVelocityA_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetVelocityA (XRef)" + #endif + }, + // IDirectSound8::SetVelocity + { + (OOVPA*)&IDirectSound8_SetVelocity_1_0_3936, + + XTL::EmuIDirectSound8_SetVelocity, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetVelocity" + #endif + }, + // CDirectSound::SetAllParametersB (XREF) + { + (OOVPA*)&CMcpxAPU_Set3dParameters_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetAllParametersB (XRef)" + #endif + }, + // CDirectSound::SetAllParametersA (XREF) + { + (OOVPA*)&CDirectSound_SetAllParameters_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetAllParametersA (XRef)" + #endif + }, + // IDirectSound8::SetAllParameters + { + (OOVPA*)&IDirectSound_SetAllParameters_1_0_3936, + + XTL::EmuIDirectSound8_SetAllParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetAllParameters" + #endif + }, + // IDirectSound8::DownloadEffectsImage + { + (OOVPA*)&IDirectSound8_DownloadEffectsImage_1_0_3936, + + XTL::EmuIDirectSound8_DownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_DownloadEffectsImage" + #endif + }, + // CDirectSoundStream::SetMode + { + (OOVPA*)&CDirectSoundStream_SetMode_1_0_3936, + + XTL::EmuCDirectSoundStream_SetMode, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetMode" + #endif + }, + // DirectSound::CMcpxBuffer::Play (XREF) + /*{ + (OOVPA*)&DirectSound_CMcpxBuffer_Play_1_0_4361, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CMcpxBuffer::Play (XREF)" + #endif + },*/ + // CMcpxAPU::Set3dDopplerFactor (XREF) + { + (OOVPA*)&CMcpxAPU_Set3dDopplerFactor_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CMcpxAPU::Set3dDopplerFactor (XREF)" + #endif + }, + // CDirectSound::SetDopplerFactor (XREF) + { + (OOVPA*)&CDirectSound_SetDopplerFactor_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetDopplerFactor (XREF)" + #endif + }, + // IDirectSound_SetDopplerFactor + { + (OOVPA*)&IDirectSound_SetDopplerFactor_1_0_3936, + XTL::EmuIDirectSound8_SetDopplerFactor, + + #ifdef _DEBUG_TRACE + "IDirectSound_SetDopplerFactor" + #endif + }, + // CSensaura3d::GetFullHRTFFilterPair (XREF) + { + (OOVPA*)&CSensaura3d_GetFullHRTFFilterPair_1_0_3936, + 0, + + #ifdef _DEBUG_TRACE + "CSensaura3d::GetFullHRTFFilterPair (XREF)" + #endif + }, + // DirectSoundUseFullHRTF + { + (OOVPA*)&DirectSoundUseFullHRTF_1_0_3936, + XTL::EmuDirectSoundUseFullHRTF, + + #ifdef _DEBUG_TRACE + "DirectSoundUseFullHRTF" + #endif + }, + // CDirectSound::GetCaps (XREF) + { + (OOVPA*)&CDirectSound_GetCaps_1_0_3936, + 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::GetCaps (XREF)" + #endif + }, + // IDirectSound_GetCaps + { + (OOVPA*)&IDirectSound_GetCaps_1_0_3936, + XTL::EmuIDirectSound8_GetCaps, + + #ifdef _DEBUG_TRACE + "IDirectSound_GetCaps" + #endif + }, + // CDirectSoundVoice::SetConeAngles (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetConeAngles_1_0_3936, + 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetConeAngles (XREF)" + #endif + }, + // IDirectSoundBuffer_SetConeAngles + { + (OOVPA*)&IDirectSoundBuffer_SetConeAngles_1_0_3936, + XTL::EmuIDirectSoundBuffer8_SetConeAngles, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_SetConeAngles" + #endif + }, + // DirectSoundEnterCriticalSection (XREF) + { + (OOVPA*)&DirectSoundEnterCriticalSection_1_0_3936, + 0, + + #ifdef _DEBUG_TRACE + "DirectSoundEnterCriticalSection (XREF)" + #endif + }, + // DirectSoundUseFullHRTF + { + (OOVPA*)&DirectSoundUseFullHRTF2_1_0_3936, + XTL::EmuDirectSoundUseFullHRTF, + + #ifdef _DEBUG_TRACE + "DirectSoundUseFullHRTF" + #endif + }, + // DirectSound::CDirectSoundBuffer::PlayEx (XREF) + { + (OOVPA*)&CDirectSoundBuffer_PlayEx_1_0_3936, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::PlayEx (XREF)" + #endif + }, + // IDirectSoundBuffer_PlayEx + { + (OOVPA*)&IDirectSoundBuffer_PlayEx_1_0_3936, + XTL::EmuIDirectSoundBuffer8_PlayEx, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_PlayEx" + #endif + }, + // IDirectSound8::AddRef + { + (OOVPA*)&IDirectSound8_AddRef_1_0_3936, + + XTL::EmuIDirectSound8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_AddRef" + #endif + }, + // DirectSoundGetSampleTime + { + (OOVPA*)&DirectSoundGetSampleTime_1_0_3936, + XTL::EmuDirectSoundGetSampleTime, + + #ifdef _DEBUG_TRACE + "DirectSoundGetSampleTime" + #endif + }, + // IDirectSoundBuffer_AddRef + { + (OOVPA*)&IDirectSoundBuffer8_AddRef_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_AddRef" + #endif + }, + // CDirectSoundBuffer::SetMinDistance (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetMinDistance_1_0_3936, + 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMinDistance (XREF)" + #endif + }, + // IDirectSoundBuffer_SetMinDistance + { + (OOVPA*)&IDirectSoundBuffer_SetMinDistance_1_0_3936, + XTL::EmuIDirectSoundBuffer8_SetMinDistance, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMinDistance" + #endif + }, + // CDirectSoundBuffer::SetMaxDistance (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetMaxDistance_1_0_3936, + 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMaxDistance (XREF)" + #endif + }, + // IDirectSoundBuffer_SetMaxDistance + { + (OOVPA*)&IDirectSoundBuffer_SetMaxDistance_1_0_3936, + XTL::EmuIDirectSoundBuffer8_SetMaxDistance, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMaxDistance" + #endif + }, + // CMcpxVoiceClient::Commit3dSettings (XREF) + { + (OOVPA*)&CMcpxVoiceClient_Commit3dSettings_1_0_3936, + 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::Commit3dSettings (XREF)" + #endif + }, + // CMcpxVoiceClient::SetI3DL2Source (XREF) + { + (OOVPA*)&CMcpxVoiceClient_SetI3DL2Source_1_0_3936, + 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::SetI3DL2Source (XREF)" + #endif + }, + // CDirectSoundVoice::SetI3DL2Source (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetI3DL2Source_1_0_3936, + XTL::EmuCDirectSoundStream_SetI3DL2Source, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetI3DL2Source (XREF)" + #endif + }, + // IDirectSoundBuffer_SetI3DL2Source + { + (OOVPA*)&IDirectSoundBuffer_SetI3DL2Source_1_0_3936, + XTL::EmuIDirectSoundBuffer8_SetI3DL2Source, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetI3DL2Source" + #endif + }, + // CDirectSoundVoice::SetMixBinVolumes + { + (OOVPA*)&CDirectSoundVoice_SetMixBinVolumes_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice_SetMixBinVolumes (XREF)" + #endif + }, + // IDirectSoundBuffer_SetMixBinVolumes + { + (OOVPA*)&IDirectSoundBuffer_SetMixBinVolumes_1_0_3936, + XTL::EmuIDirectSoundBuffer8_SetMixBinVolumes, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMixBinVolumes" + #endif + }, + // CDirectSound_SetI3DL2Listener + { + (OOVPA*)&CDirectSound_SetI3DL2Listener_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetI3DL2Listener (XREF)" + #endif + }, + // IDirectSound8_SetI3DL2Listener + { + (OOVPA*)&IDirectSound_SetI3DL2Listener_1_0_3936, + + XTL::EmuIDirectSound8_SetI3DL2Listener, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetI3DL2Listener" + #endif + }, + // DirectSound::CDirectSound::EnableHeadphones (XREF) + { + (OOVPA*)&CDirectSound_EnableHeadphones_1_0_3936, + 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::EnableHeadphones (XREF)" + #endif + }, + // EmuIDirectSound_EnableHeadphones + { + (OOVPA*)&IDirectSound_EnableHeadphones_1_0_3936, + XTL::EmuIDirectSound_EnableHeadphones, + + #ifdef _DEBUG_TRACE + "IDirectSound_EnableHeadphones" + #endif + }, + // CDirectSoundStream::SetMixBinVolumes + { + (OOVPA*)&CDirectSoundStream_SetMixBinVolumes_1_0_3936, + XTL::EmuCDirectSoundStream_SetMixBinVolumes, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_SetMixBinVolumes" + #endif + }, + // CDirectSoundStream::SetI3DL2Source + /*{ + (OOVPA*)&CDirectSoundStream_SetI3DL2Source_1_0_3936, + + XTL::EmuCDirectSoundStream_SetI3DL2Source, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetI3DL2Source" + #endif + },*/ + // CDirectSoundBuffer_SetNotificationPositions + { + (OOVPA*)&CDirectSoundBuffer_SetNotificationPositions_1_0_3936, 0, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundBuffer_SetNotificationPositions" + #endif + }, + // IDirectSoundBuffer_SetNotificationPositions + { + (OOVPA*)&IDirectSoundBuffer_SetNotificationPositions_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetNotificationPositions, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer_SetNotificationPositions" + #endif + }, + // CDirectSoundStream::Pause + { + (OOVPA*)&CDirectSoundStream_Pause_1_0_3936, + + XTL::EmuCDirectSoundStream_Pause, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_Pause" + #endif + }, +}; + +// ****************************************************************** +// * DSound_1_0_3936_SIZE +// ****************************************************************** +uint32 DSound_1_0_3936_SIZE = sizeof(DSound_1_0_3936); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4134.h b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4134.h new file mode 100644 index 000000000..5939157d4 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4134.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.4134.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_1_0_4134_H +#define DSOUND_1_0_4134_H + +#include "OOVPA.h" + +extern OOVPATable DSOUND_1_0_4134[]; +extern uint32 DSOUND_1_0_4134_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4134.inl b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4134.inl new file mode 100644 index 000000000..ede14febd --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4134.inl @@ -0,0 +1,716 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4134.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * DirectSoundCreate +// ****************************************************************** +SOOVPA<9> DirectSoundCreate_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // DirectSoundCreate+0x0B : movzx esi, al + { 0x0B, 0x0F }, // (Offset,Value)-Pair #1 + { 0x0C, 0xB6 }, // (Offset,Value)-Pair #2 + { 0x0D, 0xF0 }, // (Offset,Value)-Pair #3 + + // DirectSoundCreate+0x12 : call [addr] + { 0x12, 0xE8 }, // (Offset,Value)-Pair #4 + + // DirectSoundCreate+0x1B : jl +0x13 + { 0x1B, 0x7C }, // (Offset,Value)-Pair #5 + { 0x1C, 0x13 }, // (Offset,Value)-Pair #6 + + // DirectSoundCreate+0x27 : sbb ecx, ecx + { 0x27, 0x1B }, // (Offset,Value)-Pair #7 + { 0x28, 0xC9 }, // (Offset,Value)-Pair #8 + + // DirectSoundCreate+0x43 : leave + { 0x43, 0xC9 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirectSound8_CreateSoundBuffer +// ****************************************************************** +SOOVPA<9> IDirectSound8_CreateSoundBuffer_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSound8_CreateSoundBuffer+0x2A : push 0x24 + { 0x2A, 0x6A }, // (Offset,Value)-Pair #1 + { 0x2B, 0x24 }, // (Offset,Value)-Pair #2 + + // IDirectSound8_CreateSoundBuffer+0x3C : call [addr] + { 0x3C, 0xE8 }, // (Offset,Value)-Pair #3 + + // IDirectSound8_CreateSoundBuffer+0x4A : and esi, 0x7FF8FFF2 + { 0x4A, 0x81 }, // (Offset,Value)-Pair #4 + { 0x4B, 0xE6 }, // (Offset,Value)-Pair #5 + { 0x4C, 0xF2 }, // (Offset,Value)-Pair #6 + { 0x4D, 0xFF }, // (Offset,Value)-Pair #7 + { 0x4E, 0xF8 }, // (Offset,Value)-Pair #8 + { 0x4F, 0x7F }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetHeadroom +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetHeadroom_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundVoice_SetHeadroom, // Xref Is Saved + XRefNotUsed, + + { + { 0x03, 0x04 }, + { 0x08, 0x48 }, + { 0x0D, 0x24 }, + { 0x12, 0x48 }, + { 0x17, 0x8B }, + { 0x1F, 0x5E }, + { 0x21, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetHeadroom +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetHeadroom_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetHeadroom, // Xref Is Saved + 1, + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetHeadroom +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetHeadroom_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_Lock +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_Lock_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x75 }, + { 0x0A, 0x75 }, + { 0x10, 0x1C }, + { 0x16, 0x18 }, + { 0x1C, 0x1B }, + { 0x22, 0xC8 }, + { 0x2C, 0x5D }, + { 0x2E, 0x20 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetVolume +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetVolume_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundVoice_SetVolume, // Xref Is Saved + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x10 }, + { 0x0A, 0x08 }, + { 0x0E, 0x89 }, + { 0x12, 0x49 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetVolume +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetVolume_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetVolume, // Xref Is Saved + 1, + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetVolume }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetVolume +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetVolume_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetVolume }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetI3DL2Listener +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSound_SetI3DL2Listener_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETI3DL2LISTENER, // Xref Is Saved + XRefNotUsed, + + { + { 0x1E, 0x15 }, + { 0x3E, 0x88 }, + { 0x5E, 0x5A }, + { 0x7E, 0x89 }, + { 0x9E, 0x20 }, + { 0xBE, 0x00 }, + { 0xDE, 0x75 }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetI3DL2Listener +// ****************************************************************** +SOOVPA<9> IDirectSound_SetI3DL2Listener_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x19, XREF_DSSETI3DL2LISTENER }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetBufferData +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundBuffer_SetBufferData_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETBUFFERDATA2, // Xref Is Saved + XRefNotUsed, + + { + { 0x14, 0x0C }, + { 0x2A, 0xB6 }, + { 0x40, 0xB8 }, + { 0x56, 0x8B }, + { 0x6C, 0x8B }, + { 0x82, 0x7C }, + { 0x98, 0x5E }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetBufferData +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_SetBufferData_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x19, XREF_DSSETBUFFERDATA2 }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::GetEffectData +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSound_GetEffectData_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSound_GetEffectData, // Xref Is Saved + XRefNotUsed, + + { + { 0x0A, 0x3D }, + { 0x16, 0xF6 }, + { 0x24, 0xB8 }, + { 0x2E, 0x8B }, + { 0x3A, 0x14 }, + { 0x46, 0x85 }, + { 0x52, 0x15 }, + { 0x5E, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirectSound_GetEffectData +// ****************************************************************** +SOOVPA<9> IDirectSound_GetEffectData_1_0_4134 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x1F, XREF_DirectSound_CDirectSound_GetEffectData }, + + { 0x03, 0xFF }, + { 0x08, 0x08 }, + { 0x0D, 0xC8 }, + { 0x12, 0xC0 }, + { 0x17, 0xF7 }, + { 0x1C, 0xC8 }, + { 0x23, 0x5D }, + { 0x26, 0x00 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoiceSettings::SetMixBins +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoiceSettings_SetMixBins_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETMIXBINSC, // Xref Is Saved + XRefNotUsed, + + { + { 0x0E, 0xB8 }, + { 0x22, 0x83 }, + { 0x2E, 0x71 }, + { 0x3E, 0xB6 }, + { 0x4E, 0x41 }, + { 0x5E, 0x00 }, + { 0x6E, 0x00 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetMixBins +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundVoice_SetMixBins_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETMIXBINSB, // Xref Is Saved + 1, + + { + { 0x0D, XREF_DSSETMIXBINSC }, + + { 0x02, 0x74 }, + { 0x06, 0x74 }, + { 0x0A, 0x4E }, + { 0x11, 0x8B }, + { 0x12, 0x4E }, + { 0x19, 0x5E }, + { 0x1A, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetMixBins +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetMixBins_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETMIXBINSA, // Xref Is Saved + 1, + + { + { 0x32, XREF_DSSETMIXBINSB }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMixBins +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetMixBins_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_DSSETMIXBINSA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSoundCreate_1_0_4134 +// ****************************************************************** +OOVPATable DSound_1_0_4134[] = +{ + // DirectSoundCreate + { + (OOVPA*)&DirectSoundCreate_1_0_4134, + + XTL::EmuDirectSoundCreate, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreate" + #endif + }, + // IDirectSound8::AddRef (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_AddRef_1_0_3936, + + XTL::EmuIDirectSound8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_AddRef" + #endif + }, + // IDirectSound8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_Release_1_0_3936, + + XTL::EmuIDirectSound8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_Release" + #endif + }, + // IDirectSound8::DownloadEffectsImage (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_DownloadEffectsImage_1_0_3936, + + XTL::EmuIDirectSound8_DownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_DownloadEffectsImage" + #endif + }, + // IDirectSound8::CreateSoundBuffer + { + (OOVPA*)&IDirectSound8_CreateSoundBuffer_1_0_4134, + + XTL::EmuIDirectSound8_CreateSoundBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateSoundBuffer" + #endif + }, + // DirectSound::CDirectSoundVoice::SetHeadroom (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetHeadroom_1_0_4134, + 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetHeadroom (XREF)" + #endif + }, + // DirectSound::CDirectSoundBuffer::SetHeadroom (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetHeadroom_1_0_4134, + 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetHeadroom (XREF)" + #endif + }, + // IDirectSoundBuffer_SetHeadroom + { + (OOVPA*)&IDirectSoundBuffer_SetHeadroom_1_0_4134, + XTL::EmuIDirectSoundBuffer8_SetHeadroom, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetHeadRoom" + #endif + }, + // IDirectSoundBuffer8::Lock + { + (OOVPA*)&IDirectSoundBuffer_Lock_1_0_4134, + + XTL::EmuIDirectSoundBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Lock" + #endif + }, + // DirectSound::CDirectSoundVoice::SetVolume (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetVolume_1_0_4134,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetVolume (XREF)" + #endif + }, + // DirectSound::CDirectSoundBuffer::SetVolume (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetVolume_1_0_4134,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetVolume (XREF)" + #endif + }, + // IDirectSoundBuffer_SetVolume (XREF) + { + (OOVPA*)&IDirectSoundBuffer_SetVolume_1_0_4134, + XTL::EmuIDirectSoundBuffer8_SetVolume, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetVolume" + #endif + }, + // CDirectSound_SetI3DL2Listener + { + (OOVPA*)&DirectSound_CDirectSound_SetI3DL2Listener_1_0_4134, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetI3DL2Listener (XREF)" + #endif + }, + // IDirectSound8_SetI3DL2Listener + { + (OOVPA*)&IDirectSound_SetI3DL2Listener_1_0_4134, + + XTL::EmuIDirectSound8_SetI3DL2Listener, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetI3DL2Listener" + #endif + }, + // CDirectSound_GetEffectData + { + (OOVPA*)&DirectSound_CDirectSound_GetEffectData_1_0_4134, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::GetEffectData" + #endif + }, + // IDirectSound8_SetI3DL2Listener + { + (OOVPA*)&IDirectSound_GetEffectData_1_0_4134, + + XTL::EmuIDirectSound8_GetEffectData, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_GetEffectData" + #endif + }, + // CDirectSoundBuffer::SetBufferData + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetBufferData_1_0_4134, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_SetBufferData (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetBufferData + { + (OOVPA*)&IDirectSoundBuffer_SetBufferData_1_0_4134, + + XTL::EmuIDirectSoundBuffer8_SetBufferData, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetBufferData" + #endif + }, + // IDirectSound8_CreateStream + { + (OOVPA*)&IDirectSound8_CreateStream_1_0_3936, + + XTL::EmuIDirectSound8_CreateStream, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateStream" + #endif + }, + // CDirectSoundVoiceSettings::SetMixBins + { + (OOVPA*)&DirectSound_CDirectSoundVoiceSettings_SetMixBins_1_0_4134, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoiceSettings::SetMixBins (XREF)" + #endif + }, + // CDirectSoundVoice::SetMixBins + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetMixBins_1_0_4134, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMixBins (XREF)" + #endif + }, + // CDirectSoundBuffer::SetMixBins + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetMixBins_1_0_4134, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMixBins (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetMixBins + { + (OOVPA*)&IDirectSoundBuffer_SetMixBins_1_0_4134, + + XTL::EmuIDirectSoundBuffer8_SetMixBins, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMixBins" + #endif + }, +}; + +// ****************************************************************** +// * DSound_1_0_4134_SIZE +// ****************************************************************** +uint32 DSound_1_0_4134_SIZE = sizeof(DSound_1_0_4134); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4361.h b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4361.h new file mode 100644 index 000000000..d15cc26c0 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4361.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.4361.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_1_0_4361_H +#define DSOUND_1_0_4361_H + +#include "OOVPA.h" + +extern OOVPATable DSOUND_1_0_4361[]; +extern uint32 DSOUND_1_0_4361_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4361.inl b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4361.inl new file mode 100644 index 000000000..088d72927 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4361.inl @@ -0,0 +1,1302 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4361.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * DirectSoundCreate +// ****************************************************************** +SOOVPA<9> DirectSoundCreate_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // DirectSoundCreate+0x0B : movzx esi, al + { 0x0B, 0x0F }, // (Offset,Value)-Pair #1 + { 0x0C, 0xB6 }, // (Offset,Value)-Pair #2 + { 0x0D, 0xF0 }, // (Offset,Value)-Pair #3 + + // DirectSoundCreate+0x12 : call [addr] + { 0x12, 0xE8 }, // (Offset,Value)-Pair #4 + + // DirectSoundCreate+0x1B : jl +0x13 + { 0x1B, 0x7C }, // (Offset,Value)-Pair #5 + { 0x1C, 0x13 }, // (Offset,Value)-Pair #6 + + // DirectSoundCreate+0x27 : sbb ecx, ecx + { 0x27, 0x1B }, // (Offset,Value)-Pair #7 + { 0x28, 0xC9 }, // (Offset,Value)-Pair #8 + + // DirectSoundCreate+0x43 : leave + { 0x43, 0xC9 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * IDirectSound8_CreateSoundBuffer +// ****************************************************************** +SOOVPA<9> IDirectSound8_CreateSoundBuffer_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSound8_CreateSoundBuffer+0x2A : push 0x24 + { 0x2A, 0x6A }, // (Offset,Value)-Pair #1 + { 0x2B, 0x24 }, // (Offset,Value)-Pair #2 + + // IDirectSound8_CreateSoundBuffer+0x3C : call [addr] + { 0x3C, 0xE8 }, // (Offset,Value)-Pair #3 + + // IDirectSound8_CreateSoundBuffer+0x4A : and esi, 0x7FF8FFF2 + { 0x4A, 0x81 }, // (Offset,Value)-Pair #4 + { 0x4B, 0xE6 }, // (Offset,Value)-Pair #5 + { 0x4C, 0xF2 }, // (Offset,Value)-Pair #6 + { 0x4D, 0xFF }, // (Offset,Value)-Pair #7 + { 0x4E, 0xF8 }, // (Offset,Value)-Pair #8 + { 0x4F, 0x7F }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSound::CreateSoundStream +// ****************************************************************** +SOOVPA<14> CDirectSound_CreateSoundStream_1_0_4361 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XREF_DSCREATESOUNDSTREAM, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_CreateSoundStream+0x23 : mov eax, 0x80004005 + { 0x23, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x24, 0x05 }, // (Offset,Value)-Pair #2 + { 0x25, 0x40 }, // (Offset,Value)-Pair #3 + { 0x27, 0x80 }, // (Offset,Value)-Pair #4 + + // CDirectSound_CreateSoundStream+0x2A : push 0x28 + { 0x2A, 0x6A }, // (Offset,Value)-Pair #5 + { 0x2B, 0x28 }, // (Offset,Value)-Pair #6 + + // CDirectSound_CreateSoundStream+0x4A : add esi, 0x7FF8FFF2 + { 0x4A, 0x81 }, // (Offset,Value)-Pair #7 + { 0x4B, 0xE6 }, // (Offset,Value)-Pair #8 + { 0x4C, 0xF2 }, // (Offset,Value)-Pair #9 + { 0x4D, 0xFF }, // (Offset,Value)-Pair #10 + { 0x4E, 0xF8 }, // (Offset,Value)-Pair #11 + { 0x4F, 0x7F }, // (Offset,Value)-Pair #12 + + // CDirectSound_CreateSoundStream+0x8E : retn 0x10 + { 0x8E, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x8F, 0x10 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * DirectSoundCreateStream +// ****************************************************************** +SOOVPA<12> DirectSoundCreateStream_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, // XRef Is Used + + { + // DirectSoundCreateStream+0x2F : call [CDirectSound::CreateSoundStream] + { 0x2F, XREF_DSCREATESOUNDSTREAM }, // (Offset,Value)-Pair #1 + + // DirectSoundCreateStream+0x04 : and [ebp-0x04], 0 + { 0x04, 0x83 }, // (Offset,Value)-Pair #2 + { 0x05, 0x65 }, // (Offset,Value)-Pair #3 + { 0x06, 0xFC }, // (Offset,Value)-Pair #4 + + // DirectSoundCreateStream+0x08 : push ebx; push esi; push edi + { 0x08, 0x53 }, // (Offset,Value)-Pair #5 + { 0x09, 0x56 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x57 }, // (Offset,Value)-Pair #7 + + // DirectSoundCreateStream+0x3C : call dword ptr [eax+8] + { 0x3C, 0xFF }, // (Offset,Value)-Pair #8 + { 0x3D, 0x50 }, // (Offset,Value)-Pair #9 + { 0x3E, 0x08 }, // (Offset,Value)-Pair #10 + + // DirectSoundCreateStream+0x54 : retn 0x08 + { 0x54, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x55, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CMcpxStream_Pause +// ****************************************************************** +SOOVPA<11> CMcpxStream_Pause_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSTREAMPAUSE, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxStream_Pause+0x1E : or eax, 4 + { 0x1E, 0x83 }, // (Offset,Value)-Pair #1 + { 0x1F, 0xC8 }, // (Offset,Value)-Pair #2 + { 0x20, 0x04 }, // (Offset,Value)-Pair #3 + + // CMcpxStream_Pause+0x21 : jmp +0x0D + { 0x21, 0xEB }, // (Offset,Value)-Pair #4 + { 0x22, 0x0D }, // (Offset,Value)-Pair #5 + + // CMcpxStream_Pause+0x29 : movzx eax, word ptr [esi+0x12] + { 0x29, 0x0F }, // (Offset,Value)-Pair #6 + { 0x2A, 0xB7 }, // (Offset,Value)-Pair #7 + { 0x2B, 0x46 }, // (Offset,Value)-Pair #8 + { 0x2C, 0x12 }, // (Offset,Value)-Pair #9 + + // CMcpxStream_Pause+0x44 : retn 0x04 + { 0x44, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x45, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_Pause +// ****************************************************************** +SOOVPA<11> CDirectSoundStream_Pause_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_Pause+0x35 : call [CMcpxStream::Pause] + { 0x35, XREF_DSSTREAMPAUSE }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_Pause+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 + + // CDirectSoundStream_Pause+0x2C : mov ecx, [eax+0x24] + { 0x2C, 0x8B }, // (Offset,Value)-Pair #7 + { 0x2D, 0x48 }, // (Offset,Value)-Pair #8 + { 0x2E, 0x24 }, // (Offset,Value)-Pair #9 + + // CDirectSoundStream_Pause+0x4E : retn 0x08 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x4F, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetPlayRegion +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer8_SetPlayRegion_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + // NOTE: This is actually intercepting CDirectSoundBuffer::SetPlayRegion(ULONG, ULONG) + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSoundBuffer8_SetPlayRegion+0x10 : movzx edi, al + { 0x10, 0x0F }, // (Offset,Value)-Pair #1 + { 0x11, 0xB6 }, // (Offset,Value)-Pair #2 + { 0x12, 0xF8 }, // (Offset,Value)-Pair #3 + + // IDirectSoundBuffer8_SetPlayRegion+0x17 : jz +0x0B + { 0x17, 0x74 }, // (Offset,Value)-Pair #4 + { 0x18, 0x0B }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer8_SetPlayRegion+0x46 : mov esi, 0x88780032 + { 0x46, 0xBE }, // (Offset,Value)-Pair #6 + { 0x47, 0x32 }, // (Offset,Value)-Pair #7 + { 0x48, 0x00 }, // (Offset,Value)-Pair #8 + { 0x49, 0x78 }, // (Offset,Value)-Pair #9 + { 0x4A, 0x88 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetLoopRegion +// ****************************************************************** +SOOVPA<11> IDirectSoundBuffer8_SetLoopRegion_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + // NOTE: This is actually intercepting CDirectSoundBuffer::SetLoopRegion(ULONG, ULONG) + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSoundBuffer8_SetLoopRegion+0x24 : mov eax, 0x80004005 + { 0x24, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x25, 0x05 }, // (Offset,Value)-Pair #2 + { 0x26, 0x40 }, // (Offset,Value)-Pair #3 + { 0x27, 0x00 }, // (Offset,Value)-Pair #4 + { 0x28, 0x80 }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer8_SetLoopRegion+0x29 : jmp +0x55 + { 0x29, 0xEB }, // (Offset,Value)-Pair #6 + { 0x2A, 0x55 }, // (Offset,Value)-Pair #7 + + // IDirectSoundBuffer8_SetLoopRegion+0x56 : sub ecx, esi + { 0x56, 0x2B }, // (Offset,Value)-Pair #8 + { 0x57, 0xCE }, // (Offset,Value)-Pair #9 + + // IDirectSoundBuffer8_SetLoopRegion+0x82 : retn 0x0C + { 0x82, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x83, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetVolume +// ****************************************************************** +SOOVPA<11> IDirectSoundBuffer8_SetVolume_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + // NOTE: This is actually intercepting CDirectSoundBuffer::SetVolume(ULONG) + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSoundBuffer8_SetVolume+0x0D : movzx esi, al + { 0x0D, 0x0F }, // (Offset,Value)-Pair #1 + { 0x0E, 0xB6 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xF0 }, // (Offset,Value)-Pair #3 + + // IDirectSoundBuffer8_SetVolume+0x26 : jmp +0x22 + { 0x26, 0xEB }, // (Offset,Value)-Pair #4 + { 0x27, 0x22 }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer8_SetVolume+0x2D : push [esp+0x10] + { 0x2D, 0xFF }, // (Offset,Value)-Pair #6 + { 0x2E, 0x74 }, // (Offset,Value)-Pair #7 + { 0x2F, 0x24 }, // (Offset,Value)-Pair #8 + { 0x30, 0x10 }, // (Offset,Value)-Pair #9 + + // IDirectSoundBuffer8_SetVolume+0x4B : retn 0x08 + { 0x4B, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x4C, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CMcpxBuffer_SetBufferData +// ****************************************************************** +SOOVPA<9> CMcpxBuffer_SetBufferData_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSSETBUFFERDATA, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_SetBufferData+0x1E : cmp eax, ebx + { 0x1E, 0x3B }, // (Offset,Value)-Pair #1 + { 0x1F, 0xC3 }, // (Offset,Value)-Pair #2 + + // CMcpxBuffer_SetBufferData+0x20 : jz +0x0C + { 0x20, 0x74 }, // (Offset,Value)-Pair #3 + { 0x21, 0x0C }, // (Offset,Value)-Pair #4 + + // CMcpxBuffer_SetBufferData+0x45 : mov [esi+0xB8], ecx + { 0x45, 0x89 }, // (Offset,Value)-Pair #5 + { 0x46, 0x8E }, // (Offset,Value)-Pair #6 + { 0x47, 0xB8 }, // (Offset,Value)-Pair #7 + + // CMcpxBuffer_SetBufferData+0x89 : retn 0x08 + { 0x89, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x8A, 0x08 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer_SetBufferData +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_SetBufferData_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSSETBUFFERDATA2, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetBufferData+0x7A : call [CMcpxBuffer::SetBufferData] + { 0x7A, XREF_DSSETBUFFERDATA }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_SetBufferData+0x40 : mov eax, 0x80004005 + { 0x40, 0xB8 }, // (Offset,Value)-Pair #2 + { 0x41, 0x05 }, // (Offset,Value)-Pair #3 + { 0x42, 0x40 }, // (Offset,Value)-Pair #4 + { 0x43, 0x00 }, // (Offset,Value)-Pair #5 + { 0x44, 0x80 }, // (Offset,Value)-Pair #6 + + // CDirectSoundBuffer_SetBufferData+0x5F : jz +0x33 + { 0x5F, 0x74 }, // (Offset,Value)-Pair #7 + { 0x60, 0x33 }, // (Offset,Value)-Pair #8 + + // CDirectSoundBuffer_SetBufferData+0xAB : retn 0x0C + { 0xAB, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xAC, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetBufferData +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetBufferData_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetBufferData+0x19 : call [CDirectSoundBuffer::SetBufferData] + { 0x19, XREF_DSSETBUFFERDATA2 }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetBufferData+0x0E : add eax, 0xFFFFFFE4 + { 0x0E, 0x83 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x10, 0xE4 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_SetBufferData+0x13 : sbb ecx, ecx + { 0x13, 0x1B }, // (Offset,Value)-Pair #5 + { 0x14, 0xC9 }, // (Offset,Value)-Pair #6 + + // IDirectSoundBuffer8_SetBufferData+0x15 : and ecx, eax + { 0x15, 0x23 }, // (Offset,Value)-Pair #7 + { 0x16, 0xC8 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * CMcpxBuffer_SetCurrentPosition +// ****************************************************************** +SOOVPA<9> CMcpxBuffer_SetCurrentPosition_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_SETCURRENTPOSITION, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_SetCurrentPosition+0x11 : mov al, [esi+12] + { 0x11, 0x8A }, // (Offset,Value)-Pair #1 + { 0x12, 0x46 }, // (Offset,Value)-Pair #2 + { 0x13, 0x12 }, // (Offset,Value)-Pair #3 + + // CMcpxBuffer_SetCurrentPosition+0x5F : jb +0x10 + { 0x5F, 0x72 }, // (Offset,Value)-Pair #4 + { 0x60, 0x10 }, // (Offset,Value)-Pair #5 + + // CMcpxBuffer_SetCurrentPosition+0x86 : movzx eax, byte ptr [esi+0x64] + { 0x86, 0x0F }, // (Offset,Value)-Pair #6 + { 0x87, 0xB6 }, // (Offset,Value)-Pair #7 + { 0x88, 0x46 }, // (Offset,Value)-Pair #8 + { 0x89, 0x64 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer_SetCurrentPosition +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_SetCurrentPosition_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_SETCURRENTPOSITION2, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetCurrentPosition+0x35 : call [CMcpxBuffer::SetCurrentPosition] + { 0x35, XREF_SETCURRENTPOSITION }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_SetCurrentPosition+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 + + // CDirectSoundBuffer_SetCurrentPosition+0x3D : jz +0x0B + { 0x3D, 0x74 }, // (Offset,Value)-Pair #7 + { 0x3E, 0x0B }, // (Offset,Value)-Pair #8 + + // CDirectSoundBuffer_SetCurrentPosition+0x3D : retn 0x08 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x4F, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetCurrentPosition +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetCurrentPosition_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetCurrentPosition+0x15 : call [CDirectSoundBuffer::SetCurrentPosition] + { 0x15, XREF_SETCURRENTPOSITION2 }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetCurrentPosition+0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #2 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_SetCurrentPosition+0x0F : sbb ecx, ecx + { 0x0F, 0x1B }, // (Offset,Value)-Pair #5 + { 0x10, 0xC9 }, // (Offset,Value)-Pair #6 + + // IDirectSoundBuffer8_SetCurrentPosition+0x11 : and ecx, eax + { 0x11, 0x23 }, // (Offset,Value)-Pair #7 + { 0x12, 0xC8 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * CMcpxBuffer_GetCurrentPosition +// ****************************************************************** +SOOVPA<11> CMcpxBuffer_GetCurrentPosition_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_GETCURRENTPOSITION, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_GetCurrentPosition+0x0E : lea ecx, [ebp-0x08] + { 0x0E, 0x8D }, // (Offset,Value)-Pair #1 + { 0x0F, 0x4D }, // (Offset,Value)-Pair #2 + { 0x10, 0xF8 }, // (Offset,Value)-Pair #3 + + // CMcpxBuffer_GetCurrentPosition+0x31 : jz +0x02 + { 0x31, 0x74 }, // (Offset,Value)-Pair #4 + { 0x32, 0x02 }, // (Offset,Value)-Pair #5 + + // CMcpxBuffer_GetCurrentPosition+0xA0 : div dword ptr [ecx+0xBC] + { 0xA0, 0xF7 }, // (Offset,Value)-Pair #6 + { 0xA1, 0xB1 }, // (Offset,Value)-Pair #7 + { 0xA2, 0xBC }, // (Offset,Value)-Pair #8 + + // CMcpxBuffer_GetCurrentPosition+0xD6 : retn 0x08 + { 0xD6, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xD7, 0x08 }, // (Offset,Value)-Pair #10 + { 0xD8, 0x00 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer_GetCurrentPosition +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_GetCurrentPosition_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_GETCURRENTPOSITION2, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_GetCurrentPosition+0x39 : call [CMcpxBuffer::GetCurrentPosition] + { 0x39, XREF_GETCURRENTPOSITION }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_GetCurrentPosition+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 + + // CDirectSoundBuffer_GetCurrentPosition+0x41 : jz +0x0B + { 0x41, 0x74 }, // (Offset,Value)-Pair #7 + { 0x42, 0x0B }, // (Offset,Value)-Pair #8 + + // CDirectSoundBuffer_GetCurrentPosition+0x3D : retn 0x08 + { 0x52, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x53, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CMcpxBuffer_Play +// ****************************************************************** +SOOVPA<11> CMcpxBuffer_Play_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSOUNDPLAY, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_Play+0x0E : cmp ebx, edi + { 0x0E, 0x3B }, // (Offset,Value)-Pair #1 + { 0x0F, 0xDF }, // (Offset,Value)-Pair #2 + + // CMcpxBuffer_Play+0x1C : jz +0x09 + { 0x1C, 0x74 }, // (Offset,Value)-Pair #3 + { 0x1D, 0x09 }, // (Offset,Value)-Pair #4 + + // CMcpxBuffer_Play+0x30 : test byte ptr [esi+0x12], 2 + { 0x30, 0xF6 }, // (Offset,Value)-Pair #5 + { 0x31, 0x46 }, // (Offset,Value)-Pair #6 + { 0x32, 0x12 }, // (Offset,Value)-Pair #7 + { 0x33, 0x02 }, // (Offset,Value)-Pair #8 + + // CMcpxBuffer_Play+0x71 : call dword ptr [eax+0x18] + { 0x71, 0xFF }, // (Offset,Value)-Pair #9 + { 0x72, 0x50 }, // (Offset,Value)-Pair #10 + { 0x73, 0x18 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer_Play +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_Play_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSOUNDPLAY2, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_Play+0x35 : call [CMcpxBuffer::Play] + { 0x35, XREF_DSOUNDPLAY }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_Play+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 + + // CDirectSoundBuffer_Play+0x3D : jz +0x0B + { 0x3D, 0x74 }, // (Offset,Value)-Pair #7 + { 0x3E, 0x0B }, // (Offset,Value)-Pair #8 + + // CDirectSoundBuffer_Play+0x4E : retn 0x10 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x4F, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_Play +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_Play_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_Play+0x1D : call [CDirectSoundBuffer::Play] + { 0x1D, XREF_DSOUNDPLAY2 }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_Play+0x0E : push [esp+0x10] + { 0x0E, 0xFF }, // (Offset,Value)-Pair #2 + { 0x0F, 0x74 }, // (Offset,Value)-Pair #3 + { 0x10, 0x24 }, // (Offset,Value)-Pair #4 + { 0x11, 0x10 }, // (Offset,Value)-Pair #5 + + // IDirectSoundBuffer8_Play+0x17 : sbb ecx, ecx + { 0x17, 0x1B }, // (Offset,Value)-Pair #6 + { 0x18, 0xC9 }, // (Offset,Value)-Pair #7 + + // IDirectSoundBuffer8_Play+0x19 : and ecx, eax + { 0x19, 0x23 }, // (Offset,Value)-Pair #8 + { 0x1A, 0xC8 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CMcpxBuffer_Stop +// ****************************************************************** +SOOVPA<9> CMcpxBuffer_Stop_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSOUNDSTOP, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_Stop+0x0E : cmp al, 3 + { 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+0x70 : mov eax, [esi+0x90] + { 0x70, 0x8B }, // (Offset,Value)-Pair #7 + { 0x71, 0x86 }, // (Offset,Value)-Pair #8 + { 0x72, 0x90 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer_Stop +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_Stop_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSOUNDSTOP2, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_Stop+0x33 : call [CMcpxBuffer::Stop] + { 0x33, XREF_DSOUNDSTOP }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_Stop+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 + + // CDirectSoundBuffer_Stop+0x3B : jz +0x0B + { 0x3B, 0x74 }, // (Offset,Value)-Pair #7 + { 0x3C, 0x0B }, // (Offset,Value)-Pair #8 + + // CDirectSoundBuffer_Stop+0x4C : retn 0x04 + { 0x4C, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x4D, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_Stop +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_Stop_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_Stop+0x11 : call [CDirectSoundBuffer::Stop] + { 0x11, XREF_DSOUNDSTOP2 }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_Stop+0x06 : and eax, 0xFFFFFFE4 + { 0x06, 0x83 }, // (Offset,Value)-Pair #2 + { 0x07, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x08, 0xE4 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_Stop+0x0B : sbb ecx, ecx + { 0x0B, 0x1B }, // (Offset,Value)-Pair #5 + { 0x0C, 0xC9 }, // (Offset,Value)-Pair #6 + + // IDirectSoundBuffer8_Stop+0x0D : and ecx, eax + { 0x0D, 0x23 }, // (Offset,Value)-Pair #7 + { 0x0E, 0xC8 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoiceSettings::SetMixBinVolumes +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETMIXBINVOLUMESC, // Xref Is Saved + XRefNotUsed, + + { + { 0x03, 0x24 }, + { 0x08, 0x16 }, + { 0x0D, 0x46 }, + { 0x12, 0x8B }, + { 0x17, 0x42 }, + { 0x1C, 0x3B }, + { 0x21, 0x5E }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetMixBinVolumes +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundVoice_SetMixBinVolumes_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETMIXBINVOLUMESB, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x0D, XREF_DSSETMIXBINVOLUMESC }, + + { 0x02, 0x74 }, + { 0x06, 0x74 }, + { 0x0A, 0x4E }, + { 0x11, 0x8B }, + { 0x12, 0x4E }, + { 0x19, 0x5E }, + { 0x1A, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetMixBinVolumes +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetMixBinVolumes_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETMIXBINVOLUMESA, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x32, XREF_DSSETMIXBINVOLUMESB }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::PlayEx +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_PlayEx_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_PlayEx, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x3D, XREF_DSOUNDPLAY }, + + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x20 }, + { 0x3A, 0x24 }, + { 0x46, 0x0B }, + { 0x52, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_PlayEx +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_PlayEx_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DirectSound_CDirectSoundBuffer_PlayEx }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * CMcpxBuffer::Stop2 +// ****************************************************************** +SOOVPA<10> CMcpxBuffer_Stop2_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_CMcpxBuffer_Stop2, // XRef Is Saved + XRefNotUsed, + + { + // 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 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::StopEx +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_StopEx_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_StopEx, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x3D, XREF_CMcpxBuffer_Stop2 }, + + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x20 }, + { 0x3A, 0x24 }, + { 0x46, 0x0B }, + { 0x52, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_StopEx +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_StopEx_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DirectSound_CDirectSoundBuffer_StopEx }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSoundCreate_1_0_4361 +// ****************************************************************** +OOVPATable DSound_1_0_4361[] = +{ + // DirectSoundCreate + { + (OOVPA*)&DirectSoundCreate_1_0_4361, + + XTL::EmuDirectSoundCreate, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreate" + #endif + }, + // CDirectSound_CreateSoundStream + { + (OOVPA*)&CDirectSound_CreateSoundStream_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundStream (XREF)" + #endif + }, + // IDirectSound8_CreateStream + { + (OOVPA*)&IDirectSound8_CreateStream_1_0_3936, + + XTL::EmuIDirectSound8_CreateStream, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateStream" + #endif + }, + // DirectSoundCreateStream + { + (OOVPA*)&DirectSoundCreateStream_1_0_4361, + + XTL::EmuDirectSoundCreateStream, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreateStream" + #endif + }, + // CMcpxStream::Pause + { + (OOVPA*)&CMcpxStream_Pause_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxStream_Pause (XREF)" + #endif + }, + // CDirectSoundStream::Pause + { + (OOVPA*)&CDirectSoundStream_Pause_1_0_4361, + + XTL::EmuCDirectSoundStream_Pause, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_Pause" + #endif + }, + // IDirectSound8::AddRef (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_AddRef_1_0_3936, + + XTL::EmuIDirectSound8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_AddRef" + #endif + }, + // IDirectSound8::CreateSoundBuffer + { + (OOVPA*)&IDirectSound8_CreateSoundBuffer_1_0_4361, + + XTL::EmuIDirectSound8_CreateSoundBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateSoundBuffer" + #endif + }, + // IDirectSoundBuffer8::SetPlayRegion + { + (OOVPA*)&IDirectSoundBuffer8_SetPlayRegion_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetPlayRegion, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetPlayRegion" + #endif + }, + // IDirectSoundBuffer8::SetLoopRegion + { + (OOVPA*)&IDirectSoundBuffer8_SetLoopRegion_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetLoopRegion, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetLoopRegion" + #endif + }, + // IDirectSoundBuffer8::SetVolume + { + (OOVPA*)&IDirectSoundBuffer8_SetVolume_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetVolume" + #endif + }, + // CMcpxBuffer::SetBufferData + { + (OOVPA*)&CMcpxBuffer_SetBufferData_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_SetBufferData (XREF)" + #endif + }, + // CDirectSoundBuffer::SetBufferData + { + (OOVPA*)&CDirectSoundBuffer_SetBufferData_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_SetBufferData (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetBufferData + { + (OOVPA*)&IDirectSoundBuffer8_SetBufferData_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetBufferData, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetBufferData" + #endif + }, + // CMcpxBuffer::SetCurrentPosition + { + (OOVPA*)&CMcpxBuffer_SetCurrentPosition_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_SetCurrentPosition (XREF)" + #endif + }, + // CDirectSoundBuffer::SetCurrentPosition + { + (OOVPA*)&CDirectSoundBuffer_SetCurrentPosition_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_SetCurrentPosition (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetCurrentPosition + { + (OOVPA*)&IDirectSoundBuffer8_SetCurrentPosition_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetCurrentPosition, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetCurrentPosition" + #endif + }, + // CMcpxBuffer::GetCurrentPosition + { + (OOVPA*)&CMcpxBuffer_GetCurrentPosition_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetCurrentPosition (XREF)" + #endif + }, + // CDirectSoundBuffer::GetCurrentPosition + { + (OOVPA*)&CDirectSoundBuffer_GetCurrentPosition_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_GetCurrentPosition (XREF)" + #endif + }, + // IDirectSoundBuffer8::GetCurrentPosition (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_GetCurrentPosition_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_GetCurrentPosition, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_GetCurrentPosition" + #endif + }, + // CMcpxBuffer::Play + { + (OOVPA*)&CMcpxBuffer_Play_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Play (XREF)" + #endif + }, + // CDirectSoundBuffer::Play + { + (OOVPA*)&CDirectSoundBuffer_Play_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_Play (XREF)" + #endif + }, + // IDirectSoundBuffer8::Play + { + (OOVPA*)&IDirectSoundBuffer8_Play_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_Play, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Play" + #endif + }, + // CMcpxBuffer::Stop + { + (OOVPA*)&CMcpxBuffer_Stop_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Stop (XREF)" + #endif + }, + // CMcpxBuffer_Stop2 + { + (OOVPA*)&CMcpxBuffer_Stop2_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Stop2 (XREF)" + #endif + }, + // CDirectSoundBuffer::Stop + { + (OOVPA*)&CDirectSoundBuffer_Stop_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_Stop (XREF)" + #endif + }, + // IDirectSoundBuffer8::Stop + { + (OOVPA*)&IDirectSoundBuffer8_Stop_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_Stop, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Stop" + #endif + }, + // CDirectSoundVoiceSettings_SetMixBinVolumes + { + (OOVPA*)&DirectSound_CDirectSoundVoiceSettings_SetMixBinVolumes_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoiceSettings::SetMixBinVolumes (XREF)" + #endif + }, + // CDirectSoundVoice_SetMixBinVolumes + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetMixBinVolumes_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMixBinVolumes (XREF)" + #endif + }, + // CDirectSoundBuffer_SetMixBinVolumes + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetMixBinVolumes_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMixBinVolumes (XREF)" + #endif + }, + // DirectSound::CDirectSoundBuffer::PlayEx (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_PlayEx_1_0_4361, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::PlayEx (XREF)" + #endif + }, + // IDirectSoundBuffer_PlayEx + { + (OOVPA*)&IDirectSoundBuffer_PlayEx_1_0_4361, + XTL::EmuIDirectSoundBuffer8_PlayEx, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer_PlayEx" + #endif + }, + // DirectSound::CDirectSoundBuffer::StopEx (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_StopEx_1_0_4361, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::StopEx (XREF)" + #endif + }, + // IDirectSoundBuffer_StopEx + { + (OOVPA*)&IDirectSoundBuffer_StopEx_1_0_4361, + XTL::EmuIDirectSoundBuffer8_StopEx, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer_StopEx" + #endif + }, + // IDirectSoundBuffer_AddRef (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_AddRef_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_AddRef, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_AddRef" + #endif + }, + // IDirectSound8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_Release_1_0_3936, + + XTL::EmuIDirectSound8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_Release" + #endif + }, +}; + +// ****************************************************************** +// * DSound_1_0_4361_SIZE +// ****************************************************************** +uint32 DSound_1_0_4361_SIZE = sizeof(DSound_1_0_4361); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4432.h b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4432.h new file mode 100644 index 000000000..6a2b0b645 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4432.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.4432.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_1_0_4432_H +#define DSOUND_1_0_4432_H + +#include "OOVPA.h" + +extern OOVPATable DSOUND_1_0_4432[]; +extern uint32 DSOUND_1_0_4432_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4432.inl b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4432.inl new file mode 100644 index 000000000..fe27e9dfc --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4432.inl @@ -0,0 +1,1015 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4432.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * IDirectSound8_Release +// ****************************************************************** +SOOVPA<12> IDirectSound8_Release_1_0_4432 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSound8_Release+0x04 : lea ecx, [eax-8] + { 0x04, 0x8D }, // (Offset,Value)-Pair #1 + { 0x05, 0x48 }, // (Offset,Value)-Pair #2 + { 0x06, 0xF8 }, // (Offset,Value)-Pair #3 + + // IDirectSound8_Release+0x07 : neg eax + { 0x07, 0xF7 }, // (Offset,Value)-Pair #4 + { 0x08, 0xD8 }, // (Offset,Value)-Pair #5 + + // IDirectSound8_Release+0x09 : sbb eax, eax + { 0x09, 0x1B }, // (Offset,Value)-Pair #6 + { 0x0A, 0xC0 }, // (Offset,Value)-Pair #7 + + // IDirectSound8_Release+0x0D : mov ecx, [eax] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #8 + { 0x0E, 0x08 }, // (Offset,Value)-Pair #9 + + // IDirectSound8_Release+0x10 : call dword ptr [ecx+8] + { 0x10, 0xFF }, // (Offset,Value)-Pair #10 + { 0x11, 0x51 }, // (Offset,Value)-Pair #11 + { 0x12, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetMaxDistance +// ****************************************************************** +SOOVPA<9> CDirectSoundVoice_SetMaxDistance_1_0_4432 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSVOICESETMAXDISTANCE, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetMaxDistance+0x0D : mov edx, [esp+arg_4] + { 0x0D, 0x8B }, + { 0x0E, 0x54 }, + { 0x0F, 0x24 }, + { 0x10, 0x08 }, + + // CDirectSoundVoice_SetMaxDistance+0x11 : mov [eax+38h], edx + { 0x11, 0x89 }, + { 0x12, 0x50 }, + { 0x13, 0x38 }, + + // CDirectSoundVoice_SetMaxDistance+0x30 : retn 0Ch + { 0x31, 0x0C }, + { 0x32, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetMaxDistance +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_SetMaxDistance_1_0_4432 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSBUFFERSETMAXDISTANCE, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetMaxDistance+0x39 : call [CDirectSoundVoice::SetMaxDistance] + { 0x3A, XREF_DSVOICESETMAXDISTANCE }, + + // CDirectSoundBuffer_SetMaxDistance+0x21 : mov eax, 80004005h + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + + // CDirectSoundBuffer_SetMaxDistance+0x32 : fstp [esp+0Ch+var_C] + { 0x32, 0xD9 }, + { 0x33, 0x1C }, + { 0x34, 0x24 }, + + // CDirectSoundBuffer_SetMaxDistance+0x53 : retn 0Ch + { 0x54, 0x0C }, + { 0x55, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMaxDistance +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer_SetMaxDistance_1_0_4432 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetMaxDistance+0x1C : call [CDirectSoundBuffer::SetMaxDistance] + { 0x1D, XREF_DSBUFFERSETMAXDISTANCE }, + + // IDirectSoundBuffer_SetMaxDistance+0x04 : fld [esp+4+arg_4] + { 0x04, 0xD9 }, + { 0x05, 0x44 }, + { 0x06, 0x24 }, + { 0x07, 0x0C }, + + // IDirectSoundBuffer_SetMaxDistance+0x12 : add eax, 0FFFFFFE4 + { 0x12, 0x83 }, + { 0x13, 0xC0 }, + { 0x14, 0xE4 }, + + // IDirectSoundBuffer_SetMaxDistance+0x21 : retn 0Ch + { 0x22, 0x0C }, + { 0x23, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetMinDistance +// ****************************************************************** +SOOVPA<9> CDirectSoundVoice_SetMinDistance_1_0_4432 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSVOICESETMINDISTANCE, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetMinDistance+0x0D : mov edx, [esp+arg_4] + { 0x0D, 0x8B }, + { 0x0E, 0x54 }, + { 0x0F, 0x24 }, + { 0x10, 0x08 }, + + // CDirectSoundVoice_SetMinDistance+0x11 : mov [eax+34h], edx + { 0x11, 0x89 }, + { 0x12, 0x50 }, + { 0x13, 0x34 }, + + // CDirectSoundVoice_SetMinDistance+0x30 : retn 0Ch + { 0x31, 0x0C }, + { 0x32, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetMinDistance +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_SetMinDistance_1_0_4432 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSBUFFERSETMINDISTANCE, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetMinDistance+0x39 : call [CDirectSoundVoice::SetMinDistance] + { 0x3A, XREF_DSVOICESETMINDISTANCE }, + + // CDirectSoundBuffer_SetMinDistance+0x21 : mov eax, 80004005h + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + + // CDirectSoundBuffer_SetMinDistance+0x32 : fstp [esp+0Ch+var_C] + { 0x32, 0xD9 }, + { 0x33, 0x1C }, + { 0x34, 0x24 }, + + // CDirectSoundBuffer_SetMinDistance+0x53 : retn 0Ch + { 0x54, 0x0C }, + { 0x55, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMinDistance +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer_SetMinDistance_1_0_4432 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetMinDistance+0x1C : call [CDirectSoundBuffer::SetMinDistance] + { 0x1D, XREF_DSBUFFERSETMINDISTANCE }, + + // IDirectSoundBuffer_SetMinDistance+0x04 : fld [esp+4+arg_4] + { 0x04, 0xD9 }, + { 0x05, 0x44 }, + { 0x06, 0x24 }, + { 0x07, 0x0C }, + + // IDirectSoundBuffer_SetMinDistance+0x12 : add eax, 0FFFFFFE4 + { 0x12, 0x83 }, + { 0x13, 0xC0 }, + { 0x14, 0xE4 }, + + // IDirectSoundBuffer_SetMinDistance+0x21 : retn 0Ch + { 0x22, 0x0C }, + { 0x23, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSound::SetI3DL2Listener +// ****************************************************************** +SOOVPA<11> CDirectSound_SetI3DL2Listener_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 12 + + XREF_DSSETI3DL2LISTENER, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetI3DL2Listener+0x3A : mov edi, 0x88780032 + { 0x3A, 0xBF }, // (Offset,Value)-Pair #1 + { 0x3B, 0x32 }, // (Offset,Value)-Pair #2 + { 0x3C, 0x00 }, // (Offset,Value)-Pair #3 + { 0x3D, 0x78 }, // (Offset,Value)-Pair #4 + { 0x3E, 0x88 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetI3DL2Listener+0xA2 : fstp dword ptr[edx+0x94] + { 0xA2, 0xD9 }, // (Offset,Value)-Pair #6 + { 0xA3, 0x9A }, // (Offset,Value)-Pair #7 + { 0xA4, 0x94 }, // (Offset,Value)-Pair #8 + + // CDirectSound_SetI3DL2Listener+0xA8 : fld dword ptr[ecx+0x24] + { 0xA8, 0xD9 }, // (Offset,Value)-Pair #9 + { 0xA9, 0x41 }, // (Offset,Value)-Pair #10 + { 0xAA, 0x24 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetI3DL2Listener +// ****************************************************************** +SOOVPA<12> IDirectSound8_SetI3DL2Listener_1_0_4432 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSound8_SetI3DL2Listener+0x19 : call [CDirectSound::SetI3DL2Listener] + { 0x19, XREF_DSSETI3DL2LISTENER }, // (Offset,Value)-Pair #1 + + // IDirectSound8_SetI3DL2Listener+0x04 : push [esp+0x0C] + { 0x04, 0xFF }, // (Offset,Value)-Pair #2 + { 0x05, 0x74 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSound8_SetI3DL2Listener+0x0E : add eax, 0xFFFFFFF8 + { 0x0E, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x10, 0xF8 }, // (Offset,Value)-Pair #8 + + // IDirectSound8_SetI3DL2Listener+0x13 : sbb ecx, ecx + { 0x13, 0x1B }, // (Offset,Value)-Pair #9 + { 0x14, 0xC9 }, // (Offset,Value)-Pair #10 + + // IDirectSound8_SetI3DL2Listener+0x15 : and ecx, eax + { 0x15, 0x23 }, // (Offset,Value)-Pair #11 + { 0x16, 0xC8 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundVoiceSettings::SetMixBins +// ****************************************************************** +SOOVPA<10> CDirectSoundVoiceSettings_SetMixBins_1_0_4432 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSSETMIXBINSC, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoiceSettings_SetMixBins+0x06 : jnz +0x1A + { 0x06, 0x75 }, // (Offset,Value)-Pair #1 + { 0x07, 0x1A }, // (Offset,Value)-Pair #2 + + // CDirectSoundVoiceSettings_SetMixBins+0x08 : test byte ptr [ecx+8], 0x10 + { 0x08, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x09, 0x41 }, // (Offset,Value)-Pair #4 + { 0x0A, 0x08 }, // (Offset,Value)-Pair #5 + { 0x0B, 0x10 }, // (Offset,Value)-Pair #6 + + // CDirectSoundVoiceSettings_SetMixBins+0x2B : jbe +0x2B + { 0x2B, 0x76 }, // (Offset,Value)-Pair #7 + { 0x2C, 0x2B }, // (Offset,Value)-Pair #8 + + // CDirectSoundVoiceSettings_SetMixBins+0xB2 : retn 0x04 + { 0xB2, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xB3, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetMixBins +// ****************************************************************** +SOOVPA<17> CDirectSoundVoice_SetMixBins_1_0_4432 = +{ + 0, // Large == 0 + 17, // Count == 17 + + XREF_DSSETMIXBINSB, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundVoice_SetMixBins+0x0D : call [CDirectSoundVoiceSettings::SetMixBins] + { 0x0D, XREF_DSSETMIXBINSC }, // (Offset,Value)-Pair #1 + + // CDirectSoundVoice_SetMixBins+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 + + // CDirectSoundVoice_SetMixBins+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 + + // CDirectSoundVoice_SetMixBins+0x09 : mov ecx, [esi+0x10] + { 0x09, 0x8B }, // (Offset,Value)-Pair #10 + { 0x0A, 0x4E }, // (Offset,Value)-Pair #11 + { 0x0B, 0x10 }, // (Offset,Value)-Pair #12 + + // CDirectSoundVoice_SetMixBins+0x11 : mov ecx, [esi+0x0C] + { 0x11, 0x8B }, // (Offset,Value)-Pair #13 + { 0x12, 0x4E }, // (Offset,Value)-Pair #14 + { 0x13, 0x0C }, // (Offset,Value)-Pair #15 + + // CDirectSoundVoice_SetMixBins+0x1A : retn 0x08 + { 0x1A, 0xC2 }, // (Offset,Value)-Pair #16 + { 0x1B, 0x08 }, // (Offset,Value)-Pair #17 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetMixBins +// ****************************************************************** +SOOVPA<17> CDirectSoundBuffer_SetMixBins_1_0_4432 = +{ + 0, // Large == 0 + 17, // Count == 17 + + XREF_DSSETMIXBINSA, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetMixBins+0x32 : call [CDirectSoundVoice::SetMixBins] + { 0x32, XREF_DSSETMIXBINSB }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_SetMixBins+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 + + // CDirectSoundBuffer_SetMixBins+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 + + // CDirectSoundBuffer_SetMixBins+0x49 : pop edi + { 0x49, 0x5F }, // (Offset,Value)-Pair #15 + + // CDirectSoundBuffer_SetMixBins+0x4B : retn 0x08 + { 0x4B, 0xC2 }, // (Offset,Value)-Pair #16 + { 0x4C, 0x08 }, // (Offset,Value)-Pair #17 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetMixBins +// ****************************************************************** +SOOVPA<12> IDirectSoundBuffer8_SetMixBins_1_0_4432 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetMixBins+0x15 : call [CDirectSoundBuffer::SetMixBins] + { 0x15, XREF_DSSETMIXBINSA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetMixBins+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 + + // IDirectSoundBuffer8_SetMixBins+0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetMixBins+0x0F : sbb ecx, ecx + { 0x0F, 0x1B }, // (Offset,Value)-Pair #9 + { 0x10, 0xC9 }, // (Offset,Value)-Pair #10 + + // IDirectSoundBuffer8_SetMixBins+0x11 : and ecx, eax + { 0x11, 0x23 }, // (Offset,Value)-Pair #11 + { 0x12, 0xC8 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSound::CommitDeferredSettings +// ****************************************************************** +SOOVPA<11> CDirectSound_CommitDeferredSettings_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // CDirectSound_CommitDeferredSettings+0x10 : movzx eax, al + { 0x10, 0x0F }, // (Offset,Value)-Pair #1 + { 0x11, 0xB6 }, // (Offset,Value)-Pair #2 + { 0x12, 0xC0 }, // (Offset,Value)-Pair #3 + + // CDirectSound_CommitDeferredSettings+0x27 : mov eax, 0x80004005 + { 0x27, 0xB8 }, // (Offset,Value)-Pair #4 + { 0x28, 0x05 }, // (Offset,Value)-Pair #5 + { 0x29, 0x40 }, // (Offset,Value)-Pair #6 + { 0x2B, 0x80 }, // (Offset,Value)-Pair #7 + + // CDirectSound_CommitDeferredSettings+0x5C : and [eax+0xA4], esi + { 0x5C, 0x21 }, // (Offset,Value)-Pair #8 + { 0x5D, 0xB0 }, // (Offset,Value)-Pair #9 + { 0x5E, 0xA4 }, // (Offset,Value)-Pair #10 + + // CDirectSound_CommitDeferredSettings+0x78 : leave + { 0x78, 0xC9 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetDistanceFactorA +// ****************************************************************** +SOOVPA<11> CDirectSound_SetDistanceFactorA_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_SETDISTANCEFACTORA,// XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetDistanceFactorA+0x21 : mov eax, 0x80004005 + { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x22, 0x05 }, // (Offset,Value)-Pair #2 + { 0x23, 0x40 }, // (Offset,Value)-Pair #3 + { 0x24, 0x00 }, // (Offset,Value)-Pair #4 + { 0x25, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetDistanceFactorA+0x39 : or dword ptr[eax+0xA4], 0x60 + { 0x39, 0x83 }, // (Offset,Value)-Pair #6 + { 0x3A, 0x88 }, // (Offset,Value)-Pair #7 + { 0x3B, 0xA4 }, // (Offset,Value)-Pair #8 + { 0x3F, 0x60 }, // (Offset,Value)-Pair #9 + + // CDirectSound_SetDistanceFactorA+0x4F : jz +0x0B + { 0x4F, 0x74 }, // (Offset,Value)-Pair #10 + { 0x50, 0x0B }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetDistanceFactor +// ****************************************************************** +SOOVPA<11> IDirectSound8_SetDistanceFactor_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSound8_SetDistanceFactor+0x1D : call [CDirectSound::SetDistanceFactor] + { 0x1D, XREF_SETDISTANCEFACTORA }, // (Offset,Value)-Pair #1 + + // IDirectSound8_SetDistanceFactor+0x04 : fld [esp+0x0C] + { 0x04, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSound8_SetDistanceFactor+0x0C : push ecx + { 0x0C, 0x51 }, // (Offset,Value)-Pair #6 + + // IDirectSound8_SetDistanceFactor+0x12 : add eax, 0xFFFFFFF8 + { 0x12, 0x83 }, // (Offset,Value)-Pair #7 + { 0x13, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x14, 0xF8 }, // (Offset,Value)-Pair #9 + + // IDirectSound8_SetDistanceFactor+0x21 : retn 0x0C + { 0x21, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x22, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetPositionA +// ****************************************************************** +SOOVPA<11> CDirectSound_SetPositionA_1_0_4432 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSETPOSITIONA, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetPositionA+0x2B : mov ecx, [ebp+0x08] + { 0x2B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x2C, 0x4D }, // (Offset,Value)-Pair #2 + { 0x2D, 0x08 }, // (Offset,Value)-Pair #3 + + // CDirectSound_SetPositionA+0x3F : mov [edx+0x3C], edi + { 0x3F, 0x89 }, // (Offset,Value)-Pair #4 + { 0x40, 0x7A }, // (Offset,Value)-Pair #5 + { 0x41, 0x3C }, // (Offset,Value)-Pair #6 + + // CDirectSound_SetPositionA+0x4C : or word ptr [eax+0xA4], 0x01FF + { 0x4C, 0x80 }, // (Offset,Value)-Pair #7 + { 0x4D, 0x88 }, // (Offset,Value)-Pair #8 + { 0x4E, 0xA4 }, // (Offset,Value)-Pair #9 + { 0x4F, 0x00 }, // (Offset,Value)-Pair #10 + { 0x52, 0xFF }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetVelocity +// ****************************************************************** +SOOVPA<15> CDirectSound_SetVelocity_1_0_4432 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XREF_DSSETVELOCITYA, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetVelocity+0x24 : mov eax, 0x80004005 + { 0x24, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x25, 0x05 }, // (Offset,Value)-Pair #2 + { 0x26, 0x40 }, // (Offset,Value)-Pair #3 + { 0x27, 0x00 }, // (Offset,Value)-Pair #4 + { 0x28, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetVelocity+0x37 : mov [edx+0x44], edi + { 0x37, 0x89 }, // (Offset,Value)-Pair #6 + { 0x38, 0x7A }, // (Offset,Value)-Pair #7 + { 0x39, 0x44 }, // (Offset,Value)-Pair #8 + + // CDirectSound_SetVelocity+0x4C : or dword ptr [eax+0x0A4], 0x40 + { 0x4C, 0x83 }, // (Offset,Value)-Pair #9 + { 0x4D, 0x88 }, // (Offset,Value)-Pair #10 + { 0x4E, 0xA4 }, // (Offset,Value)-Pair #11 + { 0x4F, 0x00 }, // (Offset,Value)-Pair #12 + { 0x52, 0x40 }, // (Offset,Value)-Pair #13 + + // CDirectSound_SetVelocity+0x73 : retn 0x14 + { 0x73, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x74, 0x14 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetPosition +// ****************************************************************** +SOOVPA<8> CDirectSoundVoice_SetPosition_1_0_4432 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSVOICESETPOSITION, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetPosition+0x0F : mov edx, [ebp+arg_4] + { 0x0F, 0x8B }, + { 0x10, 0x55 }, + { 0x11, 0x0C }, + + // CDirectSoundVoice_SetPosition+0x12 : mov [ecx+04h], edx + { 0x12, 0x89 }, + { 0x13, 0x51 }, + { 0x14, 0x04 }, + + // CDirectSoundVoice_SetPosition+0x4F : retn 14h + { 0x4F, 0xC2 }, + { 0x50, 0x14 } + } +}; + +// ****************************************************************** +// * DirectSoundCreate_1_0_4432 +// ****************************************************************** +OOVPATable DSound_1_0_4432[] = +{ + // DirectSoundCreate (* unchanged since 4361 *) + { + (OOVPA*)&DirectSoundCreate_1_0_4361, + + XTL::EmuDirectSoundCreate, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreate" + #endif + }, + // IDirectSound8_CreateStream + { + (OOVPA*)&IDirectSound8_CreateStream_1_0_3936, + + XTL::EmuIDirectSound8_CreateStream, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateStream" + #endif + }, + // CDirectSound_CreateSoundStream (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSound_CreateSoundStream_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundStream (XREF)" + #endif + }, + // DirectSoundCreateStream (* unchanged since 4361 *) + { + (OOVPA*)&DirectSoundCreateStream_1_0_4361, + + XTL::EmuDirectSoundCreateStream, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreateStream" + #endif + }, + // CMcpxStream::Pause (* unchanged since 4361 *) + { + (OOVPA*)&CMcpxStream_Pause_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxStream_Pause (XREF)" + #endif + }, + // CDirectSoundStream::Pause (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundStream_Pause_1_0_4361, + + XTL::EmuCDirectSoundStream_Pause, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_Pause" + #endif + }, + // IDirectSound8::AddRef (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_AddRef_1_0_3936, + + XTL::EmuIDirectSound8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_AddRef" + #endif + }, + // IDirectSound8::Release + { + (OOVPA*)&IDirectSound8_Release_1_0_4432, + + XTL::EmuIDirectSound8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_Release" + #endif + }, + // IDirectSound8::CreateSoundBuffer (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSound8_CreateSoundBuffer_1_0_4361, + + XTL::EmuIDirectSound8_CreateSoundBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateSoundBuffer" + #endif + }, + // IDirectSoundBuffer8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_Release_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Release" + #endif + }, + // IDirectSoundBuffer8::SetLoopRegion (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetLoopRegion_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetLoopRegion, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetLoopRegion" + #endif + }, + // CMcpxBuffer::SetBufferData (* unchanged since 4361 *) + { + (OOVPA*)&CMcpxBuffer_SetBufferData_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_SetBufferData (XREF)" + #endif + }, + // CDirectSoundBuffer::SetBufferData (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundBuffer_SetBufferData_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_SetBufferData (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetBufferData (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetBufferData_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetBufferData, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetBufferData" + #endif + }, + // CMcpxBuffer::SetCurrentPosition (* unchanged since 4361 *) + { + (OOVPA*)&CMcpxBuffer_SetCurrentPosition_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_SetCurrentPosition (XREF)" + #endif + }, + // CDirectSoundBuffer::SetCurrentPosition (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundBuffer_SetCurrentPosition_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_SetCurrentPosition (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetCurrentPosition (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetCurrentPosition_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetCurrentPosition, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetCurrentPosition" + #endif + }, + // CMcpxBuffer::Stop (* unchanged since 4361 *) + { + (OOVPA*)&CMcpxBuffer_Stop_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Stop (XREF)" + #endif + }, + // CDirectSoundBuffer::Stop (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundBuffer_Stop_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_Stop (XREF)" + #endif + }, + // IDirectSoundBuffer8::Stop (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_Stop_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_Stop, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_Stop" + #endif + }, + // CDirectSoundVoice::SetMaxDistance (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetMaxDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMaxDistance (XRef)" + #endif + }, + // CDirectSoundBuffer::SetMaxDistance (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetMaxDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMaxDistance (XRef)" + #endif + }, + // IDirectSoundBuffer_SetMaxDistance + { + (OOVPA*)&IDirectSoundBuffer_SetMaxDistance_1_0_4432, + XTL::EmuIDirectSoundBuffer8_SetMaxDistance, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetMaxDistance" + #endif + }, + // CDirectSoundVoice::SetMinDistance (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetMinDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMinDistance (XRef)" + #endif + }, + // CDirectSoundBuffer::SetMinDistance (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetMinDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMinDistance (XRef)" + #endif + }, + // IDirectSoundBuffer_SetMinDistance + { + (OOVPA*)&IDirectSoundBuffer_SetMinDistance_1_0_4432, + XTL::EmuIDirectSoundBuffer8_SetMinDistance, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetMinDistance" + #endif + }, + // CDirectSound_SetI3DL2Listener + { + (OOVPA*)&CDirectSound_SetI3DL2Listener_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetI3DL2Listener (XREF)" + #endif + }, + // IDirectSound8_SetI3DL2Listener + { + (OOVPA*)&IDirectSound8_SetI3DL2Listener_1_0_4432, + + XTL::EmuIDirectSound8_SetI3DL2Listener, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetI3DL2Listener" + #endif + }, + // CDirectSoundVoiceSettings_SetMixBins + { + (OOVPA*)&CDirectSoundVoiceSettings_SetMixBins_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoiceSettings::SetMixBins (XREF)" + #endif + }, + // CDirectSoundVoice_SetMixBins + { + (OOVPA*)&CDirectSoundVoice_SetMixBins_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMixBins (XREF)" + #endif + }, + // CDirectSoundBuffer_SetMixBins + { + (OOVPA*)&CDirectSoundBuffer_SetMixBins_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMixBins (XREF)" + #endif + }, + // IDirectSoundBuffer8_SetMixBins + { + (OOVPA*)&IDirectSoundBuffer8_SetMixBins_1_0_4432, + + XTL::EmuIDirectSoundBuffer8_SetMixBins, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMixBins" + #endif + }, + // CDirectSound::CommitDeferredSettings + { + (OOVPA*)&CDirectSound_CommitDeferredSettings_1_0_4432, + + XTL::EmuCDirectSound_CommitDeferredSettings, + + #ifdef _DEBUG_TRACE + "EmuCDirectSound_CommitDeferredSettings" + #endif + }, + // CDirectSound::SetDistanceFactorA (XREF) + { + (OOVPA*)&CDirectSound_SetDistanceFactorA_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetDistanceFactorA (XRef)" + #endif + }, + // IDirectSound8::SetDistanceFactor + { + (OOVPA*)&IDirectSound8_SetDistanceFactor_1_0_4432, + + XTL::EmuIDirectSound8_SetDistanceFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetDistanceFactor" + #endif + }, + // IDirectSound8::DownloadEffectsImage (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_DownloadEffectsImage_1_0_3936, + + XTL::EmuIDirectSound8_DownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_DownloadEffectsImage" + #endif + }, + // IDirectSoundBuffer_AddRef (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_AddRef_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_AddRef, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_AddRef" + #endif + }, +}; + +// ****************************************************************** +// * DSound_1_0_4432_SIZE +// ****************************************************************** +uint32 DSound_1_0_4432_SIZE = sizeof(DSound_1_0_4432); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4627.h b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4627.h new file mode 100644 index 000000000..2fac5147b --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4627.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.4627.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_1_0_4627_H +#define DSOUND_1_0_4627_H + +#include "OOVPA.h" + +extern OOVPATable DSOUND_1_0_4627[]; +extern uint32 DSOUND_1_0_4627_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4627.inl new file mode 100644 index 000000000..d4f8362b0 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.4627.inl @@ -0,0 +1,5015 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4627.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * DirectSoundDoWork +// ****************************************************************** +SOOVPA<7> DirectSoundDoWork_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0x0F }, + { 0x0E, 0x85 }, + { 0x10, 0x74 }, + { 0x18, 0x85 }, + { 0x1C, 0x0B }, + { 0x22, 0xFF }, + { 0x28, 0xC3 }, + } +}; + +// ****************************************************************** +// * CDirectSound::CreateSoundBuffer +// ****************************************************************** +SOOVPA<14> CDirectSound_CreateSoundBuffer_1_0_4627 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XREF_DSCREATESOUNDBUFFER, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_CreateSoundBuffer+0x23 : mov eax, 0x80004005 + { 0x23, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x24, 0x05 }, // (Offset,Value)-Pair #2 + { 0x25, 0x40 }, // (Offset,Value)-Pair #3 + { 0x27, 0x80 }, // (Offset,Value)-Pair #4 + + // CDirectSound_CreateSoundBuffer+0x2A : push 0x24 + { 0x2A, 0x6A }, // (Offset,Value)-Pair #5 + { 0x2B, 0x24 }, // (Offset,Value)-Pair #6 + + // CDirectSound_CreateSoundBuffer+0x4A : add esi, 0x7FF8FFF2 + { 0x4A, 0x81 }, // (Offset,Value)-Pair #7 + { 0x4B, 0xE6 }, // (Offset,Value)-Pair #8 + { 0x4C, 0xF2 }, // (Offset,Value)-Pair #9 + { 0x4D, 0xFF }, // (Offset,Value)-Pair #10 + { 0x4E, 0xF8 }, // (Offset,Value)-Pair #11 + { 0x4F, 0x7F }, // (Offset,Value)-Pair #12 + + // CDirectSound_CreateSoundBuffer+0x99 : retn 0x10 + { 0x99, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x9A, 0x10 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * CDirectSound::SetMixBinHeadroom +// ****************************************************************** +SOOVPA<15> CDirectSound_SetMixBinHeadroom_1_0_4627 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XREF_DSSETMIXBINHEADROOMA, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetMixBinHeadroom+0x21 : mov eax, 0x80004005 + { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x22, 0x05 }, // (Offset,Value)-Pair #2 + { 0x23, 0x40 }, // (Offset,Value)-Pair #3 + { 0x24, 0x00 }, // (Offset,Value)-Pair #4 + { 0x25, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetMixBinHeadroom+0x34 : mov bl, [esp+0x14] + { 0x34, 0x8A }, // (Offset,Value)-Pair #6 + { 0x35, 0x5C }, // (Offset,Value)-Pair #7 + { 0x36, 0x24 }, // (Offset,Value)-Pair #8 + { 0x37, 0x14 }, // (Offset,Value)-Pair #9 + + // CDirectSound_SetMixBinHeadroom+0x39 : mov [edx+ecx+0x14], bl + { 0x39, 0x88 }, // (Offset,Value)-Pair #10 + { 0x3A, 0x5C }, // (Offset,Value)-Pair #11 + { 0x3B, 0x0A }, // (Offset,Value)-Pair #12 + { 0x3C, 0x14 }, // (Offset,Value)-Pair #13 + + // CDirectSound_SetMixBinHeadroom+0x5C : retn 0x0C + { 0x5C, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x5D, 0x0C }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetMixBinHeadroom +// ****************************************************************** +SOOVPA<12> IDirectSound8_SetMixBinHeadroom_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSound8_SetMixBinHeadroom+0x19 : call [CDirectSound::SetMixBinHeadroom] + { 0x19, XREF_DSSETMIXBINHEADROOMA }, // (Offset,Value)-Pair #1 + + // IDirectSound8_SetMixBinHeadroom+0x04 : push [esp+0x0C] + { 0x04, 0xFF }, // (Offset,Value)-Pair #2 + { 0x05, 0x74 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSound8_SetMixBinHeadroom+0x0E : add eax, 0xFFFFFFF8 + { 0x0E, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x10, 0xF8 }, // (Offset,Value)-Pair #8 + + // IDirectSound8_SetMixBinHeadroom+0x13 : sbb ecx, ecx + { 0x13, 0x1B }, // (Offset,Value)-Pair #9 + { 0x14, 0xC9 }, // (Offset,Value)-Pair #10 + + // IDirectSound8_SetMixBinHeadroom+0x15 : and ecx, eax + { 0x15, 0x23 }, // (Offset,Value)-Pair #11 + { 0x16, 0xC8 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetHeadroomA +// ****************************************************************** +SOOVPA<12> IDirectSoundBuffer8_SetHeadroomA_1_0_4928 = +{ + 0,// Large == 0 + 7,// Count == 7 + + XREF_DSBUFFERSETHEADROOMA,// XRef Is Saved + 0, // XRef Not Used + + { + { 0x03, 0x04 }, + { 0x08, 0x48 }, + { 0x0D, 0x24 }, + { 0x12, 0x48 }, + { 0x17, 0x8B }, + { 0x1F, 0x5E }, + { 0x21, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetHeadroom +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetHeadroom_1_0_4928 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetHeadroom+0x32 : call [IDirectSoundBuffer8_SetHeadroomA] + { 0x32, XREF_DSBUFFERSETHEADROOMA }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * CDirectSound::SetVelocity +// ****************************************************************** +SOOVPA<15> CDirectSound_SetVelocity_1_0_4627 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XREF_DSSETVELOCITYA, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetVelocity+0x24 : mov eax, 0x80004005 + { 0x24, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x25, 0x05 }, // (Offset,Value)-Pair #2 + { 0x26, 0x40 }, // (Offset,Value)-Pair #3 + { 0x27, 0x00 }, // (Offset,Value)-Pair #4 + { 0x28, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetVelocity+0x37 : mov [edx+0x44], edi + { 0x37, 0x89 }, // (Offset,Value)-Pair #6 + { 0x38, 0x7A }, // (Offset,Value)-Pair #7 + { 0x39, 0x44 }, // (Offset,Value)-Pair #8 + + // CDirectSound_SetVelocity+0x4C : or byte ptr [eax+0x0x00A4], 0x80 + { 0x4C, 0x80 }, // (Offset,Value)-Pair #9 + { 0x4D, 0x88 }, // (Offset,Value)-Pair #10 + { 0x4E, 0xA4 }, // (Offset,Value)-Pair #11 + { 0x4F, 0x00 }, // (Offset,Value)-Pair #12 + { 0x52, 0x80 }, // (Offset,Value)-Pair #13 + + // CDirectSound_SetVelocity+0x73 : retn 0x14 + { 0x73, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x74, 0x14 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * CDirectSound::SetAllParametersA +// ****************************************************************** +SOOVPA<10> CDirectSound_SetAllParametersA_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSSETALLPARAMETERSA, // XRef Is Saved + 0, // XRef Not Used + + { + { 0x16, 0x68 }, // (Offset,Value)-Pair #1 + { 0x17, 0xE8 }, // (Offset,Value)-Pair #2 + { 0x18, 0xF7 }, // (Offset,Value)-Pair #3 + { 0x19, 0x2D }, // (Offset,Value)-Pair #4 + + { 0x2F, 0xD9 }, // (Offset,Value)-Pair #5 + { 0x30, 0x41 }, // (Offset,Value)-Pair #6 + { 0x31, 0x04 }, // (Offset,Value)-Pair #7 + + { 0x87, 0x8B }, // (Offset,Value)-Pair #8 + { 0x88, 0x50 }, // (Offset,Value)-Pair #9 + { 0x89, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSound::SetAllParametersA +// ****************************************************************** +SOOVPA<10> CDirectSound_SetAllParametersA_1_0_4721 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSSETALLPARAMETERSA, // XRef Is Saved + 0, // XRef Not Used + + { + { 0x16, 0x68 }, // (Offset,Value)-Pair #1 + { 0x17, 0xD8 }, // (Offset,Value)-Pair #2 + { 0x18, 0x81 }, // (Offset,Value)-Pair #3 + { 0x19, 0x15 }, // (Offset,Value)-Pair #4 + + { 0x2F, 0xD9 }, // (Offset,Value)-Pair #5 + { 0x30, 0x41 }, // (Offset,Value)-Pair #6 + { 0x31, 0x04 }, // (Offset,Value)-Pair #7 + + { 0x87, 0x8B }, // (Offset,Value)-Pair #8 + { 0x88, 0x50 }, // (Offset,Value)-Pair #9 + { 0x89, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetAllParameters +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSound_SetAllParameters_1_0_4928 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETALLPARAMETERSA, // Xref Is Saved + XRefNotUsed, + + { + { 0x1B, 0xFF }, + { 0x38, 0x08 }, + { 0x55, 0x5A }, + { 0x72, 0xD9 }, + { 0x8F, 0x2C }, + { 0xAC, 0x50 }, + { 0xC9, 0x10 }, + { 0xE6, 0x0C }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoiceSettings::SetMixBinVolumes +// ****************************************************************** +SOOVPA<10> CDirectSoundVoiceSettings_SetMixBinVolumes_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSSETMIXBINVOLUMESC, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoiceSettings_SetMixBinVolumes+0x09 : jbe +0x16 + { 0x09, 0x76 }, // (Offset,Value)-Pair #1 + { 0x0A, 0x16 }, // (Offset,Value)-Pair #2 + + // 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 + + // CDirectSoundVoiceSettings_SetMixBinVolumes+0x1E : jb +0xEC + { 0x1E, 0x72 }, // (Offset,Value)-Pair #7 + { 0x1F, 0xEC }, // (Offset,Value)-Pair #8 + + // CDirectSoundVoiceSettings_SetMixBinVolumes+0x22 : retn 0x04 + { 0x22, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x23, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetMixBinVolumes +// ****************************************************************** +SOOVPA<17> CDirectSoundVoice_SetMixBinVolumes_1_0_4627 = +{ + 0, // Large == 0 + 17, // Count == 17 + + XREF_DSSETMIXBINVOLUMESB, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundVoice_SetMixBinVolumes+0x0D : call [CDirectSoundVoiceSettings::SetMixBinVolumes] + { 0x0D, XREF_DSSETMIXBINVOLUMESC }, // (Offset,Value)-Pair #1 + + // 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 + + // 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 + + // 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 + + // 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 + + // CDirectSoundVoice_SetMixBinVolumes+0x1A : retn 0x08 + { 0x1A, 0xC2 }, // (Offset,Value)-Pair #16 + { 0x1B, 0x08 }, // (Offset,Value)-Pair #17 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetMixBinVolumes +// ****************************************************************** +SOOVPA<17> CDirectSoundBuffer_SetMixBinVolumes_1_0_4627 = +{ + 0, // Large == 0 + 17, // Count == 17 + + XREF_DSSETMIXBINVOLUMESA, // XRef Is Saved + 1, // XRef Not Used + + { + // CDirectSoundBuffer_SetMixBinVolumes+0x32 : call [CDirectSoundVoice::SetMixBinVolumes] + { 0x32, XREF_DSSETMIXBINVOLUMESB }, // (Offset,Value)-Pair #1 + + // 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 + + // 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 + + // CDirectSoundBuffer_SetMixBinVolumes+0x49 : pop edi + { 0x49, 0x5F }, // (Offset,Value)-Pair #15 + + // CDirectSoundBuffer_SetMixBinVolumes+0x4B : retn 0x08 + { 0x4B, 0xC2 }, // (Offset,Value)-Pair #16 + { 0x4C, 0x08 }, // (Offset,Value)-Pair #17 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetMixBinVolumes +// ****************************************************************** +SOOVPA<12> IDirectSoundBuffer8_SetMixBinVolumes_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetMixBinVolumes+0x15 : call [CDirectSoundBuffer::SetMixBinVolumes] + { 0x15, XREF_DSSETMIXBINVOLUMESA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_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 + + // IDirectSoundBuffer8_SetMixBinVolumes+0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetMixBinVolumes+0x0F : sbb ecx, ecx + { 0x0F, 0x1B }, // (Offset,Value)-Pair #9 + { 0x10, 0xC9 }, // (Offset,Value)-Pair #10 + + // IDirectSoundBuffer8_SetMixBinVolumes+0x11 : and ecx, eax + { 0x11, 0x23 }, // (Offset,Value)-Pair #11 + { 0x12, 0xC8 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSound::SetPositionA +// ****************************************************************** +SOOVPA<11> CDirectSound_SetPositionA_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSETPOSITIONA, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetPositionA+0x2B : mov ecx, [ebp+0x08] + { 0x2B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x2C, 0x4D }, // (Offset,Value)-Pair #2 + { 0x2D, 0x08 }, // (Offset,Value)-Pair #3 + + // CDirectSound_SetPositionA+0x3F : mov [edx+0x3C], edi + { 0x3F, 0x89 }, // (Offset,Value)-Pair #4 + { 0x40, 0x7A }, // (Offset,Value)-Pair #5 + { 0x41, 0x3C }, // (Offset,Value)-Pair #6 + + // CDirectSound_SetPositionA+0x4C : or word ptr [eax+0xA4], 0x01FF + { 0x4C, 0x66 }, // (Offset,Value)-Pair #7 + { 0x4D, 0x81 }, // (Offset,Value)-Pair #8 + { 0x4E, 0x88 }, // (Offset,Value)-Pair #9 + { 0x4F, 0xA4 }, // (Offset,Value)-Pair #10 + { 0x53, 0xFF }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * DirectSoundCreateBuffer +// ****************************************************************** +SOOVPA<12> DirectSoundCreateBuffer_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, // XRef Is Used + + { + // DirectSoundCreateBuffer+0x2F : call [CDirectSound::CreateSoundBuffer] + { 0x2F, XREF_DSCREATESOUNDBUFFER }, // (Offset,Value)-Pair #1 + + // DirectSoundCreateBuffer+0x04 : and [ebp-0x04], 0 + { 0x04, 0x83 }, // (Offset,Value)-Pair #2 + { 0x05, 0x65 }, // (Offset,Value)-Pair #3 + { 0x06, 0xFC }, // (Offset,Value)-Pair #4 + + // DirectSoundCreateBuffer+0x08 : push ebx; push esi; push edi + { 0x08, 0x53 }, // (Offset,Value)-Pair #5 + { 0x09, 0x56 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x57 }, // (Offset,Value)-Pair #7 + + // DirectSoundCreateBuffer+0x3C : call dword ptr [eax+8] + { 0x3C, 0xFF }, // (Offset,Value)-Pair #8 + { 0x3D, 0x50 }, // (Offset,Value)-Pair #9 + { 0x3E, 0x08 }, // (Offset,Value)-Pair #10 + + // DirectSoundCreateBuffer+0x54 : retn 0x08 + { 0x54, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x55, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * IDirectSound8_CreateSoundBuffer +// ****************************************************************** +SOOVPA<12> IDirectSound8_CreateSoundBuffer_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSound8_CreateSoundBuffer+0x1D : call [CDirectSound::CreateSoundBuffer] + { 0x1D, XREF_DSCREATESOUNDBUFFER }, // (Offset,Value)-Pair #1 + + // IDirectSound8_CreateSoundBuffer+0x04 : mov eax, [esp+8] + { 0x04, 0x8B }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x08 }, // (Offset,Value)-Pair #5 + + // IDirectSound8_CreateSoundBuffer+0x12 : add eax, 0xFFFFFFF8 + { 0x12, 0x83 }, // (Offset,Value)-Pair #6 + { 0x13, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x14, 0xF8 }, // (Offset,Value)-Pair #8 + + // IDirectSound8_CreateSoundBuffer+0x17 : sbb ecx, ecx + { 0x17, 0x1B }, // (Offset,Value)-Pair #9 + { 0x18, 0xC9 }, // (Offset,Value)-Pair #10 + + // IDirectSound8_CreateSoundBuffer+0x21 : retn 0x10 + { 0x21, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x22, 0x10 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetFrequency +// ****************************************************************** +SOOVPA<11> CDirectSoundVoice_SetFrequency_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSBUFFERSETFREQUENCYB, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetFrequency+0x0D : mov eax, [esi+0x10] + { 0x0D, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0E, 0x46 }, // (Offset,Value)-Pair #2 + { 0x0F, 0x10 }, // (Offset,Value)-Pair #3 + + // CDirectSoundVoice_SetFrequency+0x10 : mov eax, [eax+0x10] + { 0x10, 0x8B }, // (Offset,Value)-Pair #4 + { 0x11, 0x40 }, // (Offset,Value)-Pair #5 + { 0x12, 0x10 }, // (Offset,Value)-Pair #6 + + // CDirectSoundVoice_SetFrequency+0x14 : call [abs]; push eax; push esi + { 0x14, 0xE8 }, // (Offset,Value)-Pair #7 + { 0x19, 0x50 }, // (Offset,Value)-Pair #8 + { 0x1A, 0x56 }, // (Offset,Value)-Pair #9 + + // CDirectSoundVoice_SetFrequency+0x22 : retn 0x08 + { 0x21, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x22, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetFrequency +// ****************************************************************** +SOOVPA<17> CDirectSoundBuffer_SetFrequency_1_0_4627 = +{ + 0, // Large == 0 + 17, // Count == 17 + + XREF_DSBUFFERSETFREQUENCYA, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetFrequency+0x32 : call [CDirectSoundVoice::SetFrequency] + { 0x32, XREF_DSBUFFERSETFREQUENCYB }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_SetFrequency+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 + + // CDirectSoundBuffer_SetFrequency+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 + + // CDirectSoundBuffer_SetFrequency+0x49 : pop edi + { 0x49, 0x5F }, // (Offset,Value)-Pair #15 + + // CDirectSoundBuffer_SetFrequency+0x4B : retn 0x08 + { 0x4B, 0xC2 }, // (Offset,Value)-Pair #16 + { 0x4C, 0x08 }, // (Offset,Value)-Pair #17 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetFrequency +// ****************************************************************** +SOOVPA<12> IDirectSoundBuffer8_SetFrequency_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_SetFrequency+0x15 : call [CDirectSound::SetFrequency] + { 0x15, XREF_DSBUFFERSETFREQUENCYA }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_SetFrequency+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 + + // IDirectSoundBuffer8_SetFrequency0x0A : add eax, 0xFFFFFFE4 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #6 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #7 + { 0x0C, 0xE4 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_SetFrequency+0x0F : sbb ecx, ecx + { 0x0F, 0x1B }, // (Offset,Value)-Pair #9 + { 0x10, 0xC9 }, // (Offset,Value)-Pair #10 + + // IDirectSoundBuffer8_SetFrequency+0x11 : and ecx, eax + { 0x11, 0x23 }, // (Offset,Value)-Pair #11 + { 0x12, 0xC8 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CMcpxVoiceClient_SetVolume +// ****************************************************************** +SOOVPA<13> CMcpxVoiceClient_SetVolume_1_0_4627 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XREF_DSSTREAMSETVOLUME, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxVoiceClient_SetVolume+0x2A : lea eax, [ecx+ecx*2] + { 0x2A, 0x8D }, // (Offset,Value)-Pair #1 + { 0x2B, 0x04 }, // (Offset,Value)-Pair #2 + { 0x2C, 0x49 }, // (Offset,Value)-Pair #3 + + // CMcpxVoiceClient_SetVolume+0x45 : movzx edx, word ptr [ecx] + { 0x45, 0x0F }, // (Offset,Value)-Pair #4 + { 0x46, 0xB7 }, // (Offset,Value)-Pair #5 + { 0x47, 0x11 }, // (Offset,Value)-Pair #6 + + // CMcpxVoiceClient_SetVolume+0x6C : mov edx, [ebp+eax*4-0x14] + { 0x6C, 0x8B }, // (Offset,Value)-Pair #7 + { 0x6D, 0x54 }, // (Offset,Value)-Pair #8 + { 0x6E, 0x85 }, // (Offset,Value)-Pair #9 + { 0x6F, 0xEC }, // (Offset,Value)-Pair #10 + + // CMcpxVoiceClient_SetVolume+0x84 : inc eax; inc ecx, inc ecx + { 0x84, 0x40 }, // (Offset,Value)-Pair #11 + { 0x85, 0x41 }, // (Offset,Value)-Pair #12 + { 0x86, 0x41 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetVolume +// ****************************************************************** +SOOVPA<11> CDirectSoundStream_SetVolume_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // CDirectSoundStream_SetVolume+0x15 : call [CMcpxVoiceClient::SetVolume] + { 0x15, XREF_DSSTREAMSETVOLUME }, // (Offset,Value)-Pair #1 + + // CDirectSoundStream_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 + + // CDirectSoundStream_SetVolume+0x0B : sub edx, [eax+0x20] + { 0x0B, 0x2B }, // (Offset,Value)-Pair #6 + { 0x0C, 0x50 }, // (Offset,Value)-Pair #7 + { 0x0D, 0x20 }, // (Offset,Value)-Pair #8 + + // CDirectSoundStream_SetVolume+0x11 : mov ecx, [ecx+0x0C] + { 0x11, 0x8B }, // (Offset,Value)-Pair #9 + { 0x12, 0x49 }, // (Offset,Value)-Pair #10 + { 0x13, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_LockA +// ****************************************************************** +SOOVPA<13> IDirectSoundBuffer8_LockA_1_0_4627 = +{ + 0, // Large == 0 + 13,// Count == 10 + + XREF_DSBUFFERLOCKA, // XRef Is Saved + 0, // XRef Not Used + + { + // IDirectSoundBuffer8_LockA+0x37 : test [ebp+0x24], 1 + { 0x37, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x38, 0x45 }, // (Offset,Value)-Pair #2 + { 0x39, 0x24 }, // (Offset,Value)-Pair #3 + { 0x3A, 0x01 }, // (Offset,Value)-Pair #4 + + // IDirectSoundBuffer8_LockA+0x5C : mov eax, [eax+0xBC] + { 0x5C, 0x8B }, // (Offset,Value)-Pair #5 + { 0x5D, 0x80 }, // (Offset,Value)-Pair #6 + { 0x5E, 0xBC }, // (Offset,Value)-Pair #7 + { 0x5F, 0x00 }, // (Offset,Value)-Pair #8 + + // IDirectSoundBuffer8_LockA+0xA4 : jnb +0x11; mov esi, [esi+0x1C] + { 0xA2, 0x73 }, // (Offset,Value)-Pair #9 + { 0xA3, 0x11 }, // (Offset,Value)-Pair #10 + { 0xA4, 0x8B }, // (Offset,Value)-Pair #11 + { 0xA5, 0x76 }, // (Offset,Value)-Pair #12 + { 0xA6, 0x1C }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * CMcpxBuffer_GetStatus +// ****************************************************************** +SOOVPA<11> CMcpxBuffer_GetStatus_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSBUFFERGETSTATUSA, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_GetStatus+0x0A : mov esi, ecx + { 0x0A, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0B, 0xF1 }, // (Offset,Value)-Pair #2 + + // CMcpxBuffer_GetStatus+0x20 : jz +0x18 + { 0x20, 0x74 }, // (Offset,Value)-Pair #3 + { 0x21, 0x18 }, // (Offset,Value)-Pair #4 + + // CMcpxBuffer_GetStatus+0x22 : test word ptr [esi+0x12], 0x8002 + { 0x22, 0x66 }, // (Offset,Value)-Pair #5 + { 0x23, 0xF7 }, // (Offset,Value)-Pair #6 + { 0x24, 0x46 }, // (Offset,Value)-Pair #7 + { 0x25, 0x12 }, // (Offset,Value)-Pair #8 + + // CMcpxBuffer_GetStatus+0x2C : test word ptr [esi+0x12], 0x200 + { 0x2C, 0x66 }, // (Offset,Value)-Pair #9 + { 0x2D, 0xF7 }, // (Offset,Value)-Pair #10 + { 0x2E, 0x46 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CMcpxBuffer_GetStatus +// ****************************************************************** +SOOVPA<10> CMcpxBuffer_GetStatus_1_0_4721 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSBUFFERGETSTATUSA, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_GetStatus+0x00 : movzx eax, word ptr [esi+0x12] + { 0x00, 0x0F }, // (Offset,Value)-Pair #5 + { 0x01, 0xB7 }, // (Offset,Value)-Pair #6 + { 0x02, 0x41 }, // (Offset,Value)-Pair #7 + { 0x03, 0x12 }, // (Offset,Value)-Pair #8 + + // CMcpxBuffer_GetStatus+0x27 : mov ecx, 0x8001 + { 0x27, 0xB9 }, // (Offset,Value)-Pair #3 + { 0x28, 0x01 }, // (Offset,Value)-Pair #4 + { 0x29, 0x80 }, // (Offset,Value)-Pair #4 + { 0x2A, 0x00 }, // (Offset,Value)-Pair #4 + + // CMcpxBuffer_GetStatus+0x39 : mov [ecx], eax + { 0x39, 0x89 }, // (Offset,Value)-Pair #5 + { 0x3A, 0x01 }, // (Offset,Value)-Pair #6 + } +}; + +// ****************************************************************** +// * CMcpxBuffer_GetStatus +// ****************************************************************** +//SOOVPA<11> CMcpxBuffer_GetStatus_1_0_4928 = +//{ +// 0, // Large == 0 +// 11, // Count == 11 +// +// XREF_DSBUFFERGETSTATUSA, // XRef Is Saved +// 0, // XRef Not Used +// +// { +// // CMcpxBuffer_GetStatus+0x0A : mov esi, ecx +// { 0x0A, 0x8B }, // (Offset,Value)-Pair #1 +// { 0x0B, 0xF1 }, // (Offset,Value)-Pair #2 +// +// // CMcpxBuffer_GetStatus+0x1B : jnz +0x44 +// { 0x1B, 0x75 }, // (Offset,Value)-Pair #3 +// { 0x1C, 0x44 }, // (Offset,Value)-Pair #4 +// +// // CMcpxBuffer_GetStatus+0x23 : movzx eax, word ptr [esi+0x12] +// { 0x23, 0x0F }, // (Offset,Value)-Pair #5 +// { 0x24, 0xB7 }, // (Offset,Value)-Pair #6 +// { 0x25, 0x46 }, // (Offset,Value)-Pair #7 +// { 0x26, 0x12 }, // (Offset,Value)-Pair #8 +// +// // CMcpxBuffer_GetStatus+0x3C : movzx eax, word ptr [esi+0x12] +// { 0x3C, 0x0F }, // (Offset,Value)-Pair #9 +// { 0x3D, 0xB7 }, // (Offset,Value)-Pair #10 +// { 0x3E, 0x46 }, // (Offset,Value)-Pair #11 +// } +//}; + +// ****************************************************************** +// * CMcpxBuffer_GetStatusB +// ****************************************************************** +SOOVPA<12> CMcpxBuffer_GetStatusB_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_DSBUFFERGETSTATUSA, // XRef Is Saved + 0, // XRef Not Used + + { + { 0x16, 0x6A }, // (Offset,Value)-Pair #1 + { 0x17, 0x00 }, // (Offset,Value)-Pair #2 + { 0x18, 0x5A }, // (Offset,Value)-Pair #3 + + { 0x1C, 0x42 }, // (Offset,Value)-Pair #4 + { 0x1D, 0xF6 }, // (Offset,Value)-Pair #5 + { 0x1E, 0xC4 }, // (Offset,Value)-Pair #6 + { 0x1F, 0x02 }, // (Offset,Value)-Pair #7 + + { 0x29, 0xB9 }, // (Offset,Value)-Pair #8 + { 0x2A, 0x01 }, // (Offset,Value)-Pair #9 + { 0x2B, 0x80 }, // (Offset,Value)-Pair #10 + + { 0x3F, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x40, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer_GetStatus +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_GetStatus_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSBUFFERGETSTATUSB, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_GetStatus+0x35 : call [CMcpxBuffer::GetStatus] + { 0x35, XREF_DSBUFFERGETSTATUSA }, // (Offset,Value)-Pair #1 + + // CDirectSoundBuffer_GetStatus+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 + + // CDirectSoundBuffer_GetStatus+0x3D : jz +0x0B + { 0x3D, 0x74 }, // (Offset,Value)-Pair #7 + { 0x3E, 0x0B }, // (Offset,Value)-Pair #8 + + // CDirectSoundBuffer_GetStatus+0x4E : retn 0x08 + { 0x4E, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x4F, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_GetStatus +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_GetStatus_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer8_GetStatus+0x15 : call [CDirectSoundBuffer::GetStatus] + { 0x15, XREF_DSBUFFERGETSTATUSB }, // (Offset,Value)-Pair #1 + + // IDirectSoundBuffer8_GetStatus+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 + + // IDirectSoundBuffer8_GetStatus+0x0F : sbb ecx, ecx + { 0x0F, 0x1B }, // (Offset,Value)-Pair #6 + { 0x10, 0xC9 }, // (Offset,Value)-Pair #7 + + // IDirectSoundBuffer8_GetStatus+0x11 : and ecx, eax + { 0x11, 0x23 }, // (Offset,Value)-Pair #8 + { 0x12, 0xC8 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CDirectSound_GetSpeakerConfig +// ****************************************************************** +SOOVPA<7> CDirectSound_GetSpeakerConfig_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x00 }, + { 0x14, 0x0B }, + { 0x20, 0xB8 }, + { 0x2A, 0x04 }, + { 0x35, 0x81 }, + { 0x40, 0x0B }, + { 0x4C, 0x33 }, + } +}; + +// ****************************************************************** +// * CMcpxBuffer_Play +// ****************************************************************** +SOOVPA<10> CMcpxBuffer_Play_1_0_4721 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSOUNDPLAY, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_Play+0x2E : test byte ptr [eax+9], 20h + { 0x2E, 0xF6 }, // (Offset,Value)-Pair #5 + { 0x2F, 0x40 }, // (Offset,Value)-Pair #6 + { 0x30, 0x09 }, // (Offset,Value)-Pair #7 + { 0x31, 0x20 }, // (Offset,Value)-Pair #8 + + // CMcpxBuffer_Play+0x44 : test byte ptr [esi+12h], 2h + { 0x44, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x45, 0x46 }, // (Offset,Value)-Pair #2 + { 0x46, 0x12 }, // (Offset,Value)-Pair #3 + { 0x47, 0x02 }, // (Offset,Value)-Pair #4 + + // CMcpxBuffer_Play+0x52 : xor eax, eax + { 0x52, 0x33 }, // (Offset,Value)-Pair #9 + { 0x53, 0xC0 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CMcpxBuffer_Play +// ****************************************************************** +SOOVPA<10> CMcpxBuffer_Play_1_0_4928 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSOUNDPLAY, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_Play+0x32 : test byte ptr [esi+12h], 42h + { 0x32, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x33, 0x46 }, // (Offset,Value)-Pair #2 + { 0x34, 0x12 }, // (Offset,Value)-Pair #3 + { 0x35, 0x42 }, // (Offset,Value)-Pair #4 + + // CMcpxBuffer_Play+0x4D : test byte ptr [eax+9], 20h + { 0x4D, 0xF6 }, // (Offset,Value)-Pair #5 + { 0x4E, 0x40 }, // (Offset,Value)-Pair #6 + { 0x4F, 0x09 }, // (Offset,Value)-Pair #7 + { 0x50, 0x20 }, // (Offset,Value)-Pair #8 + + // CMcpxBuffer_Play+0x71 : xor eax, eax + { 0x71, 0x33 }, // (Offset,Value)-Pair #9 + { 0x72, 0xC0 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CDirectSound::SetDistanceFactorA +// ****************************************************************** +SOOVPA<11> CDirectSound_SetDistanceFactorA_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_SETDISTANCEFACTORA,// XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetDistanceFactorA+0x21 : mov eax, 0x80004005 + { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x22, 0x05 }, // (Offset,Value)-Pair #2 + { 0x23, 0x40 }, // (Offset,Value)-Pair #3 + { 0x24, 0x00 }, // (Offset,Value)-Pair #4 + { 0x25, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetDistanceFactorA+0x39 : or byte ptr[eax+0xA4], 0xE0 + { 0x39, 0x80 }, // (Offset,Value)-Pair #6 + { 0x3A, 0x88 }, // (Offset,Value)-Pair #7 + { 0x3B, 0xA4 }, // (Offset,Value)-Pair #8 + { 0x3F, 0xE0 }, // (Offset,Value)-Pair #9 + + // CDirectSound_SetDistanceFactorA+0x4F : jz +0x0B + { 0x4F, 0x74 }, // (Offset,Value)-Pair #10 + { 0x50, 0x0B }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetDistanceFactorA +// ****************************************************************** +SOOVPA<11> CDirectSound_SetDistanceFactorA_1_0_4531 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_SETDISTANCEFACTORA,// XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetDistanceFactorA+0x21 : mov eax, 0x80004005 + { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x22, 0x05 }, // (Offset,Value)-Pair #2 + { 0x23, 0x40 }, // (Offset,Value)-Pair #3 + { 0x24, 0x00 }, // (Offset,Value)-Pair #4 + { 0x25, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetDistanceFactorA+0x39 : or dword ptr[eax+0xA4], 0x60 + { 0x39, 0x83 }, // (Offset,Value)-Pair #6 + { 0x3A, 0x88 }, // (Offset,Value)-Pair #7 + { 0x3B, 0xA4 }, // (Offset,Value)-Pair #8 + { 0x3F, 0x60 }, // (Offset,Value)-Pair #9 + + // CDirectSound_SetDistanceFactorA+0x4F : jz +0x0B + { 0x4F, 0x74 }, // (Offset,Value)-Pair #10 + { 0x50, 0x0B }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetRolloffFactor +// ****************************************************************** +SOOVPA<11> CDirectSound_SetRolloffFactor_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_SETROLLOFFFACTORA, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetRolloffFactor+0x21 : mov eax, 0x80004005 + { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x22, 0x05 }, // (Offset,Value)-Pair #2 + { 0x23, 0x40 }, // (Offset,Value)-Pair #3 + { 0x24, 0x00 }, // (Offset,Value)-Pair #4 + { 0x25, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetRolloffFactor+0x39 : or dword ptr[eax+0xA4], 0x04 + { 0x39, 0x83 }, // (Offset,Value)-Pair #6 + { 0x3A, 0x88 }, // (Offset,Value)-Pair #7 + { 0x3B, 0xA4 }, // (Offset,Value)-Pair #8 + { 0x3F, 0x04 }, // (Offset,Value)-Pair #9 + + // CDirectSound_SetRolloffFactor+0x4F : jz +0x0B + { 0x4F, 0x74 }, // (Offset,Value)-Pair #10 + { 0x50, 0x0B }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetRolloffFactor +// ****************************************************************** +SOOVPA<11> IDirectSound8_SetRolloffFactor_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSound8_SetRolloffFactor+0x1D : call [CDirectSound::SetRolloffFactor] + { 0x1D, XREF_SETROLLOFFFACTORA }, // (Offset,Value)-Pair #1 + + // IDirectSound8_SetRolloffFactor+0x04 : fld [esp+0x0C] + { 0x04, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSound8_SetRolloffFactor+0x0C : push ecx + { 0x0C, 0x51 }, // (Offset,Value)-Pair #6 + + // IDirectSound8_SetRolloffFactor+0x12 : add eax, 0xFFFFFFF8 + { 0x12, 0x83 }, // (Offset,Value)-Pair #7 + { 0x13, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x14, 0xF8 }, // (Offset,Value)-Pair #9 + + // IDirectSound8_SetRolloffFactor+0x21 : retn 0x0C + { 0x21, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x22, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetDopplerFactor +// ****************************************************************** +SOOVPA<14> CDirectSound_SetDopplerFactor_1_0_4531 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XREF_SETDOPPLERFACTOR, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetDopplerFactor+0x21 : mov eax, 0x80004005 + { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x22, 0x05 }, // (Offset,Value)-Pair #2 + { 0x23, 0x40 }, // (Offset,Value)-Pair #3 + { 0x24, 0x00 }, // (Offset,Value)-Pair #4 + { 0x25, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetDopplerFactor+0x33 : mov [eax+0x70], edx + { 0x33, 0x89 }, // (Offset,Value)-Pair #6 + { 0x34, 0x50 }, // (Offset,Value)-Pair #7 + { 0x35, 0x70 }, // (Offset,Value)-Pair #8 + + // CDirectSound_SetDopplerFactor+0x39 : or dword ptr[eax+0xA4], 0x40 + { 0x39, 0x83 }, // (Offset,Value)-Pair #9 + { 0x3A, 0x88 }, // (Offset,Value)-Pair #10 + { 0x3B, 0xA4 }, // (Offset,Value)-Pair #11 + { 0x3F, 0x40 }, // (Offset,Value)-Pair #12 + + // CDirectSound_SetDopplerFactor+0x4F : jz +0x0B + { 0x4F, 0x74 }, // (Offset,Value)-Pair #13 + { 0x50, 0x0B }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * CDirectSound::SetDopplerFactor +// ****************************************************************** +SOOVPA<14> CDirectSound_SetDopplerFactor_1_0_4627 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XREF_SETDOPPLERFACTOR, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetDopplerFactor+0x21 : mov eax, 0x80004005 + { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x22, 0x05 }, // (Offset,Value)-Pair #2 + { 0x23, 0x40 }, // (Offset,Value)-Pair #3 + { 0x24, 0x00 }, // (Offset,Value)-Pair #4 + { 0x25, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetDopplerFactor+0x33 : mov [eax+0x70], edx + { 0x33, 0x89 }, // (Offset,Value)-Pair #6 + { 0x34, 0x50 }, // (Offset,Value)-Pair #7 + { 0x35, 0x70 }, // (Offset,Value)-Pair #8 + + // CDirectSound_SetDopplerFactor+0x39 : or byte ptr[eax+0xA4], 0x80 + { 0x39, 0x80 }, // (Offset,Value)-Pair #9 + { 0x3A, 0x88 }, // (Offset,Value)-Pair #10 + { 0x3B, 0xA4 }, // (Offset,Value)-Pair #11 + { 0x3F, 0x80 }, // (Offset,Value)-Pair #12 + + // CDirectSound_SetDopplerFactor+0x4F : jz +0x0B + { 0x4F, 0x74 }, // (Offset,Value)-Pair #13 + { 0x50, 0x0B }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirectSound8_SetDopplerFactor +// ****************************************************************** +SOOVPA<11> IDirectSound8_SetDopplerFactor_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSound8_SetDopplerFactor+0x1D : call [CDirectSound::SetDopplerFactor] + { 0x1D, XREF_SETDOPPLERFACTOR}, // (Offset,Value)-Pair #1 + + // IDirectSound8_SetDopplerFactor+0x04 : fld [esp+0x0C] + { 0x04, 0xD9 }, // (Offset,Value)-Pair #2 + { 0x05, 0x44 }, // (Offset,Value)-Pair #3 + { 0x06, 0x24 }, // (Offset,Value)-Pair #4 + { 0x07, 0x0C }, // (Offset,Value)-Pair #5 + + // IDirectSound8_SetDopplerFactor+0x0C : push ecx + { 0x0C, 0x51 }, // (Offset,Value)-Pair #6 + + // IDirectSound8_SetDopplerFactor+0x12 : add eax, 0xFFFFFFF8 + { 0x12, 0x83 }, // (Offset,Value)-Pair #7 + { 0x13, 0xC0 }, // (Offset,Value)-Pair #8 + { 0x14, 0xF8 }, // (Offset,Value)-Pair #9 + + // IDirectSound8_SetDopplerFactor+0x21 : retn 0x0C + { 0x21, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x22, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetRolloffFactor +// ****************************************************************** +SOOVPA<9> CDirectSoundVoice_SetRolloffFactor_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSVOICESETROLLOFFFACTOR, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetRolloffFactor+0x0D : mov edx, [esp+arg_4] + { 0x0D, 0x8B }, + { 0x0E, 0x54 }, + { 0x0F, 0x24 }, + { 0x10, 0x08 }, + + // CDirectSoundVoice_SetRolloffFactor+0x11 : mov [eax+44h], edx + { 0x11, 0x89 }, + { 0x12, 0x50 }, + { 0x13, 0x44 }, + + // CDirectSoundVoice_SetRolloffFactor+0x30 : retn 0Ch + { 0x31, 0x0C }, + { 0x32, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetRolloffFactor +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_SetRolloffFactor_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSBUFFERSETROLLOFFFACTOR, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetRolloffFactor+0x39 : call [CDirectSoundVoice::SetRolloffFactor] + { 0x3A, XREF_DSVOICESETROLLOFFFACTOR }, + + // CDirectSoundBuffer_SetRolloffFactor+0x21 : mov eax, 80004005h + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + + // CDirectSoundBuffer_SetRolloffFactor+0x32 : fstp [esp+0Ch+var_C] + { 0x32, 0xD9 }, + { 0x33, 0x1C }, + { 0x34, 0x24 }, + + // CDirectSoundBuffer_SetRolloffFactor+0x53 : retn 0Ch + { 0x54, 0x0C }, + { 0x55, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetRolloffFactor +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer_SetRolloffFactor_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetRolloffFactor+0x1C : call [CDirectSoundBuffer::SetRolloffFactor] + { 0x1D, XREF_DSBUFFERSETROLLOFFFACTOR }, + + // IDirectSoundBuffer_SetRolloffFactor+0x04 : fld [esp+4+arg_4] + { 0x04, 0xD9 }, + { 0x05, 0x44 }, + { 0x06, 0x24 }, + { 0x07, 0x0C }, + + // IDirectSoundBuffer_SetRolloffFactor+0x12 : add eax, 0FFFFFFE4 + { 0x12, 0x83 }, + { 0x13, 0xC0 }, + { 0x14, 0xE4 }, + + // IDirectSoundBuffer_SetRolloffFactor+0x21 : retn 0Ch + { 0x22, 0x0C }, + { 0x23, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetDistanceFactor +// ****************************************************************** +SOOVPA<9> CDirectSoundVoice_SetDistanceFactor_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSVOICESETDISTANCEFACTOR, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetDistanceFactor+0x0D : mov edx, [esp+arg_4] + { 0x0D, 0x8B }, + { 0x0E, 0x54 }, + { 0x0F, 0x24 }, + { 0x10, 0x08 }, + + // CDirectSoundVoice_SetDistanceFactor+0x11 : mov [eax+40h], edx + { 0x11, 0x89 }, + { 0x12, 0x50 }, + { 0x13, 0x40 }, + + // CDirectSoundVoice_SetDistanceFactor+0x30 : retn 0Ch + { 0x31, 0x0C }, + { 0x32, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetDistanceFactor +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_SetDistanceFactor_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSBUFFERSETDISTANCEFACTOR, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetDistanceFactor+0x39 : call [CDirectSoundVoice::SetDistanceFactor] + { 0x3A, XREF_DSVOICESETDISTANCEFACTOR }, + + // CDirectSoundBuffer_SetDistanceFactor+0x21 : mov eax, 80004005h + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + + // CDirectSoundBuffer_SetDistanceFactor+0x32 : fstp [esp+0Ch+var_C] + { 0x32, 0xD9 }, + { 0x33, 0x1C }, + { 0x34, 0x24 }, + + // CDirectSoundBuffer_SetDistanceFactor+0x53 : retn 0Ch + { 0x54, 0x0C }, + { 0x55, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetDistanceFactor +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer_SetDistanceFactor_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetDistanceFactor+0x1C : call [CDirectSoundBuffer::SetDistanceFactor] + { 0x1D, XREF_DSBUFFERSETDISTANCEFACTOR }, + + // IDirectSoundBuffer_SetDistanceFactor+0x04 : fld [esp+4+arg_4] + { 0x04, 0xD9 }, + { 0x05, 0x44 }, + { 0x06, 0x24 }, + { 0x07, 0x0C }, + + // IDirectSoundBuffer_SetDistanceFactor+0x12 : add eax, 0FFFFFFE4 + { 0x12, 0x83 }, + { 0x13, 0xC0 }, + { 0x14, 0xE4 }, + + // IDirectSoundBuffer_SetSetDistanceFactor+0x21 : retn 0Ch + { 0x22, 0x0C }, + { 0x23, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetConeAngles +// ****************************************************************** +SOOVPA<9> CDirectSoundVoice_SetConeAngles_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSVOICESETCONEANGLES, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetConeAngles+0x0D : mov edx, [esp+arg_4] + { 0x0D, 0x8B }, + { 0x0E, 0x54 }, + { 0x0F, 0x24 }, + { 0x10, 0x08 }, + + // CDirectSoundVoice_SetConeAngles+0x11 : mov [ecx+1Ch], edx + { 0x11, 0x89 }, + { 0x12, 0x51 }, + { 0x13, 0x1C }, + + // CDirectSoundVoice_SetConeAngles+0x40 : retn 10h + { 0x41, 0x10 }, + { 0x42, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetConeAngles +// ****************************************************************** +SOOVPA<11> CDirectSoundBuffer_SetConeAngles_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSBUFFERSETCONEANGLES, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetConeAngles+0x39 : call [CDirectSoundVoice::SetConeAngles] + { 0x3A, XREF_DSVOICESETCONEANGLES }, + + // CDirectSoundBuffer_SetConeAngles+0x21 : mov eax, 80004005h + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + + // CDirectSoundBuffer_SetConeAngles+0x31 : push [esp+0Ch+arg_4] + { 0x31, 0xFF }, + { 0x32, 0x74 }, + { 0x33, 0x24 }, + { 0x34, 0x18 }, + + // CDirectSoundBuffer_SetConeAngles+0x53 : retn 10h + { 0x54, 0x10 }, + { 0x55, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetConeAngles +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer_SetConeAngles_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetConeAngles+0x1C : call [CDirectSoundBuffer::SetConeAngles] + { 0x1D, XREF_DSBUFFERSETCONEANGLES }, + + // IDirectSoundBuffer_SetConeAngles+0x04 : mov eax, [esp+4+arg_0] + { 0x04, 0x8B }, + { 0x05, 0x44 }, + { 0x06, 0x24 }, + { 0x07, 0x08 }, + + // IDirectSoundBuffer_SetConeAngles+0x12 : add eax, 0FFFFFFE4 + { 0x12, 0x83 }, + { 0x13, 0xC0 }, + { 0x14, 0xE4 }, + + // IDirectSoundBuffer_SetConeAngles+0x21 : retn 10h + { 0x22, 0x10 }, + { 0x23, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetConeOrientation +// ****************************************************************** +SOOVPA<8> CDirectSoundVoice_SetConeOrientation_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSVOICESETCONEORIENTATION, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetConeOrientation+0x0F : mov edx, [ebp+arg_4] + { 0x0F, 0x8B }, + { 0x10, 0x55 }, + { 0x11, 0x0C }, + + // CDirectSoundVoice_SetConeOrientation+0x12 : mov [ecx+24h], edx + { 0x12, 0x89 }, + { 0x13, 0x51 }, + { 0x14, 0x24 }, + + // CDirectSoundVoice_SetConeOrientation+0x4F : retn 14h + { 0x50, 0x14 }, + { 0x51, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetConeOrientation +// ****************************************************************** +SOOVPA<9> CDirectSoundBuffer_SetConeOrientation_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSBUFFERSETCONEORIENTATION, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetConeOrientation+0x49 : call [CDirectSoundVoice::SetConeOrientation] + { 0x4A, XREF_DSVOICESETCONEORIENTATION }, + + // CDirectSoundBuffer_SetConeOrientation+0x2B : fld [ebp+arg_C] + { 0x2B, 0xD9 }, + { 0x2C, 0x45 }, + { 0x2D, 0x14 }, + + // CDirectSoundBuffer_SetConeOrientation+0x43 : fstp [esp+18h+var_18] + { 0x43, 0xD9 }, + { 0x44, 0x1C }, + { 0x45, 0x24 }, + + // CDirectSoundBuffer_SetConeOrientation+0x64 : retn 14h + { 0x65, 0x14 }, + { 0x66, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetConeOrientation +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_SetConeOrientation_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetConeOrientation+0x2C : call [CDirectSoundBuffer::SetConeOrientation] + { 0x2D, XREF_DSBUFFERSETCONEORIENTATION }, + + // IDirectSoundBuffer_SetConeOrientation+0x06 : fld [ebp+arg_C] + { 0x06, 0xD9 }, + { 0x07, 0x45 }, + { 0x08, 0x14 }, + + // IDirectSoundBuffer_SetConeOrientation+0x28 : fstp [esp+10h+var_10] + { 0x28, 0xD9 }, + { 0x29, 0x1C }, + { 0x2A, 0x24 }, + + // IDirectSoundBuffer_SetConeOrientation+0x32 : retn 14h + { 0x33, 0x14 }, + { 0x34, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetConeOutsideVolume +// ****************************************************************** +SOOVPA<9> CDirectSoundVoice_SetConeOutsideVolume_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSVOICESETCONEOUTSIDEVOLUME, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetConeOutsideVolume+0x0D : mov edx, [esp+arg_4] + { 0x0D, 0x8B }, + { 0x0E, 0x54 }, + { 0x0F, 0x24 }, + { 0x10, 0x08 }, + + // CDirectSoundVoice_SetConeOutsideVolume+0x11 : mov [eax+30h], edx + { 0x11, 0x89 }, + { 0x12, 0x50 }, + { 0x13, 0x30 }, + + // CDirectSoundVoice_SetConeOutsideVolume+0x30 : retn 0Ch + { 0x31, 0x0C }, + { 0x32, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetConeOutsideVolume +// ****************************************************************** +SOOVPA<11> CDirectSoundBuffer_SetConeOutsideVolume_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSBUFFERSETCONEOUTSIDEVOLUME, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetConeOutsideVolume+0x35 : call [CDirectSoundVoice::SetConeOutsideVolume] + { 0x36, XREF_DSVOICESETCONEOUTSIDEVOLUME }, + + // CDirectSoundBuffer_SetConeOutsideVolume+0x21 : mov eax, 80004005h + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + + // CDirectSoundBuffer_SetConeOutsideVolume+0x31 : push [esp+0Ch+arg_0] + { 0x31, 0xFF }, + { 0x32, 0x74 }, + { 0x33, 0x24 }, + { 0x34, 0x14 }, + + // CDirectSoundBuffer_SetConeOutsideVolume+0x4F : retn 0Ch + { 0x50, 0x0C }, + { 0x51, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetConeOutsideVolume +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_SetConeOutsideVolume_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetConeOutsideVolume+0x18 : call [CDirectSoundBuffer::SetConeOutsideVolume] + { 0x19, XREF_DSBUFFERSETCONEOUTSIDEVOLUME }, + + // IDirectSoundBuffer_SetConeOutsideVolume+0x0A : push [esp+4+arg_4] + { 0x0A, 0xFF }, + { 0x0B, 0x74 }, + { 0x0C, 0x24 }, + { 0x0D, 0x0C }, + + // IDirectSoundBuffer_SetConeOutsideVolume+0x15 : and ecx, eax + { 0x15, 0x23 }, + { 0x16, 0xC8 }, + + // IDirectSoundBuffer_SetConeOutsideVolume+0x1D : retn 0Ch + { 0x1E, 0x0C }, + { 0x1F, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetPosition +// ****************************************************************** +SOOVPA<8> CDirectSoundVoice_SetPosition_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSVOICESETPOSITION, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetPosition+0x0F : mov edx, [ebp+arg_4] + { 0x0F, 0x8B }, + { 0x10, 0x55 }, + { 0x11, 0x0C }, + + // CDirectSoundVoice_SetPosition+0x12 : mov [ecx+04h], edx + { 0x12, 0x89 }, + { 0x13, 0x51 }, + { 0x14, 0x04 }, + + // CDirectSoundVoice_SetPosition+0x51 : retn 14h + { 0x52, 0x14 }, + { 0x53, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetPosition +// ****************************************************************** +SOOVPA<9> CDirectSoundBuffer_SetPosition_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSBUFFERSETPOSITION, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetPosition+0x49 : call [CDirectSoundVoice::SetPosition] + { 0x4A, XREF_DSVOICESETPOSITION }, + + // CDirectSoundBuffer_SetPosition+0x2B : fld [ebp+arg_C] + { 0x2B, 0xD9 }, + { 0x2C, 0x45 }, + { 0x2D, 0x14 }, + + // CDirectSoundBuffer_SetPosition+0x43 : fstp [esp+18h+var_18] + { 0x43, 0xD9 }, + { 0x44, 0x1C }, + { 0x45, 0x24 }, + + // CDirectSoundBuffer_SetPosition+0x64 : retn 14h + { 0x65, 0x14 }, + { 0x66, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetVelocity +// ****************************************************************** +SOOVPA<8> CDirectSoundVoice_SetVelocity_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSVOICESETVELOCITY, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetVelocity+0x0F : mov edx, [ebp+arg_4] + { 0x0F, 0x8B }, + { 0x10, 0x55 }, + { 0x11, 0x0C }, + + // CDirectSoundVoice_SetVelocity+0x12 : mov [ecx+10h], edx + { 0x12, 0x89 }, + { 0x13, 0x51 }, + { 0x14, 0x10 }, + + // CDirectSoundVoice_SetVelocity+0x4F : retn 14h + { 0x50, 0x14 }, + { 0x51, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetVelocity +// ****************************************************************** +SOOVPA<9> CDirectSoundBuffer_SetVelocity_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSBUFFERSETVELOCITY, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetVelocity+0x49 : call [CDirectSoundVoice::SetVelocity] + { 0x4A, XREF_DSVOICESETVELOCITY }, + + // CDirectSoundBuffer_SetVelocity+0x2B : fld [ebp+arg_C] + { 0x2B, 0xD9 }, + { 0x2C, 0x45 }, + { 0x2D, 0x14 }, + + // CDirectSoundBuffer_SetVelocity+0x43 : fstp [esp+18h+var_18] + { 0x43, 0xD9 }, + { 0x44, 0x1C }, + { 0x45, 0x24 }, + + // CDirectSoundBuffer_SetVelocity+0x64 : retn 14h + { 0x65, 0x14 }, + { 0x66, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetDopplerFactor +// ****************************************************************** +SOOVPA<9> CDirectSoundVoice_SetDopplerFactor_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSVOICESETDOPPLERFACTOR, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetDopplerFactor+0x0D : mov edx, [esp+arg_4] + { 0x0D, 0x8B }, + { 0x0E, 0x54 }, + { 0x0F, 0x24 }, + { 0x10, 0x08 }, + + // CDirectSoundVoice_SetDopplerFactor+0x12 : mov [eax+48h], edx + { 0x11, 0x89 }, + { 0x12, 0x50 }, + { 0x13, 0x48 }, + + // CDirectSoundVoice_SetDopplerFactor+0x31 : retn 0Ch + { 0x31, 0x0C }, + { 0x32, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetDopplerFactor +// ****************************************************************** +SOOVPA<10> CDirectSoundBuffer_SetDopplerFactor_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSBUFFERSETDOPPLERFACTOR, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetDopplerFactor+0x39 : call [CDirectSoundVoice::SetDopplerFactor] + { 0x3A, XREF_DSVOICESETDOPPLERFACTOR }, + + // CDirectSoundBuffer_SetDopplerFactor+0x2D : push [esp+4+arg_8] + { 0x2D, 0xFF }, + { 0x2E, 0x74 }, + { 0x2F, 0x24 }, + { 0x30, 0x14 }, + + // CDirectSoundBuffer_SetDopplerFactor+0x32 : fstp [esp+0Ch+var_C] + { 0x32, 0xD9 }, + { 0x33, 0x1C }, + { 0x34, 0x24 }, + + // CDirectSoundBuffer_SetDopplerFactor+0x53 : retn 0Ch + { 0x54, 0x0C }, + { 0x55, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetDopplerFactor +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_SetDopplerFactor_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetDopplerFactor+0x1C : call [CDirectSoundBuffer::SetDopplerFactor] + { 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR }, + + // IDirectSoundBuffer_SetDopplerFactor+0x08 : mov eax, [esp+4+arg_0] + { 0x08, 0x8B }, + { 0x09, 0x44 }, + { 0x0A, 0x24 }, + { 0x0B, 0x08 }, + + // IDirectSoundBuffer_SetDopplerFactor+0x19 : and ecx, eax + { 0x19, 0x23 }, + { 0x1A, 0xC8 }, + + // IDirectSoundBuffer_SetDopplerFactor+0x21 : retn 0Ch + { 0x22, 0x0C }, + { 0x23, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetI3DL2Source +// ****************************************************************** +SOOVPA<10> CDirectSoundVoice_SetI3DL2Source_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSVOICESETI3DL2SOURCE, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSoundVoice_SetI3DL2Source+0x12 : mov esi, [ecx] + { 0x12, 0x8B }, + { 0x13, 0x31 }, + + // CDirectSoundVoice_SetI3DL2Source+0x14 : mov [edx+4Ch], esi + { 0x14, 0x89 }, + { 0x15, 0x72 }, + { 0x16, 0x4C }, + + // CDirectSoundVoice_SetI3DL2Source+0x44 : fld dword ptr [ecx+10h] + { 0x44, 0xD9 }, + { 0x45, 0x41 }, + { 0x46, 0x10 }, + + // CDirectSoundVoice_SetI3DL2Source+0xAC : retn 0Ch + { 0xAD, 0x0C }, + { 0xAE, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetI3DL2Source +// ****************************************************************** +SOOVPA<11> CDirectSoundBuffer_SetI3DL2Source_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSBUFFERSETI3DL2SOURCE, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetI3DL2Source+0x35 : call [CDirectSoundVoice::SetI3DL2Source] + { 0x36, XREF_DSVOICESETI3DL2SOURCE }, + + // CDirectSoundBuffer_SetI3DL2Source+0x21 : mov eax, 80004005h + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + + // CDirectSoundBuffer_SetI3DL2Source+0x31 : push [esp+0Ch+arg_0] + { 0x31, 0xFF }, + { 0x32, 0x74 }, + { 0x33, 0x24 }, + { 0x34, 0x14 }, + + // CDirectSoundBuffer_SetI3DL2Source+0x4F : retn 0Ch + { 0x50, 0x0C }, + { 0x51, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetI3DL2Source +// ****************************************************************** +SOOVPA<10> IDirectSoundBuffer_SetI3DL2Source_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetI3DL2Source+0x18 : call [CDirectSoundBuffer::SetI3DL2Source] + { 0x19, XREF_DSBUFFERSETI3DL2SOURCE }, + + // IDirectSoundBuffer_SetI3DL2Source+0x04 : push [esp+arg_8] + { 0x04, 0xFF }, + { 0x05, 0x74 }, + { 0x06, 0x24 }, + { 0x07, 0x0C }, + + // IDirectSoundBuffer_SetI3DL2Source+0x0E : add eax, 0FFFFFFE4h + { 0x0E, 0x83 }, + { 0x0F, 0xC0 }, + { 0x10, 0xE4 }, + + // IDirectSoundBuffer_SetI3DL2Source+0x1D : retn 0Ch + { 0x1E, 0x0C }, + { 0x1F, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_Stop +// ****************************************************************** +SOOVPA<11> IDirectSoundBuffer_Stop_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // IDirectSoundBuffer_Stop+0x00 : mov eax, [esp+arg_0] + { 0x00, 0x8B }, + { 0x01, 0x44 }, + { 0x02, 0x24 }, + { 0x03, 0x04 }, + + // IDirectSoundBuffer_Stop+0x04 : mov ecx, eax + { 0x04, 0x8B }, + { 0x05, 0xC8 }, + + // IDirectSoundBuffer_Stop+0x06 : add eax, 0FFFFFFE4h + { 0x06, 0x83 }, + { 0x07, 0xC0 }, + { 0x08, 0xE4 }, + + // IDirectSoundBuffer_Stop+0x15 : retn 4 + { 0x16, 0x04 }, + { 0x17, 0x00 } + } +}; +// +s + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetFormat +// ****************************************************************** +SOOVPA<8> X_DirectSound_CDirectSoundVoice_SetFormat_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundVoice_SetFormat, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x4E }, + { 0x10, 0xE8 }, + { 0x19, 0xD8 }, + { 0x22, 0xFF }, + { 0x2B, 0x0C }, + { 0x34, 0xFF }, + { 0x3F, 0x8B }, + { 0x46, 0x00 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetFormat +// ****************************************************************** +SOOVPA<8> X_DirectSound_CDirectSoundBuffer_SetFormat_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetFormat, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetFormat }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetFormat +// ****************************************************************** +SOOVPA<8> X_IDirectSoundBuffer_SetFormat_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFormat }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * CMcpxStream_Pause +// ****************************************************************** +SOOVPA<11> CMcpxStream_Pause_1_0_4928 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSTREAMPAUSE, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxStream_Pause+0x17 : and ax, 0xFFDF + { 0x17, 0x66 }, // (Offset,Value)-Pair #1 + { 0x18, 0x25 }, // (Offset,Value)-Pair #2 + { 0x19, 0xDF }, // (Offset,Value)-Pair #3 + + // CMcpxStream_Pause+0x32 : jmp +0x56 + { 0x32, 0xEB }, // (Offset,Value)-Pair #4 + { 0x33, 0x56 }, // (Offset,Value)-Pair #5 + + // CMcpxStream_Pause+0x39 : movzx eax, word ptr [esi+0x12] + { 0x39, 0x0F }, // (Offset,Value)-Pair #6 + { 0x3A, 0xB7 }, // (Offset,Value)-Pair #7 + { 0x3B, 0x46 }, // (Offset,Value)-Pair #8 + { 0x3C, 0x12 }, // (Offset,Value)-Pair #9 + + // CMcpxStream_Pause+0x8B : retn 0x04 + { 0x8B, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x8C, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_SetMixBinVolumes (untested) +// ****************************************************************** +SOOVPA<12> CDirectSoundStream_SetMixBinVolumes_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 0 + + XRefNotSaved, + 1, + + { + { 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 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::EnableHeadphones (incorrect?) +// ****************************************************************** +SOOVPA<15> X_DirectSound_CDirectSound_EnableHeadphones_1_0_4627 = +{ + 0, // Large == 0 + 15, // Count == 14 + + XREF_DirectSound_CDirectSound_EnableHeadphones, // Xref Is Saved + XRefNotUsed, + + { + // CDirectSound_EnableHeadphones+0x12 : movzx eax, al + { 0x12, 0x0F }, // (Offset,Value)-Pair #1 + { 0x13, 0xB6 }, // (Offset,Value)-Pair #2 + { 0x14, 0xC0 }, // (Offset,Value)-Pair #3 + + // CDirectSound_EnableHeadphones+0x29 : mov eax, 0x80004005 + { 0x29, 0xB8 }, // (Offset,Value)-Pair #4 + { 0x2A, 0x05 }, // (Offset,Value)-Pair #5 + { 0x2B, 0x40 }, // (Offset,Value)-Pair #6 + { 0x2C, 0x00 }, // (Offset,Value)-Pair #7 + { 0x2D, 0x80 }, // (Offset,Value)-Pair #8 + + // CDirectSound_EnableHeadphones+0x59 : and eax, 0x7FFFFFFF + { 0x59, 0x25 }, // (Offset,Value)-Pair #9 + { 0x5A, 0xFF }, // (Offset,Value)-Pair #10 + { 0x5B, 0xFF }, // (Offset,Value)-Pair #11 + { 0x5C, 0xFF }, // (Offset,Value)-Pair #12 + { 0x5D, 0x7F }, // (Offset,Value)-Pair #13 + + // CDirectSound_EnableHeadphones+0x97 : leave + //{ 0x97, 0xC9 }, // (Offset,Value)-Pair #14 + { 0x98, 0xC2 }, + { 0x99, 0x08 }, + } +}; + +// ****************************************************************** +// * EmuIDirectSound_EnableHeadphones +// ****************************************************************** +SOOVPA<9> EmuIDirectSound_EnableHeadphones_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSound_EnableHeadphones+0x14 : call [CDirectSound::EnableHeadphones] + { 0x15, XREF_DirectSound_CDirectSound_EnableHeadphones }, + + // IDirectSound_EnableHeadphones+0x04 : push dword ptr [esp+8] + { 0x04, 0xFF }, + { 0x05, 0x74 }, + { 0x06, 0x24 }, + { 0x07, 0x08 }, + + // IDirectSound_EnableHeadphones+0x13 : push ecx + { 0x13, 0x51 }, + + // IDirectSound_EnableHeadphones+0x19 : retn 8 + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + { 0x1B, 0x00 }, + } +}; + +/* +// ****************************************************************** +// * CDirectSoundVoice::SetHeadrom +// ****************************************************************** +SOOVPA<9> CDirectSoundVoice_SetHeadroom_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DirectSound_CDirectSoundVoice_SetHeadroom, // XRef is saved + -1, // XRef is not used + + { + { 0x1B, XREF_DSSTREAMSETVOLUME }, + + { 0x0A, 0x56 }, + { 0x0F, 0x2B }, + { 0x10, 0xCE }, + { 0x17, 0x8B }, + { 0x18, 0x4A }, + { 0x19, 0x0C }, + { 0x20, 0xC2 }, + { 0x21, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSoundStream::SetHeadroom +// ****************************************************************** +SOOVPA<12> CDirectSoundStream_SetHeadroom_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, // XRef is used + + { + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom }, + + { 0x21, 0x8B }, + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + { 0x2C, 0x57 }, + { 0x31, 0x83 }, + { 0x32, 0xC0 }, + { 0x33, 0x04 }, + { 0x4F, 0xC2 }, + { 0x50, 0x08 }, + } +}; +*/ + +// ****************************************************************** +// * CDirectSound::SetAllParametersA +// ****************************************************************** +SOOVPA<10> CDirectSound_SetAllParametersA_1_0_4831 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSSETALLPARAMETERSA, // XRef Is Saved + 0, // XRef Not Used + + { + { 0x16, 0x68 }, // (Offset,Value)-Pair #1 + { 0x17, 0x08 }, // (Offset,Value)-Pair #2 + { 0x18, 0x6E }, // (Offset,Value)-Pair #3 + { 0x19, 0x18 }, // (Offset,Value)-Pair #4 + + { 0x2F, 0xD9 }, // (Offset,Value)-Pair #5 + { 0x30, 0x41 }, // (Offset,Value)-Pair #6 + { 0x31, 0x04 }, // (Offset,Value)-Pair #7 + + { 0x87, 0x8B }, // (Offset,Value)-Pair #8 + { 0x88, 0x50 }, // (Offset,Value)-Pair #9 + { 0x89, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::GetOutputLevels +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSound_GetOutputLevels_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSound_GetOutputLevels, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x10 }, + { 0x10, 0xF3 }, + { 0x19, 0x5E }, + { 0x22, 0xFE }, + { 0x2B, 0x85 }, + { 0x34, 0xA6 }, + { 0x3D, 0xD0 }, + } +}; + +// ****************************************************************** +// * IDirectSound_GetOutputLevels +// ****************************************************************** +SOOVPA<9> IDirectSound_GetOutputLevels_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DirectSound_CDirectSound_GetOutputLevels }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetAllParameters +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundVoice_SetAllParameters_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundVoice_SetAllParameters, // Xref Is Saved + XRefNotUsed, + + { + { 0x1E, 0x92 }, + { 0x3E, 0x00 }, + { 0x5E, 0x00 }, + { 0x7E, 0x89 }, + { 0x9E, 0x28 }, + { 0xBE, 0x41 }, + { 0xDE, 0x8B }, + { 0xFE, 0x10 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetAllParameters +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetAllParameters_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetAllParameters, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetAllParameters }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x74 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetAllParameters +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_SetAllParameters_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DirectSound_CDirectSoundBuffer_SetAllParameters }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CMcpxBuffer::Pause +// ****************************************************************** +SOOVPA<7> DirectSound_CMcpxBuffer_Pause_1_0_4928 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CMcpxBuffer_Pause, // Xref Is Saved + XRefNotUsed, + + { + { 0x0D, 0x4D }, + { 0x1C, 0x44 }, + { 0x2B, 0x8B }, + { 0x3A, 0x75 }, + { 0x49, 0x7D }, + { 0x58, 0xEB }, + { 0x67, 0xE8 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::Pause +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_Pause_1_0_4928 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_Pause, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x35, XREF_DirectSound_CMcpxBuffer_Pause }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x39, 0x85 }, + { 0x44, 0xFF }, + { 0x4B, 0xC7 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_Pause +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_Pause_1_0_4928 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_Pause }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CMcpxBuffer::GetStatus +// ****************************************************************** +SOOVPA<7> DirectSound_CMcpxBuffer_GetStatus_1_0_4721 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CMcpxBuffer_GetStatus, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0xE1 }, + { 0x10, 0x24 }, + { 0x19, 0x0F }, + { 0x22, 0x74 }, + { 0x2B, 0x80 }, + { 0x34, 0x24 }, + { 0x3D, 0x33 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::GetStatus +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_GetStatus_1_0_4721 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_GetStatus, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x35, XREF_DirectSound_CMcpxBuffer_GetStatus }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x39, 0x85 }, + { 0x44, 0xFF }, + { 0x4B, 0xC7 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_GetStatus +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_GetStatus_1_0_4721 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_GetStatus }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetMixBins +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundStream_SetMixBins_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x36, XREF_DSSETMIXBINSB }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CMcpxVoiceClient::SetEG +// ****************************************************************** +SOOVPA<8> DirectSound_CMcpxVoiceClient_SetEG_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CMcpxVoiceClient_SetEG, // Xref Is Saved + XRefNotUsed, + + { + { 0x1E, 0x75 }, + { 0x3E, 0x0F }, + { 0x5E, 0xE3 }, + { 0x7E, 0x4E }, + { 0x9E, 0x40 }, + { 0xBE, 0x50 }, + { 0xDE, 0x1C }, + { 0xFE, 0x1C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetEG +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetEG_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundVoice_SetEG, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x0C, XREF_DirectSound_CMcpxVoiceClient_SetEG }, + + { 0x01, 0x44 }, + { 0x04, 0xFF }, + { 0x07, 0x08 }, + { 0x0A, 0x0C }, + { 0x10, 0xC2 }, + { 0x11, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetEG +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundStream_SetEG_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetEG }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetEG +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetEG_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetEG, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetEG }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetEG +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetEG_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetEG }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::FlushEx +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundStream_FlushEx_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSFLUSHEX2, // Xref Is Saved + XRefNotUsed, + + { + { 0x0F, 0x00 }, + { 0x18, 0x0B }, + { 0x25, 0x05 }, + { 0x32, 0x8B }, + { 0x3F, 0x75 }, + { 0x4D, 0x85 }, + { 0x59, 0x15 }, + } +}; + +// ****************************************************************** +// * IDirectSoundStream_FlushEx +// ****************************************************************** +SOOVPA<9> IDirectSoundStream_FlushEx_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x11, XREF_DSFLUSHEX2 }, + + { 0x01, 0x74 }, + { 0x04, 0xFF }, + { 0x07, 0x10 }, + { 0x0A, 0x24 }, + { 0x0D, 0x74 }, + { 0x10, 0xE8 }, + { 0x15, 0xC2 }, + { 0x16, 0x10 }, + } +}; + +// ****************************************************************** +// * XAudioDownloadEffectsImage +// ****************************************************************** +SOOVPA<8> XAudioDownloadEffectsImage_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0xB6 }, + { 0x41, 0x83 }, + { 0x61, 0x8B }, + { 0x80, 0x85 }, + { 0x9E, 0x8B }, + { 0xBE, 0x6A }, + { 0xDE, 0x07 }, + { 0xFE, 0xF7 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetMode +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetMode_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSBUFFERSETMODEB, // Xref Is Saved + XRefNotUsed, + + { + { 0x03, 0x0C }, + { 0x08, 0x04 }, + { 0x0D, 0x89 }, + { 0x12, 0x8B }, + { 0x17, 0x51 }, + { 0x1C, 0xE8 }, + { 0x21, 0x33 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetMode +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetMode_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETMODEA, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x36, XREF_DSBUFFERSETMODEB }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x74 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetMode +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_SetMode_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DSBUFFERSETMODEA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CMcpxVoiceClient::SetFilter +// ****************************************************************** +SOOVPA<8> DirectSound_CMcpxVoiceClient_SetFilter_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CMcpxVoiceClient_SetFilter, // Xref Is Saved + XRefNotUsed, + + { + { 0x1E, 0xFF }, + { 0x3E, 0x73 }, + { 0x5E, 0x3E }, + { 0x7E, 0x0B }, + { 0x9E, 0xF6 }, + { 0xBE, 0x89 }, + { 0xDE, 0x0F }, + { 0xFE, 0xB7 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetFilter +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetFilter_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundVoice_SetFilter, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x0C, XREF_DirectSound_CMcpxVoiceClient_SetFilter }, + + { 0x01, 0x44 }, + { 0x04, 0xFF }, + { 0x07, 0x08 }, + { 0x0A, 0x0C }, + { 0x10, 0xC2 }, + { 0x11, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetFilter +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetFilter_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetFilter, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetFilter }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetFilter +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundStream_SetFilter_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundStream_SetFilter, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetFilter }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetFilter +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetFilter_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFilter }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetPitch +// ****************************************************************** +SOOVPA<6> DirectSound_CDirectSoundVoice_SetPitch_1_0_4627 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XREF_DSBUFFERSETPITCHB, // Xref Is Saved + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x10 }, + { 0x0A, 0x08 }, + { 0x0E, 0x8B }, + { 0x16, 0xC2 }, + { 0x17, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetPitch +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetPitch_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETPITCHA, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x32, XREF_DSBUFFERSETPITCHB }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetPitch +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetPitch_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DSBUFFERSETPITCHA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetHeadroom +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundVoice_SetHeadroom_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundVoice_SetHeadroom, // Xref Is Saved + 1, // Xref Is Used + + { + // CDirectSoundVoice_SetHeadroom+0x1B : call [CMcpxVoiceClient::SetVolume] + { 0x1B, XREF_DSSTREAMSETVOLUME }, + + { 0x03, 0x04 }, + { 0x08, 0x48 }, + { 0x0D, 0x24 }, + { 0x12, 0x48 }, + { 0x17, 0x8B }, + { 0x1F, 0x5E }, + { 0x21, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetHeadroom +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundStream_SetHeadroom_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x36, /*XREF_DirectSound_CDirectSoundVoice_SetHeadroom*/ XREF_DSBUFFERSETHEADROOMA }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetOutputBuffer +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetOutputBuffer_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundVoice_SetOutputBuffer, // Xref Is Saved + XRefNotUsed, + + { + { 0x09, 0xF7 }, + { 0x14, 0x8B }, + { 0x1F, 0x3B }, + { 0x2A, 0xE8 }, + { 0x35, 0x8B }, + { 0x40, 0x74 }, + { 0x4B, 0xD8 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetOutputBuffer +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetOutputBuffer_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetOutputBuffer, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetOutputBuffer }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetOutputBuffer +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundStream_SetOutputBuffer_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetOutputBuffer }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetOutputBuffer +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetOutputBuffer_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetOutputBuffer }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetRolloffCurve +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundVoice_SetRolloffCurve_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSVOICESETROLLOFFCURVE, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x10, 0x08 }, + { 0x13, 0x70 }, + { 0x19, 0xB4 }, + { 0x22, 0x51 }, + { 0x2B, 0x00 }, + { 0x34, 0x10 }, + { 0x3E, 0x33 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetRolloffCurve +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetRolloffCurve_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETROLLOFFCURVE, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x3A, XREF_DSVOICESETROLLOFFCURVE }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x74 }, + { 0x35, 0xFF }, + { 0x40, 0x8B }, + { 0x4F, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetRolloffCurve +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundStream_SetRolloffCurve_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x3E, XREF_DSVOICESETROLLOFFCURVE }, + + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x74 }, + { 0x3A, 0x24 }, + { 0x46, 0x74 }, + { 0x53, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetRolloffCurve +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetRolloffCurve_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DSBUFFERSETROLLOFFCURVE }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CMemoryManager::MemAlloc +// ****************************************************************** +// * FOR DEBUGGING USE ONLY! +// ****************************************************************** +SOOVPA<10> DirectSound_CMemoryManager_MemAlloc_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // DirectSound::CMemoryManager::PoolAlloc + 0x1B: cmp [esp+4+0xC], 0 + { 0x1B, 0x83 }, + { 0x1C, 0x7C }, + { 0x1D, 0x24 }, + { 0x1E, 0x10 }, + { 0x1F, 0x00 }, + // DirectSound::CMemoryManager::PoolAlloc + 0x33: and ecx, 3 + { 0x33, 0x83 }, + { 0x34, 0xE1 }, + { 0x35, 0x03 }, + // DirectSound::CMemoryManager::PoolAlloc + 0x65: retn 0xC + { 0x65, 0xC2 }, + { 0x66, 0x0C } + } +}; + +// ****************************************************************** +// * XWaveFileCreateMediaObject +// ****************************************************************** +SOOVPA<7> XWaveFileCreateMediaObject_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0D, 0x0B }, + { 0x1C, 0xF7 }, + { 0x2B, 0x07 }, + { 0x3A, 0xF0 }, + { 0x49, 0x10 }, + { 0x5C, 0x8B }, + { 0x67, 0x07 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetNotificationPositions +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundBuffer_SetNotificationPositions_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundBuffer_SetNotificationPositions, // Xref Is Saved + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x1B, 0xFF }, + { 0x25, 0x80 }, + { 0x32, 0x74 }, + { 0x3F, 0xF8 }, + { 0x4C, 0x8B }, + { 0x5D, 0x8B }, + } +}; + +// ****************************************************************** +// * XFileCreateMediaObjectEx +// ****************************************************************** +SOOVPA<7> XFileCreateMediaObjectEx_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0xC0 }, + { 0x16, 0xF8 }, + { 0x22, 0xE6 }, + { 0x2E, 0x1C }, + { 0x3A, 0xF0 }, + { 0x46, 0x4C }, + { 0x52, 0xFF }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetNotificationPositions +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_SetNotificationPositions_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DirectSound_CDirectSoundBuffer_SetNotificationPositions }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * Direct_1_0_4627 +// ****************************************************************** +OOVPATable DSound_1_0_4627[] = +{ + // DirectSoundCreate (* unchanged since 4361 *) + { + (OOVPA*)&DirectSoundCreate_1_0_4361, + + XTL::EmuDirectSoundCreate, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreate" + #endif + }, + // DirectSoundDoWork + { + (OOVPA*)&DirectSoundDoWork_1_0_4627, + + XTL::EmuDirectSoundDoWork, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundDoWork" + #endif + }, + // CDirectSound_CreateSoundBuffer + { + (OOVPA*)&CDirectSound_CreateSoundBuffer_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundBuffer (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetPlayRegion (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetPlayRegion_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetPlayRegion, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetPlayRegion" + #endif + }, + // IDirectSoundBuffer8::SetLoopRegion (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetLoopRegion_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetLoopRegion, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetLoopRegion" + #endif + }, + // CDirectSound_SetI3DL2Listener (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSound_SetI3DL2Listener_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetI3DL2Listener (XREF)" + #endif + }, + // IDirectSound8_SetI3DL2Listener (* unchanged since 4432 *) + { + (OOVPA*)&IDirectSound8_SetI3DL2Listener_1_0_4432, + + XTL::EmuIDirectSound8_SetI3DL2Listener, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetI3DL2Listener" + #endif + }, + // CDirectSound_SetMixBinHeadroom + { + (OOVPA*)&CDirectSound_SetMixBinHeadroom_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetMixBinHeadroom (XREF)" + #endif + }, + // IDirectSound8_SetMixBinHeadroom + { + (OOVPA*)&IDirectSound8_SetMixBinHeadroom_1_0_4627, + + XTL::EmuIDirectSound8_SetMixBinHeadroom, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetMixBinHeadroom" + #endif + }, + // IDirectSoundBuffer8::SetHeadroomA (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_SetHeadroomA_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetHeadroomA (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetHeadroom + { + (OOVPA*)&IDirectSoundBuffer8_SetHeadroom_1_0_4928, + + XTL::EmuIDirectSoundBuffer8_SetHeadroom, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetHeadroom" + #endif + }, + // CDirectSound::SetVelocity (XREF) + { + (OOVPA*)&CDirectSound_SetVelocity_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetVelocityA (XRef)" + #endif + }, + // IDirectSound8::SetVelocity (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_SetVelocity_1_0_3936, + + XTL::EmuIDirectSound8_SetVelocity, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetVelocity" + #endif + }, + // CDirectSound::SetAllParametersA (XREF) + { + (OOVPA*)&CDirectSound_SetAllParametersA_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetAllParametersA (XRef)" + #endif + }, + // CDirectSound::SetAllParametersA (XREF) + { + (OOVPA*)&CDirectSound_SetAllParametersA_1_0_4721, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetAllParametersA_4721 (XRef)" + #endif + }, + // CDirectSound_SetAllParametersA (XREF) + { + (OOVPA*)&CDirectSound_SetAllParametersA_1_0_4831, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetAllParametersA_4831 (XREF)" + #endif + }, + // CDirectSound_SetAllParameters (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_SetAllParameters_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetAllParametersA (4928) (XREF)" + #endif + }, + // IDirectSound8::SetAllParameters (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_SetAllParameters_1_0_3936, + + XTL::EmuIDirectSound8_SetAllParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetAllParameters" + #endif + }, + // CDirectSoundVoiceSettings_SetMixBins (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundVoiceSettings_SetMixBins_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoiceSettings::SetMixBins (XREF)" + #endif + }, + // CDirectSoundVoice_SetMixBins (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundVoice_SetMixBins_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMixBins (XREF)" + #endif + }, + // CDirectSoundBuffer_SetMixBins (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundBuffer_SetMixBins_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMixBins (XREF)" + #endif + }, + // IDirectSoundBuffer8_SetMixBins (* unchanged since 4432 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetMixBins_1_0_4432, + + XTL::EmuIDirectSoundBuffer8_SetMixBins, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMixBins" + #endif + }, + // CDirectSoundVoiceSettings_SetMixBinVolumes + { + (OOVPA*)&CDirectSoundVoiceSettings_SetMixBinVolumes_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoiceSettings::SetMixBinVolumes (XREF)" + #endif + }, + // CDirectSoundVoice_SetMixBinVolumes + { + (OOVPA*)&CDirectSoundVoice_SetMixBinVolumes_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMixBinVolumes (XREF)" + #endif + }, + // CDirectSoundBuffer_SetMixBinVolumes + { + (OOVPA*)&CDirectSoundBuffer_SetMixBinVolumes_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMixBinVolumes (XREF)" + #endif + }, + // IDirectSoundBuffer8_SetMixBinVolumes + { + (OOVPA*)&IDirectSoundBuffer8_SetMixBinVolumes_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetMixBinVolumes, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMixBinVolumes" + #endif + }, + // CDirectSound::SetPositionA (XREF) + { + (OOVPA*)&CDirectSound_SetPositionA_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetPositionA (XRef)" + #endif + }, + // CDirectSound::SetPositionA (XREF) + // TODO: Find a cure for laziness... + { + (OOVPA*)&CDirectSound_SetPositionA_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetPositionA_4432 (XRef)" + #endif + }, + // IDirectSound8::SetPosition (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_SetPosition_1_0_3936, + + XTL::EmuIDirectSound8_SetPosition, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetPosition" + #endif + }, + // DirectSoundCreateBuffer + { + (OOVPA*)&DirectSoundCreateBuffer_1_0_4627, + + XTL::EmuDirectSoundCreateBuffer, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreateBuffer" + #endif + }, + // IDirectSound8::CreateSoundBuffer + { + (OOVPA*)&IDirectSound8_CreateSoundBuffer_1_0_4627, + + XTL::EmuIDirectSound8_CreateSoundBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateSoundBuffer" + #endif + }, + // IDirectSound8::AddRef (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_AddRef_1_0_3936, + + XTL::EmuIDirectSound8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_AddRef" + #endif + }, + // CDirectSoundVoice::SetFrequency (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetFrequency_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice_SetFrequency (XRef)" + #endif + }, + // CDirectSoundBuffer::SetFrequency + { + (OOVPA*)&CDirectSoundBuffer_SetFrequency_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundBuffer_SetFrequency (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetFrequency + { + (OOVPA*)&IDirectSoundBuffer8_SetFrequency_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetFrequency, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetFrequency" + #endif + }, + // CMcpxVoiceClient_SetVolume + { + (OOVPA*)&CMcpxVoiceClient_SetVolume_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::SetVolume (XREF)" + #endif + }, + // CDirectSoundStream_SetVolume + { + (OOVPA*)&CDirectSoundStream_SetVolume_1_0_4627, + + XTL::EmuCDirectSoundStream_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetVolume" + #endif + }, + // IDirectSoundBuffer8::LockA (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_LockA_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_LockA (XRef)" + #endif + }, + // IDirectSoundBuffer8::Lock (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_Lock_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Lock" + #endif + }, + // CDirectSound_CreateSoundStream (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSound_CreateSoundStream_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundStream (XREF)" + #endif + }, + // IDirectSound8_CreateStream + { + (OOVPA*)&IDirectSound8_CreateStream_1_0_3936, + + XTL::EmuIDirectSound8_CreateStream, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateStream" + #endif + }, + // DirectSoundCreateStream (* unchanged since 4361 *) + { + (OOVPA*)&DirectSoundCreateStream_1_0_4361, + + XTL::EmuDirectSoundCreateStream, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreateStream" + #endif + }, + // CMcpxStream::Pause (* unchanged since 4361 *) + { + (OOVPA*)&CMcpxStream_Pause_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxStream_Pause (XREF)" + #endif + }, + // CMcpxStream::Pause + { + (OOVPA*)&CMcpxStream_Pause_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "CMcpxStream_Pause_4928 (XREF)" + #endif + }, + // CDirectSoundStream::Pause (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundStream_Pause_1_0_4361, + + XTL::EmuCDirectSoundStream_Pause, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_Pause" + #endif + }, + // CMcpxBuffer::SetBufferData (* unchanged since 4361 *) + { + (OOVPA*)&CMcpxBuffer_SetBufferData_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_SetBufferData (XREF)" + #endif + }, + // CDirectSoundBuffer::SetBufferData (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundBuffer_SetBufferData_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_SetBufferData (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetBufferData (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetBufferData_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetBufferData, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetBufferData" + #endif + }, + // CMcpxBuffer::GetStatus + { + (OOVPA*)&CMcpxBuffer_GetStatus_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetStatus (XREF)" + #endif + }, + // CMcpxBuffer::GetStatus + { + (OOVPA*)&CMcpxBuffer_GetStatus_1_0_4721, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetStatus_4721 (XREF)" + #endif + }, + // CMcpxBuffer::GetStatus + /*{ + (OOVPA*)&CMcpxBuffer_GetStatus_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetStatus_4928 (XREF)" + #endif + },*/ + // CMcpxBuffer::GetStatusB + { + (OOVPA*)&CMcpxBuffer_GetStatusB_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetStatusB (XREF)" + #endif + }, + // CDirectSoundBuffer::GetStatus + { + (OOVPA*)&CDirectSoundBuffer_GetStatus_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_GetStatus (XREF)" + #endif + }, + // IDirectSoundBuffer8::GetStatus + { + (OOVPA*)&IDirectSoundBuffer8_GetStatus_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_GetStatus, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_GetStatus" + #endif + }, + // CMcpxBuffer::SetCurrentPosition (* unchanged since 4361 *) + { + (OOVPA*)&CMcpxBuffer_SetCurrentPosition_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_SetCurrentPosition (XREF)" + #endif + }, + // CDirectSoundBuffer::SetCurrentPosition (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundBuffer_SetCurrentPosition_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_SetCurrentPosition (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetCurrentPosition (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetCurrentPosition_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetCurrentPosition, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetCurrentPosition" + #endif + }, + // CMcpxBuffer::GetCurrentPosition (* unchanged since 4361 *) + { + (OOVPA*)&CMcpxBuffer_GetCurrentPosition_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetCurrentPosition (XREF)" + #endif + }, + // CDirectSoundBuffer::GetCurrentPosition (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundBuffer_GetCurrentPosition_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_GetCurrentPosition (XREF)" + #endif + }, + // IDirectSoundBuffer8::GetCurrentPosition (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_GetCurrentPosition_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_GetCurrentPosition, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_GetCurrentPosition" + #endif + }, + // CDirectSound::GetSpeakerConfig + { + (OOVPA*)&CDirectSound_GetSpeakerConfig_1_0_4627, + + XTL::EmuCDirectSound_GetSpeakerConfig, + + #ifdef _DEBUG_TRACE + "CDirectSound_GetSpeakerConfig" + #endif + }, + // CMcpxBuffer::Play (* unchanged since 4361 *) + { + (OOVPA*)&CMcpxBuffer_Play_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Play (XREF)" + #endif + }, + // CMcpxBuffer::Play + { + (OOVPA*)&CMcpxBuffer_Play_1_0_4721, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Play_4721 (XREF)" + #endif + }, + // CMcpxBuffer::Play + { + (OOVPA*)&CMcpxBuffer_Play_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Play (XREF)" + #endif + }, + // CDirectSoundBuffer::Play (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundBuffer_Play_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_Play (XREF)" + #endif + }, + // IDirectSoundBuffer8::Play (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_Play_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_Play, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_Play" + #endif + }, + // IDirectSound8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_Release_1_0_3936, + + XTL::EmuIDirectSound8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_Release" + #endif + }, + // IDirectSound8::DownloadEffectsImage (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_DownloadEffectsImage_1_0_3936, + + XTL::EmuIDirectSound8_DownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_DownloadEffectsImage" + #endif + }, + // IDirectSound8::SetOrientation (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_SetOrientation_1_0_3936, + + XTL::EmuIDirectSound8_SetOrientation, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetOrientation" + #endif + }, + // CDirectSound::SetDistanceFactorA (XREF) + { + (OOVPA*)&CDirectSound_SetDistanceFactorA_1_0_4531, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetDistanceFactorA (XRef) (4531)" + #endif + }, + // CDirectSound::SetDistanceFactorA (XREF) + { + (OOVPA*)&CDirectSound_SetDistanceFactorA_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetDistanceFactorA (XRef)" + #endif + }, + // IDirectSound8::SetDistanceFactor (* unchanged since 4432 *) + { + (OOVPA*)&IDirectSound8_SetDistanceFactor_1_0_4432, + + XTL::EmuIDirectSound8_SetDistanceFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetDistanceFactor" + #endif + }, + // CDirectSound::SetRolloffFactor (XREF) + { + (OOVPA*)&CDirectSound_SetRolloffFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetRolloffFactor (XRef)" + #endif + }, + // IDirectSound8::SetRolloffFactor + { + (OOVPA*)&IDirectSound8_SetRolloffFactor_1_0_4627, + + XTL::EmuIDirectSound8_SetRolloffFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetRolloffFactor" + #endif + }, + // CDirectSound::SetDopplerFactor (XREF) + { + (OOVPA*)&CDirectSound_SetDopplerFactor_1_0_4531, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetDopplerFactor (XRef) (4531)" + #endif + }, + // CDirectSound::SetDopplerFactor (XREF) + { + (OOVPA*)&CDirectSound_SetDopplerFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetDopplerFactor (XRef)" + #endif + }, + // IDirectSound8::SetDopplerFactor + { + (OOVPA*)&IDirectSound8_SetDopplerFactor_1_0_4627, + + XTL::EmuIDirectSound8_SetDopplerFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetDopplerFactor" + #endif + }, + // CDirectSound::CommitDeferredSettings (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSound_CommitDeferredSettings_1_0_4432, + + XTL::EmuCDirectSound_CommitDeferredSettings, + + #ifdef _DEBUG_TRACE + "EmuCDirectSound_CommitDeferredSettings" + #endif + }, + // CDirectSoundVoice::SetMaxDistance (XREF) (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundVoice_SetMaxDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMaxDistance (XRef)" + #endif + }, + // CDirectSoundBuffer::SetMaxDistance (XREF) (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundBuffer_SetMaxDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMaxDistance (XRef)" + #endif + }, + // IDirectSoundBuffer_SetMaxDistance (* unchanged since 4432 *) + { + (OOVPA*)&IDirectSoundBuffer_SetMaxDistance_1_0_4432, + XTL::EmuIDirectSoundBuffer8_SetMaxDistance, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetMaxDistance" + #endif + }, + // CDirectSoundVoice::SetMinDistance (XREF) (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundVoice_SetMinDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMinDistance (XRef)" + #endif + }, + // CDirectSoundBuffer::SetMinDistance (XREF) (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundBuffer_SetMinDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMinDistance (XRef)" + #endif + }, + // IDirectSoundBuffer_SetMinDistance (* unchanged since 4432 *) + { + (OOVPA*)&IDirectSoundBuffer_SetMinDistance_1_0_4432, + XTL::EmuIDirectSoundBuffer8_SetMinDistance, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetMinDistance" + #endif + }, + // s+ + // CDirectSoundVoice::SetRolloffFactor (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetRolloffFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetRolloffFactor (XRef)" + #endif + }, + // CDirectSoundBuffer::SetRolloffFactor (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetRolloffFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetRolloffFactor (XRef)" + #endif + }, + // IDirectSoundBuffer_SetRolloffFactor + { + (OOVPA*)&IDirectSoundBuffer_SetRolloffFactor_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetRolloffFactor, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetRolloffFactor" + #endif + }, + // CDirectSoundVoice::SetDistanceFactor (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetDistanceFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetDistanceFactor (XRef)" + #endif + }, + // CDirectSoundBuffer::SetDistanceFactor (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetDistanceFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetDistanceFactor (XRef)" + #endif + }, + // IDirectSoundBuffer_SetDistanceFactor + { + (OOVPA*)&IDirectSoundBuffer_SetDistanceFactor_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetDistanceFactor, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetDistanceFactor" + #endif + }, + // CDirectSoundVoice::SetConeAngles (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetConeAngles_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetConeAngles (XRef)" + #endif + }, + // CDirectSoundBuffer::SetConeAngles (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetConeAngles_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetConeAngles (XRef)" + #endif + }, + // IDirectSoundBuffer_SetConeAngles + { + (OOVPA*)&IDirectSoundBuffer_SetConeAngles_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetConeAngles, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetConeAngles" + #endif + }, + // CDirectSoundVoice::SetConeOrientation (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetConeOrientation_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetConeOrientation (XRef)" + #endif + }, + // CDirectSoundBuffer::SetConeOrientation (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetConeOrientation_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetConeOrientation (XRef)" + #endif + }, + // IDirectSoundBuffer_SetConeOrientation + { + (OOVPA*)&IDirectSoundBuffer_SetConeOrientation_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetConeOrientation, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetConeOrientation" + #endif + }, + // CDirectSoundVoice::SetConeOutsideVolume (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetConeOutsideVolume_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetConeOutsideVolume (XRef)" + #endif + }, + // CDirectSoundBuffer::SetConeOutsideVolume (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetConeOutsideVolume_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetConeOutsideVolume (XRef)" + #endif + }, + // IDirectSoundBuffer_SetConeOutsideVolume + { + (OOVPA*)&IDirectSoundBuffer_SetConeOutsideVolume_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetConeOutsideVolume, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetConeOutsideVolume" + #endif + }, + // CDirectSoundVoice::SetPosition (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetPosition_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetPosition (XRef)" + #endif + }, + // CDirectSoundBuffer::SetPosition (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetPosition_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetPosition (XRef)" + #endif + }, + // IDirectSoundBuffer8_SetPosition (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetPosition_1_0_3936, + XTL::EmuIDirectSoundBuffer8_SetPosition, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetPosition" + #endif + }, + // CDirectSoundVoice::SetVelocity (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetVelocity_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetVelocity (XRef)" + #endif + }, + // CDirectSoundBuffer::SetVelocity (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetVelocity_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetVelocity (XRef)" + #endif + }, + // IDirectSoundBuffer8_SetVelocity (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetVelocity_1_0_3936, + XTL::EmuIDirectSoundBuffer8_SetVelocity, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetVelocity" + #endif + }, + // CDirectSoundVoice::SetDopplerFactor (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetDopplerFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetDopplerFactor (XRef)" + #endif + }, + // CDirectSoundBuffer::SetDopplerFactor (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetDopplerFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetDopplerFactor (XRef)" + #endif + }, + // IDirectSoundBuffer_SetDopplerFactor + { + (OOVPA*)&IDirectSoundBuffer_SetDopplerFactor_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetDopplerFactor, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetDopplerFactor" + #endif + }, + // CDirectSoundVoice::SetI3DL2Source (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetI3DL2Source_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetI3DL2Source (XRef)" + #endif + }, + // CDirectSoundBuffer::SetI3DL2Source (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetI3DL2Source_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetI3DL2Source (XRef)" + #endif + }, + // IDirectSoundBuffer_SetI3DL2Source + { + (OOVPA*)&IDirectSoundBuffer_SetI3DL2Source_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetI3DL2Source, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetI3DL2Source" + #endif + }, + // IDirectSoundBuffer_Stop (Possibly weak, but quite OK for 4627 DSOUND) + { + (OOVPA*)&IDirectSoundBuffer_Stop_1_0_4627, + XTL::EmuIDirectSoundBuffer8_Stop, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_Stop" + #endif + }, + // IDirectSoundBuffer8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_Release_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Release" + #endif + }, + // +s + // DirectSound::CDirectSoundVoice::SetFormat (XREF) + { + (OOVPA*)&X_DirectSound_CDirectSoundVoice_SetFormat_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundVoice::SetFormat (XREF)" + #endif + }, + // DirectSound::CDirectSoundBuffer::SetFormat (XREF) + { + (OOVPA*)&X_DirectSound_CDirectSoundBuffer_SetFormat_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::SetFormat (XREF)" + #endif + }, + // IDirectSoundBuffer_SetFormat + { + (OOVPA*)&X_IDirectSoundBuffer_SetFormat_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetFormat, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_SetFormat" + #endif + + }, + // CDirectSoundStream_SetMixBinVolumes + { + (OOVPA*)&CDirectSoundStream_SetMixBinVolumes_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::SetMixBinVolumes (XREF)" + #endif + }, + // DirectSound::CDirectSound::EnableHeadphones (XREF) + { + (OOVPA*)&X_DirectSound_CDirectSound_EnableHeadphones_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::EnableHeadphones (XREF)" + #endif + }, + // EmuIDirectSound_EnableHeadphones + { + (OOVPA*)&EmuIDirectSound_EnableHeadphones_1_0_4627, + XTL::EmuIDirectSound_EnableHeadphones, + + #ifdef _DEBUG_TRACE + "IDirectSound_EnableHeadphones" + #endif + }, + // DirectSound::CDirectSoundVoice::SetHeadroom (XREF) + //{ + // (OOVPA*)&CDirectSoundVoice_SetHeadroom_1_0_4627, + // 0, + + // #ifdef _DEBUG_TRACE + // "CDirectSoundVoice::SetHeadroom (XREF)" + // #endif + //}, + //// CDirectSoundStream_SetHeadroom (XREF) + //{ + // (OOVPA*)&CDirectSoundStream_SetHeadroom_1_0_4627, + // XTL::EmuIDirectSoundStream_SetHeadroom, + + // #ifdef _DEBUG_TRACE + // "IDirectSoundStream_SetHeadroom" + // #endif + //}, + // IDirectSoundBuffer_AddRef (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_AddRef_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_AddRef, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_AddRef" + #endif + }, + // CDirectSound_GetOutputLevels (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_GetOutputLevels_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_GetOutputLevels (XREF)" + #endif + }, + // IDirectSound8_GetOutputLevels + { + (OOVPA*)&IDirectSound_GetOutputLevels_1_0_4627, + + XTL::EmuIDirectSound8_GetOutputLevels, + + #ifdef _DEBUG_TRACE + "IDirectSound_GetOutputLevels" + #endif + }, + // CDirectSoundVoice::SetAllParameters (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetAllParameters_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetAllParameters (XREF)" + #endif + }, + // CDirectSoundBuffer::SetAllParameters (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetAllParameters_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetAllParameters (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetAllParameters + { + (OOVPA*)&IDirectSoundBuffer8_SetAllParameters_1_0_4627, + + XTL::EmuIDirectSound8_SetAllParameters, // Use that for now, EmuIDirectSoundBuffer8_SetAllParameters, + // ^ Okay, it's your call pal... + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetAllParameters" + #endif + }, + // DirectSound_CMcpxBuffer_Pause_1_0_4928 + { + (OOVPA*)&DirectSound_CMcpxBuffer_Pause_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer::Pause_4928 (XREF)" + #endif + }, + // CDirectSoundBuffer::Pause + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_Pause_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::Pause_4928 (XREF)" + #endif + }, + // IDirectSoundBuffer8_Pause + { + (OOVPA*)&IDirectSoundBuffer_Pause_1_0_4928, + + XTL::EmuIDirectSoundBuffer8_Pause, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_Pause_4928 (XREF)" + #endif + }, + // DirectSound::CMcpxBuffer::GetStatus (XREF) + { + (OOVPA*)&DirectSound_CMcpxBuffer_GetStatus_1_0_4721, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CMcpxBuffer::GetStatus (XREF)" + #endif + }, + // DirectSound::CDirectSoundBuffer::GetStatus (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_GetStatus_1_0_4721, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::GetStatus (XREF)" + #endif + }, + // IDirectSoundBuffer_GetStatus + { + (OOVPA*)&IDirectSoundBuffer_GetStatus_1_0_4721, + XTL::EmuIDirectSoundBuffer8_GetStatus, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_GetStatus" + #endif + }, + // CDirectSoundStream::SetMixBins + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetMixBins_1_0_4627, + + XTL::EmuCDirectSoundStream_SetMixBins, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetMixBins" + #endif + }, + // CMcpxVoiceClient::SetEG + { + (OOVPA*)&DirectSound_CMcpxVoiceClient_SetEG_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::SetEG (XREF)" + #endif + }, + // CDirectSoundVoice::SetEG (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetEG_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetEG (XREF)" + #endif + }, + // DirectSound::CDirectSoundStream::SetEG + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetEG_1_0_4627, + + XTL::EmuCDirectSoundStream_SetEG, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream::SetEG" + #endif + }, + // DirectSound::CDirectSoundBuffer::SetEG (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetEG_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetEG (XREF)" + #endif + }, + // IDirectSoundBuffer::SetEG + { + (OOVPA*)&IDirectSoundBuffer_SetEG_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetEG, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer::SetEG" + #endif + }, + // CDirectSoundStream::FlushEx (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundStream_FlushEx_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::FlushEx (XREF)" + #endif + }, + // IDirectSoundStream_FlushEx + { + (OOVPA*)&IDirectSoundStream_FlushEx_1_0_4627, + XTL::EmuIDirectSoundStream_FlushEx, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundStream_FlushEx" + #endif + }, + // XAudioDownloadEffectsImage + { + (OOVPA*)&XAudioDownloadEffectsImage_1_0_4627, + XTL::EmuXAudioDownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "EmuXAudioDownloadEffectsImage" + #endif + }, + // CDirectSoundVoice::SetMode (XRef) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetMode_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMode (XRef)" + #endif + }, + // CDirectSoundBuffer::SetMode (XRef) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetMode_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMode (XRef)" + #endif + }, + // IDirectSoundBuffer_SetMode + { + (OOVPA*)&IDirectSoundBuffer8_SetMode_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetMode, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMode" + #endif + }, + // DirectSound::CMcpxVoiceClient::SetFilter (XREF) + { + (OOVPA*)&DirectSound_CMcpxVoiceClient_SetFilter_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::SetFilter (XREF)" + #endif + }, + // DirectSound::CDirectSoundVoice::SetFilter (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetFilter_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundVoice::SetFilter (XREF)" + #endif + }, + // DirectSound::CDirectSoundBuffer::SetFilter (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetFilter_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::SetFilter (XREF)" + #endif + }, + // DirectSound::CDirectSoundStream::SetFilter (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetFilter_1_0_4627, + XTL::EmuCDirectSoundStream_SetFilter, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundStream::SetFilter (XREF)" + #endif + }, + // IDirectSoundBuffer_SetFilter + { + (OOVPA*)&IDirectSoundBuffer_SetFilter_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetFilter, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_SetFilter" + #endif + }, + // DirectSound::CDirectSoundBuffer::PlayEx (XREF) (* unchanged since 4361 *) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_PlayEx_1_0_4361, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::PlayEx (XREF)" + #endif + }, + // IDirectSoundBuffer_PlayEx (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer_PlayEx_1_0_4361, + XTL::EmuIDirectSoundBuffer8_PlayEx, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_PlayEx" + #endif + }, + // CMcpxBuffer_Stop2 + { + (OOVPA*)&CMcpxBuffer_Stop2_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Stop2 (XREF)" + #endif + }, + // DirectSound::CDirectSoundBuffer::StopEx (XREF) (* unchanged since 4361 *) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_StopEx_1_0_4361, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::StopEx (XREF)" + #endif + }, + // IDirectSoundBuffer_StopEx (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer_StopEx_1_0_4361, + XTL::EmuIDirectSoundBuffer8_StopEx, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer_StopEx" + #endif + }, + // CDirectSound::SetVelocity (XREF) + { + (OOVPA*)&CDirectSound_SetVelocity_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetVelocityA_4432 (XRef)" + #endif + }, + // CDirectSoundVoice::SetPosition (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetPosition_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetPosition_4432 (XRef)" + #endif + }, + // CDirectSoundVoice::SetPitch + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetPitch_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetPitch (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetPitch + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetPitch_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetPitch (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetPitch + { + (OOVPA*)&IDirectSoundBuffer8_SetPitch_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetPitch, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetPitch" + #endif + }, + // DirectSound::CDirectSoundVoice::SetHeadroom (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetHeadroom_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetHeadroom (XREF) ***FOUND IT***" + #endif + }, + // CDirectSoundStream_SetHeadroom (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetHeadroom_1_0_4627, + XTL::EmuIDirectSoundStream_SetHeadroom, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetHeadroom ***FOUND IT***" + #endif + }, + // CDirectSoundVoice::SetOutputBuffer + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetOutputBuffer_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetOutputBuffer (XREF)" + #endif + }, + // CDirectSoundBuffer::SetOutputBuffer + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetOutputBuffer_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetOutputBuffer (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetOutputBuffer + { + (OOVPA*)&IDirectSoundBuffer_SetOutputBuffer_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetOutputBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetPitch" + #endif + }, + // CDirectSoundStream::SetOutputBuffer + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetOutputBuffer_1_0_4627, + + XTL::EmuCDirectSoundStream_SetOutputBuffer, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::SetOutputBuffer" + #endif + }, + // CDirectSoundVoice::SetRolloffCurve (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetRolloffCurve_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetRolloffCurve (XREF)" + #endif + + }, + // CDirectSoundBuffer::SetRolloffCurve (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetRolloffCurve_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetRolloffCurve (XREF)" + #endif + }, + // CDirectSoundStream::SetRolloffCurve (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetRolloffCurve_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::SetRolloffCurve" + #endif + }, + // IDirectSoundBuffer8::SetRolloffCurve + { + (OOVPA*)&IDirectSoundBuffer_SetRolloffCurve_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetRolloffCurve, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetRolloffCurve" + #endif + }, + // XFileCreateMediaObjectEx + { + (OOVPA*)&XFileCreateMediaObjectEx_1_0_4627, + + XTL::EmuXFileCreateMediaObjectEx, + + #ifdef _DEBUG_TRACE + "XFileCreateMediaObjectEx" + #endif + }, + // XWaveFileCreateMediaObject + { + (OOVPA*)&XWaveFileCreateMediaObject_1_0_4627, + + XTL::EmuXWaveFileCreateMediaObject, + + #ifdef _DEBUG_TRACE + "XWaveFileCreateMediaObject" + #endif + }, + // CDirectSoundBuffer::SetNotificationPosition (XREF) + //{ + // (OOVPA*)&DirectSound_CDirectSoundBuffer_SetNotificationPositions_1_0_4627, 0, + + // #ifdef _DEBUG_TRACE + // "CDirectSoundBuffer::SetNotificationPositions (XREF)" + // #endif + //}, + //// IDirectSoundBuffer8::SetNotificationPositions + //{ + // (OOVPA*)&IDirectSoundBuffer_SetNotificationPositions_1_0_4627, 0, + + // #ifdef _DEBUG_TRACE + // "EmuIDirectSoundBuffer8_SetNotificationPositions" + // #endif + //}, +}; + +// ****************************************************************** +// * DSound_1_0_4627_SIZE +// ****************************************************************** +uint32 DSound_1_0_4627_SIZE = sizeof(DSound_1_0_4627); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5233.h b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5233.h new file mode 100644 index 000000000..3de31dc4a --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5233.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.5233.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_1_0_5233_H +#define DSOUND_1_0_5233_H + +#include "OOVPA.h" + +extern OOVPATable DSOUND_1_0_5233[]; +extern uint32 DSOUND_1_0_5233_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5233.inl new file mode 100644 index 000000000..53dfb7492 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5233.inl @@ -0,0 +1,1977 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5233.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::CDirectSound::EnableHeadphones +// ****************************************************************** +SOOVPA<8> CDirectSound_EnableHeadphones_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSENABLEHEADPHONES, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x16, 0x45 }, // (Offset,Value)-Pair #1 + { 0x1D, 0x0B }, // (Offset,Value)-Pair #2 + { 0x2A, 0x05 }, // (Offset,Value)-Pair #3 + { 0x46, 0x95 }, // (Offset,Value)-Pair #4 + { 0x56, 0x80 }, // (Offset,Value)-Pair #5 + { 0x5D, 0x7F }, // (Offset,Value)-Pair #6 + { 0x74, 0xA4 }, // (Offset,Value)-Pair #7 + { 0x99, 0x08 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirectSound8_EnableHeadphones +// ****************************************************************** +SOOVPA<8> IDirectSound8_EnableHeadphones_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + { 0x15, XREF_DSENABLEHEADPHONES }, // (Offset,Value)-Pair #1 + + // IDirectSound8_EnableHeadphones+0x0A : add eax, 0xFFFFFFF8 + { 0x0A, 0x83 }, // (Offset,Value)-Pair #2 + { 0x0B, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x0C, 0xF8 }, // (Offset,Value)-Pair #4 + + // IDirectSound8_EnableHeadphones+0x0F : sbb ecx, ecx + { 0x0F, 0x1B }, // (Offset,Value)-Pair #5 + { 0x10, 0xC9 }, // (Offset,Value)-Pair #6 + + // IDirectSound8_EnableHeadphones+0x19 : retn 0x08 + { 0x19, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x1A, 0x08 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * CDirectSoundStream_FlushEx +// ****************************************************************** +SOOVPA<11> CDirectSoundStream_FlushEx_1_0_5233 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSFLUSHEX2, // XRef Is Saved + 0, // XRef Not Used + + { + { 0x24, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x25, 0x05 }, // (Offset,Value)-Pair #2 + { 0x26, 0x40 }, // (Offset,Value)-Pair #3 + { 0x27, 0x00 }, // (Offset,Value)-Pair #4 + { 0x28, 0x80 }, // (Offset,Value)-Pair #5 + + { 0x36, 0x74 }, // (Offset,Value)-Pair #6 + { 0x37, 0x12 }, // (Offset,Value)-Pair #7 + + { 0x3E, 0xFF }, // (Offset,Value)-Pair #8 + { 0x40, 0x0C }, // (Offset,Value)-Pair #9 + + { 0x67, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x68, 0x10 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_StopEx +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_StopEx_1_0_5233 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + { 0x11, XREF_DSFLUSHEX2 }, // (Offset,Value)-Pair #1 + + { 0x00, 0xFF }, // (Offset,Value)-Pair #2 + { 0x03, 0x10 }, // (Offset,Value)-Pair #3 + + { 0x04, 0xFF }, // (Offset,Value)-Pair #4 + { 0x07, 0x10 }, // (Offset,Value)-Pair #5 + + { 0x08, 0xFF }, // (Offset,Value)-Pair #6 + { 0x0B, 0x10 }, // (Offset,Value)-Pair #7 + + { 0x15, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x16, 0x10 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * CMcpxStream_Pause +// ****************************************************************** +SOOVPA<11> CMcpxStream_Pause_1_0_5233 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSTREAMPAUSE, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxStream_Pause+0x17 : and ax, 0xFFDF + { 0x17, 0x66 }, // (Offset,Value)-Pair #1 + { 0x18, 0x25 }, // (Offset,Value)-Pair #2 + { 0x19, 0xDF }, // (Offset,Value)-Pair #3 + + // CMcpxStream_Pause+0x32 : jmp +0x56 + { 0x32, 0xEB }, // (Offset,Value)-Pair #4 + { 0x33, 0x56 }, // (Offset,Value)-Pair #5 + + // CMcpxStream_Pause+0x39 : movzx eax, word ptr [esi+0x12] + { 0x39, 0x0F }, // (Offset,Value)-Pair #6 + { 0x3A, 0xB7 }, // (Offset,Value)-Pair #7 + { 0x3B, 0x46 }, // (Offset,Value)-Pair #8 + { 0x3C, 0x12 }, // (Offset,Value)-Pair #9 + + // CMcpxStream_Pause+0x8B : retn 0x04 + { 0x8B, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x8C, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// CMcpxAPU::SynchPlayback +// ****************************************************************** +SOOVPA<8> CMcpxAPU_SynchPlayback_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSYNCHPLAYBACKB, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x0C, 0x74 }, // (Offset,Value)-Pair #1 + { 0x1A, 0x1A }, // (Offset,Value)-Pair #2 + { 0x25, 0x53 }, // (Offset,Value)-Pair #3 + { 0x37, 0xF2 }, // (Offset,Value)-Pair #4 + { 0x58, 0xBC }, // (Offset,Value)-Pair #5 + { 0x84, 0x43 }, // (Offset,Value)-Pair #6 + { 0x9E, 0x64 }, // (Offset,Value)-Pair #7 + { 0xFF, 0x00 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * CDirectSound::SynchPlayback +// ****************************************************************** +SOOVPA<10> CDirectSound_SynchPlayback_1_0_5233 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DSSYNCHPLAYBACKA, // Xref Is Saved + 1, // Xref Not Used + + { + { 0x08, XREF_DSSYNCHPLAYBACKB }, // (Offset,Value)-Pair #1 + + // CDirectSound_SynchPlayback+0x00 : mov eax, [esp+0x04] + { 0x00, 0x8B }, // (Offset,Value)-Pair #2 + { 0x01, 0x44 }, // (Offset,Value)-Pair #3 + { 0x02, 0x24 }, // (Offset,Value)-Pair #4 + { 0x03, 0x04 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SynchPlayback+0x04 : mov ecx, [eax+0x0C] + { 0x04, 0x8B }, // (Offset,Value)-Pair #6 + { 0x05, 0x48 }, // (Offset,Value)-Pair #7 + { 0x06, 0x0C }, // (Offset,Value)-Pair #8 + + // CDirectSound_SynchPlayback+0x0C : retn 0x04 + { 0x0C, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x0D, 0x04 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * IDirectSound8::SynchPlayback +// ****************************************************************** +SOOVPA<8> IDirectSound8_SynchPlayback_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + { 0x11, XREF_DSSYNCHPLAYBACKA }, // (Offset,Value)-Pair #1 + + // IDirectSound8_SynchPlayback+0x06 : add eax, 0xFFFFFFF8 + { 0x06, 0x83 }, // (Offset,Value)-Pair #2 + { 0x07, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x08, 0xF8 }, // (Offset,Value)-Pair #4 + + // IDirectSound8_SynchPlayback+0x0B : sbb ecx, ecx + { 0x0B, 0x1B }, // (Offset,Value)-Pair #5 + { 0x0C, 0xC9 }, // (Offset,Value)-Pair #6 + + // IDirectSound8_SynchPlayback+0x15 : retn 0x04 + { 0x15, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x16, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetFormat +// ****************************************************************** +SOOVPA<8> X_DirectSound_CDirectSoundVoice_SetFormat_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundVoice_SetFormat, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x06, 0x4E }, + { 0x0E, 0xE8 }, + { 0x18, 0x4E }, + { 0x25, 0xFF }, + { 0x2E, 0x0C }, + { 0x34, 0x85 }, + { 0x38, 0x8B }, + { 0x43, 0x00 }, + } +}; + +// ****************************************************************** +// CDirectSoundVoice::SetMode +// ****************************************************************** +SOOVPA<8> CDirectSoundVoice_SetMode_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETMODEB, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x00, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x07, 0x24 }, // (Offset,Value)-Pair #2 + { 0x0B, 0x10 }, // (Offset,Value)-Pair #3 + { 0x0E, 0xB4 }, // (Offset,Value)-Pair #4 + { 0x18, 0x3C }, // (Offset,Value)-Pair #5 + { 0x1A, 0x06 }, // (Offset,Value)-Pair #6 + { 0x21, 0x33 }, // (Offset,Value)-Pair #7 + { 0x24, 0x0C }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// CDirectSoundBuffer::SetMode +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetMode_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETMODEA, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x36, XREF_DSBUFFERSETMODEB }, // (Offset,Value)-Pair #1 + + { 0x01, 0xE8 }, // (Offset,Value)-Pair #2 + { 0x15, 0x0B }, // (Offset,Value)-Pair #3 + { 0x22, 0x05 }, // (Offset,Value)-Pair #4 + { 0x27, 0x26 }, // (Offset,Value)-Pair #5 + { 0x34, 0x14 }, // (Offset,Value)-Pair #6 + { 0x3F, 0x0B }, // (Offset,Value)-Pair #7 + { 0x50, 0x0C }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetMode +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetMode_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + { 0x19, XREF_DSBUFFERSETMODEA }, // (Offset,Value)-Pair #1 + + // IDirectSound8_EnableHeadphones+0x0E : add eax, 0xFFFFFFE4 + { 0x0E, 0x83 }, // (Offset,Value)-Pair #2 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #3 + { 0x10, 0xE4 }, // (Offset,Value)-Pair #4 + + // IDirectSound8_EnableHeadphones+0x13 : sbb ecx, ecx + { 0x13, 0x1B }, // (Offset,Value)-Pair #5 + { 0x14, 0xC9 }, // (Offset,Value)-Pair #6 + + // IDirectSound8_EnableHeadphones+0x19 : retn 0x0C + { 0x1D, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x1E, 0x0C }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetVolume +// ****************************************************************** +SOOVPA<8> CDirectSoundVoice_SetVolume_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundVoice_SetVolume, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x15, XREF_DSSTREAMSETVOLUME }, + + { 0x02, 0x24 }, + { 0x06, 0x10 }, + { 0x0A, 0x08 }, + { 0x0E, 0x89 }, + { 0x12, 0x49 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetVolume +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetVolume_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetVolume, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetVolume }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8::SetVolume +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetVolume_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetVolume }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSoundStream::SetVolume +// ****************************************************************** +SOOVPA<9> CDirectSoundStream_SetVolume_1_0_5233 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetVolume }, + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * CDirectSoundStream::SetFrequency +// ****************************************************************** +SOOVPA<8> CDirectSoundStream_SetFrequency_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + { 0x36, XREF_DSBUFFERSETFREQUENCYB }, + + { 0x0E, 0xB6 }, + { 0x15, 0x0B }, + { 0x27, 0x26 }, + { 0x2A, 0x24 }, + { 0x3E, 0x74 }, + { 0x4D, 0x5F }, + { 0x50, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSoundStream::SetMixBins +// ****************************************************************** +SOOVPA<8> CDirectSoundStream_SetMixBins_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + { 0x36, XREF_DSSETMIXBINSB }, + + { 0x0E, 0xB6 }, + { 0x15, 0x0B }, + { 0x27, 0x26 }, + { 0x2A, 0x24 }, + { 0x3E, 0x74 }, + { 0x4D, 0x5F }, + { 0x50, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetRolloffCurve +// ****************************************************************** +SOOVPA<8> CDirectSoundVoice_SetRolloffCurve_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSVOICESETROLLOFFCURVE, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x07, 0x8B }, + { 0x10, 0x08 }, + { 0x12, 0x51 }, + { 0x19, 0xB4 }, + { 0x22, 0x51 }, + { 0x2B, 0x00 }, + { 0x34, 0x10 }, + { 0x3E, 0x33 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetRolloffCurve +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetRolloffCurve_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETROLLOFFCURVE, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x3A, XREF_DSVOICESETROLLOFFCURVE }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x74 }, + { 0x35, 0xFF }, + { 0x40, 0x8B }, + { 0x4F, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetRolloffCurve +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetRolloffCurve_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DSBUFFERSETROLLOFFCURVE }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetMaxDistance +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetMaxDistance_1_0_5344 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETMAXDISTANCE, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x41 }, + { 0x0C, 0x00 }, + { 0x13, 0x3C }, + { 0x1A, 0x00 }, + { 0x21, 0xF6 }, + { 0x28, 0x51 }, + { 0x2F, 0xC0 }, + } +}; +// ****************************************************************** +// * CDirectSoundBuffer::SetMaxDistance +// ****************************************************************** +SOOVPA<11> CDirectSoundBuffer_SetMaxDistance_1_0_5344 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSBUFFERSETMAXDISTANCE, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetMaxDistance+0x39 : call [CDirectSoundVoice::SetMaxDistance] + { 0x3A, XREF_DSVOICESETMAXDISTANCE }, + + { 0x00, 0x56 }, + // CDirectSoundBuffer_SetMaxDistance+0x21 : mov eax, 80004005h + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + + // CDirectSoundBuffer_SetMaxDistance+0x32 : fstp [esp+0Ch+var_C] + { 0x32, 0xD9 }, + { 0x33, 0x1C }, + { 0x34, 0x24 }, + + // CDirectSoundBuffer_SetMaxDistance+0x53 : retn 0Ch + { 0x54, 0x0C }, + { 0x55, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMaxDistance +// ****************************************************************** +SOOVPA<11> IDirectSoundBuffer_SetMaxDistance_1_0_5344 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetMaxDistance+0x1C : call [CDirectSoundBuffer::SetMaxDistance] + { 0x1D, XREF_DSBUFFERSETMAXDISTANCE }, + + { 0x00, 0xFF }, + // IDirectSoundBuffer_SetMaxDistance+0x04 : fld [esp+4+arg_4] + { 0x04, 0xD9 }, + { 0x05, 0x44 }, + { 0x06, 0x24 }, + { 0x07, 0x0C }, + + // IDirectSoundBuffer_SetMaxDistance+0x12 : add eax, 0FFFFFFE4 + { 0x12, 0x83 }, + { 0x13, 0xC0 }, + { 0x14, 0xE4 }, + + // IDirectSoundBuffer_SetMaxDistance+0x21 : retn 0Ch + { 0x22, 0x0C }, + { 0x23, 0x00 } + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetMinDistance +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetMinDistance_1_0_5344 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETMINDISTANCE, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x41 }, + { 0x0C, 0x00 }, + { 0x13, 0x38 }, + { 0x1A, 0x00 }, + { 0x21, 0xF6 }, + { 0x28, 0x51 }, + { 0x2F, 0xC0 }, + } +}; +// ****************************************************************** +// * CDirectSoundBuffer::SetMinDistance +// ****************************************************************** +SOOVPA<11> CDirectSoundBuffer_SetMinDistance_1_0_5344 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSBUFFERSETMINDISTANCE, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetMinDistance+0x39 : call [CDirectSoundVoice::SetMinDistance] + { 0x3A, XREF_DSVOICESETMINDISTANCE }, + + { 0x00, 0x56 }, + // CDirectSoundBuffer_SetMinDistance+0x21 : mov eax, 80004005h + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + + // CDirectSoundBuffer_SetMinDistance+0x32 : fstp [esp+0Ch+var_C] + { 0x32, 0xD9 }, + { 0x33, 0x1C }, + { 0x34, 0x24 }, + + // CDirectSoundBuffer_SetMinDistance+0x53 : retn 0Ch + { 0x54, 0x0C }, + { 0x55, 0x00 } + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetMinDistance +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundStream_SetMinDistance_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x3E, XREF_DSVOICESETROLLOFFCURVE }, + + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x24 }, + { 0x3A, 0x1C }, + { 0x46, 0x74 }, + { 0x53, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMinDistance +// ****************************************************************** +SOOVPA<11> IDirectSoundBuffer_SetMinDistance_1_0_5344 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetMinDistance+0x1C : call [CDirectSoundBuffer::SetMinDistance] + { 0x1D, XREF_DSBUFFERSETMINDISTANCE }, + + { 0x00, 0xFF }, + // IDirectSoundBuffer_SetMinDistance+0x04 : fld [esp+4+arg_4] + { 0x04, 0xD9 }, + { 0x05, 0x44 }, + { 0x06, 0x24 }, + { 0x07, 0x0C }, + + // IDirectSoundBuffer_SetMinDistance+0x12 : add eax, 0FFFFFFE4 + { 0x12, 0x83 }, + { 0x13, 0xC0 }, + { 0x14, 0xE4 }, + + // IDirectSoundBuffer_SetMinDistance+0x21 : retn 0Ch + { 0x22, 0x0C }, + { 0x23, 0x00 } + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetI3DL2Listener +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSound_SetI3DL2Listener_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETI3DL2LISTENER, // Xref Is Saved + XRefNotUsed, + + { + { 0x1E, 0x15 }, + { 0x3E, 0x88 }, + { 0x5E, 0x41 }, + { 0x7E, 0x00 }, + { 0x9E, 0x08 }, + { 0xBE, 0x41 }, + { 0xDE, 0x00 }, + { 0xFE, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetI3DL2Listener +// ****************************************************************** +SOOVPA<9> IDirectSound_SetI3DL2Listener_1_0_5344 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DSSETI3DL2LISTENER }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetRolloffFactor +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSound_SetRolloffFactor_1_0_5344 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_SETROLLOFFFACTORA, // Xref Is Saved + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x08 }, + { 0x35, 0x70 }, + { 0x3A, 0x48 }, + { 0x4A, 0x85 }, + { 0x53, 0xFF }, + { 0x5E, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetRolloffFactor +// ****************************************************************** +SOOVPA<8> IDirectSound_SetRolloffFactor_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_SETROLLOFFFACTORA }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetDistanceFactor +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetDistanceFactor_1_0_5344 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETDISTANCEFACTOR, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x41 }, + { 0x0C, 0x00 }, + { 0x13, 0x44 }, + { 0x1A, 0x00 }, + { 0x21, 0xF6 }, + { 0x28, 0x51 }, + { 0x2F, 0xC0 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetDistanceFactor +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetDistanceFactor_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETDISTANCEFACTOR, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x3A, XREF_DSVOICESETDISTANCEFACTOR }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xFF }, + { 0x40, 0x8B }, + { 0x4F, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetDistanceFactor +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetDistanceFactor_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DSBUFFERSETDISTANCEFACTOR }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetDistanceFactor +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSound_SetDistanceFactor_1_0_5344 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_SETDISTANCEFACTORA, // Xref Is Saved + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x08 }, + { 0x35, 0x6C }, + { 0x3A, 0x48 }, + { 0x4A, 0x85 }, + { 0x53, 0xFF }, + { 0x5E, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetDistanceFactor +// ****************************************************************** +SOOVPA<8> IDirectSound_SetDistanceFactor_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_SETDISTANCEFACTORA }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetDopplerFactor +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSound_SetDopplerFactor_1_0_5344 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_SETDOPPLERFACTOR, // Xref Is Saved + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x08 }, + { 0x35, 0x74 }, + { 0x3A, 0x48 }, + { 0x4A, 0x85 }, + { 0x53, 0xFF }, + { 0x5E, 0x00 }, + } +}; + + +// ****************************************************************** +// * IDirectSound_SetDopplerFactor +// ****************************************************************** +SOOVPA<8> IDirectSound_SetDopplerFactor_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_SETDOPPLERFACTOR }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * Direct_1_0_5233 +// ****************************************************************** +OOVPATable DSound_1_0_5233[] = +{ + // DirectSoundCreate (* unchanged since 4361 *) + { + (OOVPA*)&DirectSoundCreate_1_0_4361, + + XTL::EmuDirectSoundCreate, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreate" + #endif + }, + // DirectSoundDoWork (* unchanged since 4627 *) + { + (OOVPA*)&DirectSoundDoWork_1_0_4627, + + XTL::EmuDirectSoundDoWork, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundDoWork" + #endif + }, + // CDirectSound::CreateSoundBuffer (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSound_CreateSoundBuffer_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundBuffer (XREF)" + #endif + }, + // CMcpxAPU::SynchPlayback (XRef) + { + (OOVPA*)&CMcpxAPU_SynchPlayback_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "CMcpxAPU::SynchPlayback (XRef)" + #endif + }, + // CDirectSound::SynchPlayback (XRef) + { + (OOVPA*)&CDirectSound_SynchPlayback_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SynchPlayback (XRef)" + #endif + }, + // IDirectSound_SynchPlayback + { + (OOVPA*)&IDirectSound8_SynchPlayback_1_0_5233, + + XTL::EmuIDirectSound8_SynchPlayback, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SynchPlayback" + #endif + }, + // CMcpxStream::Pause (XRef) + { + (OOVPA*)&CMcpxStream_Pause_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "CMcpxStream_Pause (XRef)" + #endif + }, + // CDirectSoundStream::Pause (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundStream_Pause_1_0_4361, + + XTL::EmuCDirectSoundStream_Pause, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_Pause" + #endif + }, + // CDirectSound_SetI3DL2Listener (XREF) (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSound_SetI3DL2Listener_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetI3DL2Listener (XREF)" + #endif + }, + // IDirectSound8_SetI3DL2Listener (* unchanged since 4432 *) + { + (OOVPA*)&IDirectSound8_SetI3DL2Listener_1_0_4432, + + XTL::EmuIDirectSound8_SetI3DL2Listener, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetI3DL2Listener" + #endif + }, + // CDirectSound::SetVelocity (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSound_SetVelocity_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetVelocityA (XREF)" + #endif + }, + // IDirectSound8::SetVelocity (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_SetVelocity_1_0_3936, + + XTL::EmuIDirectSound8_SetVelocity, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetVelocity" + #endif + }, + // CDirectSoundVoiceSettings::SetMixBins (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundVoiceSettings_SetMixBins_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoiceSettings::SetMixBins (XREF)" + #endif + }, + // CDirectSoundVoice::SetMixBins (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundVoice_SetMixBins_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMixBins (XREF)" + #endif + }, + // CDirectSoundBuffer::SetMixBins (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundBuffer_SetMixBins_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMixBins (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetMixBins (* unchanged since 4432 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetMixBins_1_0_4432, + + XTL::EmuIDirectSoundBuffer8_SetMixBins, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMixBins" + #endif + }, + // CDirectSoundStream::SetMixBins + { + (OOVPA*)&CDirectSoundStream_SetMixBins_1_0_5233, + + XTL::EmuCDirectSoundStream_SetMixBins, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetMixBins" + #endif + }, + // CDirectSound::SetPositionA (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSound_SetPositionA_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetPositionA (XREF)" + #endif + }, + // IDirectSound8::SetPosition (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_SetPosition_1_0_3936, + + XTL::EmuIDirectSound8_SetPosition, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetPosition" + #endif + }, + // DirectSoundCreateBuffer (* unchanged since 4627 *) + { + (OOVPA*)&DirectSoundCreateBuffer_1_0_4627, + + XTL::EmuDirectSoundCreateBuffer, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreateBuffer" + #endif + }, + // IDirectSound8::CreateSoundBuffer (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSound8_CreateSoundBuffer_1_0_4627, + + XTL::EmuIDirectSound8_CreateSoundBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateSoundBuffer" + #endif + }, + // CDirectSoundVoice::SetFrequency (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundVoice_SetFrequency_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetFrequency (XREF)" + #endif + }, + // CDirectSoundBuffer::SetFrequency (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundBuffer_SetFrequency_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundBuffer::SetFrequency (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetFrequency (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetFrequency_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetFrequency, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetFrequency" + #endif + }, + // CDirectSoundStream::SetFrequency + { + (OOVPA*)&CDirectSoundStream_SetFrequency_1_0_5233, + + XTL::EmuCDirectSoundStream_SetFrequency, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetFrequency" + #endif + }, + // CMcpxVoiceClient_SetVolume (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CMcpxVoiceClient_SetVolume_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::SetVolume (XREF)" + #endif + }, + // CDirectSoundVoice::SetVolume (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetVolume_1_0_5233,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetVolume (XREF)" + #endif + }, + // CDirectSoundBuffer::SetVolume (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetVolume_1_0_5233,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetVolume (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetVolume + { + (OOVPA*)&IDirectSoundBuffer8_SetVolume_1_0_5233, + + XTL::EmuIDirectSoundBuffer8_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuIIDirectSoundBuffer8_SetVolume" + #endif + }, + // CDirectSoundStream_SetVolume (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundStream_SetVolume_1_0_4627, + + XTL::EmuCDirectSoundStream_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetVolume" + #endif + }, + // IDirectSoundBuffer8::LockA (XREF) + { + (OOVPA*)&IDirectSoundBuffer8_LockA_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_LockA (XRef)" + #endif + }, + // IDirectSoundBuffer8::Lock (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_Lock_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Lock" + #endif + }, + // CDirectSound_CreateSoundStream (XREF) (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSound_CreateSoundStream_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundStream (XREF)" + #endif + }, + // DirectSoundCreateStream (* unchanged since 4361 *) + { + (OOVPA*)&DirectSoundCreateStream_1_0_4361, + + XTL::EmuDirectSoundCreateStream, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreateStream" + #endif + }, + // IDirectSound8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_Release_1_0_3936, + + XTL::EmuIDirectSound8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_Release" + #endif + }, + // CMcpxBuffer::SetBufferData (XREF) (* unchanged since 4361 *) + { + (OOVPA*)&CMcpxBuffer_SetBufferData_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer::SetBufferData (XREF)" + #endif + }, + // CDirectSoundBuffer::SetBufferData (XREF) (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundBuffer_SetBufferData_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetBufferData (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetBufferData (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetBufferData_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetBufferData, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetBufferData" + #endif + }, + // CMcpxBuffer::GetStatusB (XRef) (* unchanged since 4627 *) + { + (OOVPA*)&CMcpxBuffer_GetStatusB_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetStatusB (XRef)" + #endif + }, + // CDirectSoundBuffer::GetStatus (XRef) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundBuffer_GetStatus_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_GetStatus (XRef)" + #endif + }, + // IDirectSoundBuffer8::GetStatus (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSoundBuffer8_GetStatus_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_GetStatus, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_GetStatus" + #endif + }, + // CMcpxBuffer::GetCurrentPosition (XRef) (* unchanged since 4361 *) + { + (OOVPA*)&CMcpxBuffer_GetCurrentPosition_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetCurrentPosition (XRef)" + #endif + }, + // CMcpxBuffer::Play (XREF) (* unchanged since 4928 *) + { + (OOVPA*)&CMcpxBuffer_Play_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer::Play (XREF)" + #endif + }, + // CDirectSoundBuffer::Play (XREF) (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundBuffer_Play_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::Play (XREF)" + #endif + }, + // IDirectSoundBuffer8::Play (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_Play_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_Play, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_Play" + #endif + }, + // CDirectSoundStream::FlushEx (XREF) + { + (OOVPA*)&CDirectSoundStream_FlushEx_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::FlushEx (XREF)" + #endif + }, + // IDirectSoundBuffer8::StopEx + { + (OOVPA*)&IDirectSoundBuffer8_StopEx_1_0_5233, + + XTL::EmuIDirectSoundBuffer8_StopEx, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_StopEx" + #endif + }, + // IDirectSound8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_Release_1_0_3936, + + XTL::EmuIDirectSound8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_Release" + #endif + }, + // DirectSound::CDirectSound::EnableHeadphones (XRef) + { + (OOVPA*)&CDirectSound_EnableHeadphones_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSound::EnableHeadphones (XRef)" + #endif + }, + // IDirectSound8::EnableHeadphones + { + (OOVPA*)&IDirectSound8_EnableHeadphones_1_0_5233, + + XTL::EmuIDirectSound8_EnableHeadphones, + + #ifdef _DEBUG_TRACE + "IDirectSound8_EnableHeadphones" + #endif + }, + // IDirectSound8::DownloadEffectsImage (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_DownloadEffectsImage_1_0_3936, + + XTL::EmuIDirectSound8_DownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_DownloadEffectsImage" + #endif + }, + // IDirectSound8::SetOrientation (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_SetOrientation_1_0_3936, + + XTL::EmuIDirectSound8_SetOrientation, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetOrientation" + #endif + }, + // CDirectSound::SetDistanceFactorA (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_SetDistanceFactor_1_0_5344, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetDistanceFactorA (XREF) (5344)@" + #endif + }, + // IDirectSound8::SetDistanceFactor + { + (OOVPA*)&IDirectSound_SetDistanceFactor_1_0_5344, + + XTL::EmuIDirectSound8_SetDistanceFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetDistanceFactor (5344)@" + #endif + }, + // CDirectSound::SetDistanceFactorA (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSound_SetDistanceFactorA_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetDistanceFactorA (XREF)" + #endif + }, + // IDirectSound8::SetDistanceFactor (* unchanged since 4432 *) + { + (OOVPA*)&IDirectSound8_SetDistanceFactor_1_0_4432, + + XTL::EmuIDirectSound8_SetDistanceFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetDistanceFactor" + #endif + }, + // CDirectSound::SetRolloffFactor (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSound_SetRolloffFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetRolloffFactor (XREF)" + #endif + }, + // IDirectSound8::SetRolloffFactor (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSound8_SetRolloffFactor_1_0_4627, + + XTL::EmuIDirectSound8_SetRolloffFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetRolloffFactor" + #endif + }, + // CDirectSound::SetDopplerFactor (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_SetDopplerFactor_1_0_5344, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetDopplerFactor (XREF) (5344)@@" + #endif + }, + // IDirectSound8::SetDopplerFactor + { + (OOVPA*)&IDirectSound_SetDopplerFactor_1_0_5344, + + XTL::EmuIDirectSound8_SetDopplerFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetDopplerFactor (5344)@@" + #endif + }, + // CDirectSound::SetDopplerFactor (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSound_SetDopplerFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetDopplerFactor (XREF)" + #endif + }, + // IDirectSound8::SetDopplerFactor (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSound8_SetDopplerFactor_1_0_4627, + + XTL::EmuIDirectSound8_SetDopplerFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetDopplerFactor" + #endif + }, + // CDirectSound::CommitDeferredSettings (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSound_CommitDeferredSettings_1_0_4432, + + XTL::EmuCDirectSound_CommitDeferredSettings, + + #ifdef _DEBUG_TRACE + "EmuCDirectSound_CommitDeferredSettings" + #endif + }, + // CDirectSoundVoice::SetMaxDistance (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetMaxDistance_1_0_5344, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMaxDistance (XRef) (5344)" + #endif + }, + // CDirectSoundBuffer::SetMaxDistance (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetMaxDistance_1_0_5344, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMaxDistance (XRef) (5344)" + #endif + }, + // IDirectSoundBuffer_SetMaxDistance + { + (OOVPA*)&IDirectSoundBuffer_SetMaxDistance_1_0_5344, + XTL::EmuIDirectSoundBuffer8_SetMaxDistance, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetMaxDistance (5344)" + #endif + }, + // CDirectSoundVoice::SetMinDistance (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetMinDistance_1_0_5344, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMinDistance (XRef) (5344)" + #endif + }, + // CDirectSoundBuffer::SetMinDistance (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetMinDistance_1_0_5344, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMinDistance (XRef) (5344)" + #endif + }, + // IDirectSoundBuffer_SetMinDistance + { + (OOVPA*)&IDirectSoundBuffer_SetMinDistance_1_0_5344, + XTL::EmuIDirectSoundBuffer8_SetMinDistance, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetMinDistance (5344)" + #endif + }, + // CDirectSoundVoice::SetMinDistance (XREF) (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundVoice_SetMinDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMinDistance (XREF)" + #endif + }, + // CDirectSoundBuffer::SetMinDistance (XREF) (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundBuffer_SetMinDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMinDistance (XREF)" + #endif + }, + // IDirectSoundBuffer_SetMinDistance (* unchanged since 4432 *) + { + (OOVPA*)&IDirectSoundBuffer_SetMinDistance_1_0_4432, + + XTL::EmuIDirectSoundBuffer8_SetMinDistance, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMinDistance" + #endif + }, + // CDirectSoundVoice::SetMaxDistance (XREF) (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundVoice_SetMaxDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMaxDistance (XREF)" + #endif + }, + // CDirectSoundBuffer::SetMaxDistance (XREF) (* unchanged since 4432 *) + { + (OOVPA*)&CDirectSoundBuffer_SetMaxDistance_1_0_4432, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMaxDistance (XREF)" + #endif + }, + // IDirectSoundBuffer_SetMaxDistance (* unchanged since 4432 *) + { + (OOVPA*)&IDirectSoundBuffer_SetMaxDistance_1_0_4432, + + XTL::EmuIDirectSoundBuffer8_SetMaxDistance, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMaxDistance" + #endif + }, + // CDirectSoundVoice::SetPosition (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundVoice_SetPosition_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetPosition (XREF)" + #endif + }, + // CDirectSoundBuffer::SetPosition (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundBuffer_SetPosition_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetPosition (XREF)" + #endif + }, + // IDirectSoundBuffer8_SetPosition (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetPosition_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetPosition, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetPosition" + #endif + }, + // CDirectSoundVoice::SetVelocity (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundVoice_SetVelocity_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetVelocity (XREF)" + #endif + }, + // CDirectSoundBuffer::SetVelocity (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundBuffer_SetVelocity_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetVelocity (XREF)" + #endif + }, + // IDirectSoundBuffer8_SetVelocity (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetVelocity_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_SetVelocity, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetVelocity" + #endif + }, + // CDirectSoundVoice::SetI3DL2Source (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundVoice_SetI3DL2Source_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetI3DL2Source (XREF)" + #endif + }, + // CDirectSoundBuffer::SetI3DL2Source (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundBuffer_SetI3DL2Source_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetI3DL2Source (XREF)" + #endif + }, + // IDirectSoundBuffer_SetI3DL2Source (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSoundBuffer_SetI3DL2Source_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetI3DL2Source, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetI3DL2Source" + #endif + }, + // IDirectSoundBuffer_Stop (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSoundBuffer_Stop_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_Stop, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Stop" + #endif + }, + // IDirectSoundBuffer8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_Release_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Release" + #endif + }, + // IDirectSoundStream::SetVolume + // (This is actually the XREF we are using) + { + (OOVPA*)&CDirectSoundStream_SetVolume_1_0_5233, + + XTL::EmuIDirectSoundStream_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundStream_SetVolume" + #endif + }, + // DirectSound::CDirectSoundVoice::SetFormat (XRef) + { + (OOVPA*)&X_DirectSound_CDirectSoundVoice_SetFormat_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundVoice::SetFormat (XRef)" + #endif + }, + // DirectSound::CDirectSoundBuffer::SetFormat (XRef) (* unchanged since 4627 *) + { + (OOVPA*)&X_DirectSound_CDirectSoundBuffer_SetFormat_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::SetFormat (XRef)" + #endif + }, + // IDirectSoundBuffer8_SetFormat (* unchanged since 4627 *) + { + (OOVPA*)&X_IDirectSoundBuffer_SetFormat_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetFormat, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetFormat" + #endif + + }, + // CDirectSoundVoice::SetMode (XRef) + { + (OOVPA*)&CDirectSoundVoice_SetMode_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMode (XRef)" + #endif + }, + // CDirectSoundBuffer::SetMode (XRef) + { + (OOVPA*)&CDirectSoundBuffer_SetMode_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMode (XRef)" + #endif + }, + // IDirectSoundBuffer_SetMode + { + (OOVPA*)&IDirectSoundBuffer8_SetMode_1_0_5233, + XTL::EmuIDirectSoundBuffer8_SetMode, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetMode" + #endif + + }, + // CDirectSoundVoice::SetRolloffCurve (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetRolloffCurve_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetRolloffCurve (XREF)" + #endif + + }, + // CDirectSoundBuffer::SetRolloffCurve (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetRolloffCurve_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetRolloffCurve (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetRolloffCurve + { + (OOVPA*)&IDirectSoundBuffer8_SetRolloffCurve_1_0_5233, + + XTL::EmuIDirectSoundBuffer8_SetRolloffCurve, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetRolloffCurve" + #endif + }, + // IDirectSound8::AddRef (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_AddRef_1_0_3936, + + XTL::EmuIDirectSound8_AddRef, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_AddRef" + #endif + }, + // CDirectSound_SetI3DL2Listener + { + (OOVPA*)&DirectSound_CDirectSound_SetI3DL2Listener_1_0_5344, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetI3DL2Listener (XREF) (5344)" + #endif + }, + // IDirectSound8_SetI3DL2Listener + { + (OOVPA*)&IDirectSound_SetI3DL2Listener_1_0_5344, + + XTL::EmuIDirectSound8_SetI3DL2Listener, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetI3DL2Listener (5344)" + #endif + }, + // CDirectSound::SetRolloffFactor (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_SetRolloffFactor_1_0_5344, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetRolloffFactor (XRef) (5344)" + #endif + }, + // IDirectSound8::SetRolloffFactor + { + (OOVPA*)&IDirectSound_SetRolloffFactor_1_0_5344, + + XTL::EmuIDirectSound8_SetRolloffFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetRolloffFactor (5344)" + #endif + }, +#if 0 // Add when needed... + // CDirectSoundVoice::SetDistanceFactor (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetDistanceFactor_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetDistanceFactor (XRef)" + #endif + }, + // CDirectSoundBuffer::SetDistanceFactor (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetDistanceFactor_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetDistanceFactor (XRef)" + #endif + }, + // IDirectSoundBuffer_SetDistanceFactor + { + (OOVPA*)&IDirectSoundBuffer8_SetDistanceFactor_1_0_5558, + XTL::EmuIDirectSoundBuffer8_SetDistanceFactor, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetDistanceFactor" + #endif + }, +#endif +}; + +// ****************************************************************** +// * DSound_1_0_5233_SIZE +// ****************************************************************** +uint32 DSound_1_0_5233_SIZE = sizeof(DSound_1_0_5233); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5558.h b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5558.h new file mode 100644 index 000000000..38cb062e4 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5558.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.5558.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_1_0_5558_H +#define DSOUND_1_0_5558_H + +#include "OOVPA.h" + +extern OOVPATable DSOUND_1_0_5558[]; +extern uint32 DSOUND_1_0_5558_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5558.inl new file mode 100644 index 000000000..621e9d7d1 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5558.inl @@ -0,0 +1,3651 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5558.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * CDirectSound::SynchPlayback +// ****************************************************************** +SOOVPA<7> CDirectSound_SynchPlayback_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0xE8 }, + { 0x3A, 0x0B }, + { 0x46, 0x8B }, + } +}; + +// ****************************************************************** +// * CMcpxStream_Pause +// ****************************************************************** +SOOVPA<11> CMcpxStream_Pause_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSSTREAMPAUSE, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxStream_Pause+0x17 : and ax, 0xFFDF + { 0x17, 0x66 }, // (Offset,Value)-Pair #1 + { 0x18, 0x25 }, // (Offset,Value)-Pair #2 + { 0x19, 0xDF }, // (Offset,Value)-Pair #3 + + // CMcpxStream_Pause+0x32 : jmp +0x56 + { 0x32, 0xEB }, // (Offset,Value)-Pair #4 + { 0x33, 0x56 }, // (Offset,Value)-Pair #5 + + // CMcpxStream_Pause+0x39 : movzx eax, word ptr [esi+0x12] + { 0x39, 0x0F }, // (Offset,Value)-Pair #6 + { 0x3A, 0xB7 }, // (Offset,Value)-Pair #7 + { 0x3B, 0x46 }, // (Offset,Value)-Pair #8 + { 0x3C, 0x12 }, // (Offset,Value)-Pair #9 + + // CMcpxStream_Pause+0x8B : retn 0x04 + { 0x8B, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x8C, 0x04 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::CommitDeferredSettings +// ****************************************************************** +SOOVPA<11> CDirectSound_CommitDeferredSettings_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // CDirectSound_CommitDeferredSettings+0x10 : movzx eax, al + { 0x10, 0x0F }, // (Offset,Value)-Pair #1 + { 0x11, 0xB6 }, // (Offset,Value)-Pair #2 + { 0x12, 0xC0 }, // (Offset,Value)-Pair #3 + + // CDirectSound_CommitDeferredSettings+0x27 : mov eax, 0x80004005 + { 0x27, 0xB8 }, // (Offset,Value)-Pair #4 + { 0x28, 0x05 }, // (Offset,Value)-Pair #5 + { 0x29, 0x40 }, // (Offset,Value)-Pair #6 + { 0x2B, 0x80 }, // (Offset,Value)-Pair #7 + + // CDirectSound_CommitDeferredSettings+0x6D : mov [eax+0x30], edi + { 0x6D, 0x89 }, // (Offset,Value)-Pair #8 + { 0x6E, 0x78 }, // (Offset,Value)-Pair #9 + { 0x6F, 0x30 }, // (Offset,Value)-Pair #10 + + // CDirectSound_CommitDeferredSettings+0x96 : leave + { 0x96, 0xC9 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetDistanceFactorA +// ****************************************************************** +SOOVPA<11> CDirectSound_SetDistanceFactorA_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_SETDISTANCEFACTORA,// XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetDistanceFactorA+0x21 : mov eax, 0x80004005 + { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x22, 0x05 }, // (Offset,Value)-Pair #2 + { 0x23, 0x40 }, // (Offset,Value)-Pair #3 + { 0x24, 0x00 }, // (Offset,Value)-Pair #4 + { 0x25, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetDistanceFactorA+0x39 : or dword ptr[eax+0x30], 0x08 + { 0x39, 0x83 }, // (Offset,Value)-Pair #6 + { 0x3A, 0x48 }, // (Offset,Value)-Pair #7 + { 0x3B, 0x30 }, // (Offset,Value)-Pair #8 + { 0x3C, 0x08 }, // (Offset,Value)-Pair #9 + + // CDirectSound_SetDistanceFactorA+0x4C : jz +0x0B + { 0x4C, 0x74 }, // (Offset,Value)-Pair #10 + { 0x4D, 0x0B }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetRolloffFactor +// ****************************************************************** +SOOVPA<11> CDirectSound_SetRolloffFactor_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_SETROLLOFFFACTORA, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetRolloffFactor+0x21 : mov eax, 0x80004005 + { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x22, 0x05 }, // (Offset,Value)-Pair #2 + { 0x23, 0x40 }, // (Offset,Value)-Pair #3 + { 0x24, 0x00 }, // (Offset,Value)-Pair #4 + { 0x25, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetRolloffFactor+0x39 : or dword ptr[eax+0x30], 0x10 + { 0x39, 0x83 }, // (Offset,Value)-Pair #6 + { 0x3A, 0x48 }, // (Offset,Value)-Pair #7 + { 0x3B, 0x30 }, // (Offset,Value)-Pair #8 + { 0x3C, 0x10 }, // (Offset,Value)-Pair #9 + + // CDirectSound_SetRolloffFactor+0x4C : jz +0x0B + { 0x4C, 0x74 }, // (Offset,Value)-Pair #10 + { 0x4D, 0x0B }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound::SetDopplerFactor +// ****************************************************************** +SOOVPA<14> CDirectSound_SetDopplerFactor_1_0_5558 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XREF_SETDOPPLERFACTOR, // XRef Is Saved + 0, // XRef Not Used + + { + // CDirectSound_SetDopplerFactor+0x21 : mov eax, 0x80004005 + { 0x21, 0xB8 }, // (Offset,Value)-Pair #1 + { 0x22, 0x05 }, // (Offset,Value)-Pair #2 + { 0x23, 0x40 }, // (Offset,Value)-Pair #3 + { 0x24, 0x00 }, // (Offset,Value)-Pair #4 + { 0x25, 0x80 }, // (Offset,Value)-Pair #5 + + // CDirectSound_SetDopplerFactor+0x33 : mov [eax+0x70], edx + { 0x33, 0x89 }, // (Offset,Value)-Pair #6 + { 0x34, 0x50 }, // (Offset,Value)-Pair #7 + { 0x35, 0x70 }, // (Offset,Value)-Pair #8 + + // CDirectSound_SetDopplerFactor+0x39 : or dword ptr[eax+0x30], 0x20 + { 0x39, 0x83 }, // (Offset,Value)-Pair #9 + { 0x3A, 0x48 }, // (Offset,Value)-Pair #10 + { 0x3B, 0x30 }, // (Offset,Value)-Pair #11 + { 0x3C, 0x20 }, // (Offset,Value)-Pair #12 + + // CDirectSound_SetDopplerFactor+0x4C : jz +0x0B + { 0x4C, 0x74 }, // (Offset,Value)-Pair #13 + { 0x4D, 0x0B }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * IDirectSound_SetMixBinHeadroom +// ****************************************************************** +SOOVPA<9> IDirectSound8_SetMixBinHeadroom_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DSSETMIXBINHEADROOMA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * CDirectSound_SetI3DL2Listener +// ****************************************************************** +SOOVPA<8> CDirectSound_SetI3DL2Listener_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETI3DL2LISTENER, // Xref Is Saved + XRefNotUsed, + + { + { 0x1D, 0xFF }, + { 0x3C, 0x00 }, + { 0x5B, 0x9A }, + { 0x7A, 0x10 }, + { 0x99, 0x00 }, + { 0xB8, 0x50 }, + { 0xD7, 0x00 }, + { 0xF6, 0x68 }, + } +}; + +// ****************************************************************** +// * IDirectSound8_SetI3DL2Listener +// ****************************************************************** +SOOVPA<9> IDirectSound8_SetI3DL2Listener_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DSSETI3DL2LISTENER }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; +// ****************************************************************** +// * DirectSound::CFullHRTFSource::GetCenterVolume +// ****************************************************************** +SOOVPA<7> DirectSound_CFullHRTFSource_GetCenterVolume_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CFullHRTFSource_GetCenterVolume, // Xref Is Saved + XRefNotUsed, + + { + { 0x13, 0xD9 }, + { 0x29, 0xDF }, + { 0x3D, 0x2D }, + { 0x54, 0xC1 }, + { 0x67, 0x4D }, + { 0x7E, 0xD9 }, + { 0x91, 0x10 }, + } +}; + +// ****************************************************************** +// * DirectSound::CHRTFSource::SetFullHRTF5Channel +// ****************************************************************** +SOOVPA<9> DirectSound_CHRTFSource_SetFullHRTF5Channel_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DirectSound_CHRTFSource_SetFullHRTF5Channel, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x4C, XREF_DirectSound_CFullHRTFSource_GetCenterVolume }, + + { 0x14, 0xC7 }, + { 0x1E, 0xC7 }, + { 0x28, 0xC7 }, + { 0x3C, 0xC7 }, + { 0x46, 0xC7 }, + { 0x5A, 0xC7 }, + { 0x64, 0xC7 }, + { 0x6E, 0xC3 }, + } +}; + +// ****************************************************************** +// * DirectSoundUseFullHRTF +// ****************************************************************** +SOOVPA<8> DirectSoundUseFullHRTF_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x0A, XREF_DirectSound_CHRTFSource_SetFullHRTF5Channel }, + + { 0x06, 0x0F }, + { 0x07, 0xB6 }, + { 0x0E, 0x85 }, + { 0x0F, 0xF6 }, + { 0x12, 0x0B }, + { 0x18, 0xFF }, + { 0x1E, 0xC3 }, + } +}; + +// ****************************************************************** +// * DirectSoundDoWork +// ****************************************************************** +SOOVPA<7> DirectSoundDoWork_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0x0F }, + { 0x0E, 0x85 }, + { 0x10, 0x74 }, + { 0x18, 0x85 }, + { 0x1C, 0x0B }, + { 0x22, 0xFF }, + { 0x28, 0xC3 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetBufferData +// ****************************************************************** +SOOVPA<7> CDirectSoundBuffer_SetBufferData_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETBUFFERDATA, // Xref Is Saved + XRefNotUsed, + + { + { 0x14, 0x0C }, + { 0x2A, 0xB6 }, + { 0x40, 0xB8 }, + { 0x56, 0x8B }, + { 0x6C, 0x8B }, + { 0x82, 0x7C }, + { 0x98, 0x5E }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetBufferData +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_SetBufferData_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DSSETBUFFERDATA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * CMcpxBuffer::SetCurrentPosition +// ****************************************************************** +SOOVPA<7> CMcpxBuffer_SetCurrentPosition_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_SETCURRENTPOSITION, // Xref Is Saved + XRefNotUsed, + + { + { 0x1D, 0x00 }, + { 0x3C, 0x66 }, + { 0x5B, 0x00 }, + { 0x7C, 0x8D }, + { 0x99, 0xD1 }, + { 0xB8, 0x89 }, + { 0xDB, 0x5F }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetCurrentPosition +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetCurrentPosition_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_SETCURRENTPOSITION2, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x35, XREF_SETCURRENTPOSITION }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x39, 0x85 }, + { 0x44, 0xFF }, + { 0x4B, 0xC7 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetCurrentPosition +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetCurrentPosition_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_SETCURRENTPOSITION2 }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * CMcpxVoiceClient::SetLFO +// ****************************************************************** +SOOVPA<8> CMcpxVoiceClient_SetLFO_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CMcpxVoiceClient_SetLFO, // Xref Is Saved + XRefNotUsed, + + { + { 0x1E, 0x48 }, + { 0x3E, 0x31 }, + { 0x5E, 0x35 }, + { 0x7E, 0xE1 }, + { 0x9E, 0x8B }, + { 0xBE, 0x8B }, + { 0xDE, 0x05 }, + { 0xFE, 0x6C }, + } +}; +// ****************************************************************** +// * CDirectSoundVoice::SetLFO +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetLFO_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundVoice_SetLFO, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x0C, XREF_DirectSound_CMcpxVoiceClient_SetLFO }, + + { 0x01, 0x44 }, + { 0x04, 0xFF }, + { 0x07, 0x08 }, + { 0x0A, 0x0C }, + { 0x10, 0xC2 }, + { 0x11, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetLFO +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetLFO_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetLFO, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetLFO }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetLFO +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetLFO_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetLFO }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * CMcpxVoiceClient_SetVolume +// ****************************************************************** +SOOVPA<13> CMcpxVoiceClient_SetVolume_1_0_5558 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XREF_DSSTREAMSETVOLUME, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxVoiceClient_SetVolume+0x2A : lea eax, [ecx+ecx*2] + { 0x2A, 0x8D }, // (Offset,Value)-Pair #1 + { 0x2B, 0x04 }, // (Offset,Value)-Pair #2 + { 0x2C, 0x49 }, // (Offset,Value)-Pair #3 + + // CMcpxVoiceClient_SetVolume+0x45 : movzx edx, word ptr [ecx] + { 0x45, 0x0F }, // (Offset,Value)-Pair #4 + { 0x46, 0xB7 }, // (Offset,Value)-Pair #5 + { 0x47, 0x11 }, // (Offset,Value)-Pair #6 + + // CMcpxVoiceClient_SetVolume+0x6C : mov edx, [ebp+eax*4-0x14] + { 0x6C, 0x8B }, // (Offset,Value)-Pair #7 + { 0x6D, 0x54 }, // (Offset,Value)-Pair #8 + { 0x6E, 0x85 }, // (Offset,Value)-Pair #9 + { 0x6F, 0xEC }, // (Offset,Value)-Pair #10 + + // CMcpxVoiceClient_SetVolume+0x84 : inc eax; inc ecx, inc ecx + { 0x84, 0x40 }, // (Offset,Value)-Pair #11 + { 0x85, 0x41 }, // (Offset,Value)-Pair #12 + { 0x86, 0x41 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * CDirectSoundVoiceSettings::SetMixBins +// ****************************************************************** +SOOVPA<7> CDirectSoundVoiceSettings_SetMixBins_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETMIXBINSC, // Xref Is Saved + XRefNotUsed, + + { + { 0x1B, 0xEB }, + { 0x32, 0x8B }, + { 0x4C, 0x7C }, + { 0x66, 0x00 }, + { 0x84, 0xF6 }, + { 0x9A, 0xB4 }, + { 0xB4, 0x00 }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetMixBins +// ****************************************************************** +SOOVPA<8> CDirectSoundVoice_SetMixBins_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETMIXBINSB, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x0D, XREF_DSSETMIXBINSC }, + + { 0x02, 0x74 }, + { 0x06, 0x74 }, + { 0x0A, 0x4E }, + { 0x11, 0x8B }, + { 0x12, 0x4E }, + { 0x19, 0x5E }, + { 0x1A, 0xC2 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetMixBins +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetMixBins_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETMIXBINSA, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x32, XREF_DSSETMIXBINSB }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetMixBins +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetMixBins_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DSSETMIXBINSA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetPlayRegion +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetPlayRegion_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETPLAYREGIONA, // Xref Is Saved + XRefNotUsed, + + { + { 0x0F, 0x00 }, + { 0x1E, 0xFF }, + { 0x2E, 0x85 }, + { 0x3E, 0x3B }, + { 0x4E, 0x81 }, + { 0x5F, 0x8B }, + { 0x72, 0xFF }, + { 0x7E, 0x0C }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetPlayRegion +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_SetPlayRegion_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DSBUFFERSETPLAYREGIONA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; +// ****************************************************************** +// * CDirectSoundBuffer::SetLoopRegion +// ****************************************************************** +SOOVPA<7> CDirectSoundBuffer_SetLoopRegion_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion, // Xref Is Saved + XRefNotUsed, + + { + { 0x0F, 0x00 }, + { 0x24, 0xB8 }, + { 0x31, 0x55 }, + { 0x42, 0xC8 }, + { 0x53, 0x00 }, + { 0x64, 0x8B }, + { 0x77, 0xFF }, + } +}; +// ****************************************************************** +// * IDirectSoundBuffer_SetLoopRegion +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_SetLoopRegion_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * CMcpxBuffer::Play +// ****************************************************************** +SOOVPA<8> CMcpxBuffer_Play_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSOUNDPLAY, // Xref Is Saved + XRefNotUsed, + + { + { 0x06, 0x56 }, + { 0x0E, 0xF1 }, + { 0x16, 0xFF }, + { 0x1D, 0x03 }, + { 0x1E, 0xFF }, + { 0x26, 0x75 }, + { 0x2F, 0x8B }, + { 0x36, 0xC2 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::Play +// ****************************************************************** +SOOVPA<9> CDirectSoundBuffer_Play_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 10 + + XREF_DSOUNDPLAY2, // Xref Is Saved + 0, // Xref Is Used + + { + //{ 0x35, XREF_DSOUNDPLAY }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x2E, 0x20 }, + { 0x33, 0x18 }, + { 0x39, 0x85 }, + { 0x44, 0xFF }, + { 0x4B, 0xC7 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_Play +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_Play_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DSOUNDPLAY2 }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * CMcpxBuffer_GetStatus +// ****************************************************************** +SOOVPA<11> CMcpxBuffer_GetStatus_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSBUFFERGETSTATUSA, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_GetStatus+0x04 : mov ecx, eax + { 0x04, 0x8B }, // (Offset,Value)-Pair #1 + { 0x05, 0xC8 }, // (Offset,Value)-Pair #2 + + // CMcpxBuffer_GetStatus+0x0C : jnz +0x1B + { 0x0C, 0x75 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x1B }, // (Offset,Value)-Pair #4 + + // CMcpxBuffer_GetStatus+0x12 : test ax, 0x444 + { 0x12, 0x66 }, // (Offset,Value)-Pair #5 + { 0x13, 0xA9 }, // (Offset,Value)-Pair #6 + { 0x14, 0x44 }, // (Offset,Value)-Pair #7 + + // CMcpxBuffer_GetStatus+0x29 : mov ecx, 0x8001 + { 0x29, 0xB9 }, // (Offset,Value)-Pair #8 + { 0x2A, 0x01 }, // (Offset,Value)-Pair #9 + { 0x2B, 0x80 }, // (Offset,Value)-Pair #10 + { 0x2C, 0x00 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * WaveFormat::CreateXboxAdpcmFormat +// ****************************************************************** +SOOVPA<7> WaveFormat_CreateXboxAdpcmFormat_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_WaveFormat_CreateXboxAdpcmFormat, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x08 }, + { 0x10, 0xE9 }, + { 0x19, 0x8D }, + { 0x22, 0x66 }, + { 0x2B, 0x04 }, + { 0x34, 0x66 }, + { 0x3D, 0x12 }, + } +}; + +// ****************************************************************** +// * XAudioCreateAdpcmFormat +// ****************************************************************** +SOOVPA<2> XAudioCreateAdpcmFormat_1_0_5558 = +{ + 0, // Large == 0 + 2, // Count == 2 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x01, XREF_DirectSound_WaveFormat_CreateXboxAdpcmFormat }, + + { 0x00, 0xE9 }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetFormat +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetFormat_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundVoice_SetFormat, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x10 }, + { 0x13, 0x85 }, + { 0x19, 0x10 }, + { 0x22, 0x0C }, + { 0x2B, 0x14 }, + { 0x34, 0x85 }, + { 0x40, 0x5E }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetFormat +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetFormat_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetFormat, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetFormat }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetFormat +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetFormat_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFormat }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetConeAngles +// ****************************************************************** +SOOVPA<8> CDirectSoundVoice_SetConeAngles_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundVoice_SetConeAngles, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x10, 0x08 }, + { 0x13, 0x20 }, + { 0x19, 0xB4 }, + { 0x22, 0x51 }, + { 0x2B, 0x00 }, + { 0x34, 0x10 }, + { 0x3E, 0x33 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetConeAngles +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetConeAngles_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetConeAngles, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x3A, XREF_DirectSound_CDirectSoundVoice_SetConeAngles }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x74 }, + { 0x35, 0xFF }, + { 0x40, 0x8B }, + { 0x4F, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetConeAngles +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetConeAngles_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DirectSound_CDirectSoundBuffer_SetConeAngles }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetMaxDistance +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetMaxDistance_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETMAXDISTANCE, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x41 }, + { 0x0C, 0x00 }, + { 0x13, 0x3C }, + { 0x1A, 0x00 }, + { 0x21, 0xF6 }, + { 0x28, 0x51 }, + { 0x2F, 0xC0 }, + } +}; +// ****************************************************************** +// * CDirectSoundBuffer::SetMaxDistance +// ****************************************************************** +SOOVPA<11> CDirectSoundBuffer_SetMaxDistance_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSBUFFERSETMAXDISTANCE, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetMaxDistance+0x39 : call [CDirectSoundVoice::SetMaxDistance] + { 0x3A, XREF_DSVOICESETMAXDISTANCE }, + + { 0x00, 0x56 }, + // CDirectSoundBuffer_SetMaxDistance+0x21 : mov eax, 80004005h + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + + // CDirectSoundBuffer_SetMaxDistance+0x32 : fstp [esp+0Ch+var_C] + { 0x32, 0xD9 }, + { 0x33, 0x1C }, + { 0x34, 0x24 }, + + // CDirectSoundBuffer_SetMaxDistance+0x53 : retn 0Ch + { 0x54, 0x0C }, + { 0x55, 0x00 } + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMaxDistance +// ****************************************************************** +SOOVPA<11> IDirectSoundBuffer_SetMaxDistance_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetMaxDistance+0x1C : call [CDirectSoundBuffer::SetMaxDistance] + { 0x1D, XREF_DSBUFFERSETMAXDISTANCE }, + + { 0x00, 0xFF }, + // IDirectSoundBuffer_SetMaxDistance+0x04 : fld [esp+4+arg_4] + { 0x04, 0xD9 }, + { 0x05, 0x44 }, + { 0x06, 0x24 }, + { 0x07, 0x0C }, + + // IDirectSoundBuffer_SetMaxDistance+0x12 : add eax, 0FFFFFFE4 + { 0x12, 0x83 }, + { 0x13, 0xC0 }, + { 0x14, 0xE4 }, + + // IDirectSoundBuffer_SetMaxDistance+0x21 : retn 0Ch + { 0x22, 0x0C }, + { 0x23, 0x00 } + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetMinDistance +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetMinDistance_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETMINDISTANCE, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x41 }, + { 0x0C, 0x00 }, + { 0x13, 0x38 }, + { 0x1A, 0x00 }, + { 0x21, 0xF6 }, + { 0x28, 0x51 }, + { 0x2F, 0xC0 }, + } +}; +// ****************************************************************** +// * CDirectSoundBuffer::SetMinDistance +// ****************************************************************** +SOOVPA<11> CDirectSoundBuffer_SetMinDistance_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSBUFFERSETMINDISTANCE, // XRef Is Saved + 1, // XRef Is Used + + { + // CDirectSoundBuffer_SetMinDistance+0x39 : call [CDirectSoundVoice::SetMinDistance] + { 0x3A, XREF_DSVOICESETMINDISTANCE }, + + { 0x00, 0x56 }, + // CDirectSoundBuffer_SetMinDistance+0x21 : mov eax, 80004005h + { 0x22, 0x05 }, + { 0x23, 0x40 }, + { 0x24, 0x00 }, + { 0x25, 0x80 }, + + // CDirectSoundBuffer_SetMinDistance+0x32 : fstp [esp+0Ch+var_C] + { 0x32, 0xD9 }, + { 0x33, 0x1C }, + { 0x34, 0x24 }, + + // CDirectSoundBuffer_SetMinDistance+0x53 : retn 0Ch + { 0x54, 0x0C }, + { 0x55, 0x00 } + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetMinDistance +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundStream_SetMinDistance_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x3E, XREF_DSVOICESETROLLOFFCURVE }, + + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x24 }, + { 0x3A, 0x1C }, + { 0x46, 0x74 }, + { 0x53, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMinDistance +// ****************************************************************** +SOOVPA<11> IDirectSoundBuffer_SetMinDistance_1_0_5558 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // IDirectSoundBuffer_SetMinDistance+0x1C : call [CDirectSoundBuffer::SetMinDistance] + { 0x1D, XREF_DSBUFFERSETMINDISTANCE }, + + { 0x00, 0xFF }, + // IDirectSoundBuffer_SetMinDistance+0x04 : fld [esp+4+arg_4] + { 0x04, 0xD9 }, + { 0x05, 0x44 }, + { 0x06, 0x24 }, + { 0x07, 0x0C }, + + // IDirectSoundBuffer_SetMinDistance+0x12 : add eax, 0FFFFFFE4 + { 0x12, 0x83 }, + { 0x13, 0xC0 }, + { 0x14, 0xE4 }, + + // IDirectSoundBuffer_SetMinDistance+0x21 : retn 0Ch + { 0x22, 0x0C }, + { 0x23, 0x00 } + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::CommitDeferredSettings +// ****************************************************************** +SOOVPA<6> CDirectSoundVoice_CommitDeferredSettings_1_0_5558 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XREF_DirectSound_CDirectSoundVoice_CommitDeferredSettings, // Xref Is Saved + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x07, 0xE8 }, + { 0x0C, 0x33 }, + { 0x0D, 0xC0 }, + { 0x10, 0x00 }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetAllParameters +// ****************************************************************** +SOOVPA<14> CDirectSoundVoice_SetAllParameters_1_0_5558 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XREF_DirectSound_CDirectSoundVoice_SetAllParameters, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x2A, XREF_DirectSound_CDirectSoundVoice_CommitDeferredSettings }, + + { 0x00, 0x8B }, + { 0x01, 0x4c }, + { 0x02, 0x24 }, + { 0x03, 0x04 }, + { 0x11, 0x89 }, + { 0x12, 0x50 }, + { 0x13, 0x4C }, + { 0x14, 0x8B }, + { 0x15, 0x41 }, + { 0x16, 0x10 }, + { 0x30, 0xC2 }, + { 0x31, 0x0C }, + { 0x32, 0x00 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetAllParameters +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetAllParameters_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetAllParameters, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetAllParameters }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x74 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8::SetAllParameters +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer8_SetAllParameters_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DirectSound_CDirectSoundBuffer_SetAllParameters }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetPosition +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetPosition_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETPOSITION, // Xref Is Saved + XRefNotUsed, + + { + { 0x09, 0x8B }, + { 0x14, 0x08 }, + { 0x1F, 0x55 }, + { 0x2A, 0x00 }, + { 0x35, 0x10 }, + { 0x40, 0xF6 }, + { 0x4C, 0x33 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetPosition +// ****************************************************************** +SOOVPA<9> CDirectSoundBuffer_SetPosition_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSBUFFERSETPOSITION, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x4A, XREF_DSVOICESETPOSITION }, + + { 0x0F, 0x00 }, + { 0x18, 0x0B }, + { 0x25, 0x05 }, + { 0x32, 0x83 }, + { 0x3F, 0x04 }, + { 0x4E, 0x85 }, + { 0x59, 0xFF }, + { 0x66, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8::SetPosition +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetPosition_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x2D, XREF_DSBUFFERSETPOSITION }, + + { 0x05, 0x18 }, + { 0x0C, 0x83 }, + { 0x13, 0x8B }, + { 0x1A, 0xE4 }, + { 0x21, 0xD9 }, + { 0x28, 0xD9 }, + { 0x31, 0x5D }, + } +}; +// ****************************************************************** +// * CDirectSoundVoice::SetVelocity +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetVelocity_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETVELOCITY, // Xref Is Saved + XRefNotUsed, + + { + { 0x09, 0x8B }, + { 0x14, 0x14 }, + { 0x1F, 0x55 }, + { 0x2A, 0x00 }, + { 0x35, 0x10 }, + { 0x40, 0xF6 }, + { 0x4C, 0x33 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetVelocity +// ****************************************************************** +SOOVPA<9> CDirectSoundBuffer_SetVelocity_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSBUFFERSETVELOCITY, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x4A, XREF_DSVOICESETVELOCITY }, + + { 0x0F, 0x00 }, + { 0x18, 0x0B }, + { 0x25, 0x05 }, + { 0x32, 0x83 }, + { 0x3F, 0x04 }, + { 0x4E, 0x85 }, + { 0x59, 0xFF }, + { 0x66, 0x00 }, + } +}; +// ****************************************************************** +// * IDirectSoundBuffer8_SetVelocity +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetVelocity_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x2D, XREF_DSBUFFERSETVELOCITY }, + + { 0x05, 0x18 }, + { 0x0C, 0x83 }, + { 0x13, 0x8B }, + { 0x1A, 0xE4 }, + { 0x21, 0xD9 }, + { 0x28, 0xD9 }, + { 0x31, 0x5D }, + } +}; + +/*// ****************************************************************** +// * CMcpxStream::Pause +// ****************************************************************** +SOOVPA<7> DirectSound_CMcpxStream_Pause_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CMcpxStream_Pause, // Xref Is Saved + XRefNotUsed, + + { + { 0x10, 0x07 }, + { 0x23, 0x0F }, + { 0x34, 0x83 }, + { 0x46, 0xF8 }, + { 0x58, 0x03 }, + { 0x6A, 0xBB }, + { 0x7C, 0x00 }, + } +};*/ + +// ****************************************************************** +// * CDirectSoundStream::Pause +// ****************************************************************** +SOOVPA<8> CDirectSoundStream_Pause_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x35, XREF_DSSTREAMPAUSE }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x39, 0x85 }, + { 0x44, 0xFF }, + { 0x4B, 0xC7 }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetDistanceFactor +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetDistanceFactor_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETDISTANCEFACTOR, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x41 }, + { 0x0C, 0x00 }, + { 0x13, 0x44 }, + { 0x1A, 0x00 }, + { 0x21, 0xF6 }, + { 0x28, 0x51 }, + { 0x2F, 0xC0 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetDistanceFactor +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetDistanceFactor_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETDISTANCEFACTOR, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x3A, XREF_DSVOICESETDISTANCEFACTOR }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xFF }, + { 0x40, 0x8B }, + { 0x4F, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetDistanceFactor +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetDistanceFactor_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DSBUFFERSETDISTANCEFACTOR }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * CDirectSoundVoice::SetDopplerFactor +// ****************************************************************** +SOOVPA<7> CDirectSoundVoice_SetDopplerFactor_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETDOPPLERFACTOR, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x41 }, + { 0x0C, 0x00 }, + { 0x13, 0x4C }, + { 0x1A, 0x00 }, + { 0x21, 0xF6 }, + { 0x28, 0x51 }, + { 0x2F, 0xC0 }, + } +}; + +// ****************************************************************** +// * CDirectSoundBuffer::SetDopplerFactor +// ****************************************************************** +SOOVPA<8> CDirectSoundBuffer_SetDopplerFactor_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETDOPPLERFACTOR, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x3A, XREF_DSVOICESETDOPPLERFACTOR }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xFF }, + { 0x40, 0x8B }, + { 0x4F, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetDopplerFactor +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetDopplerFactor_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; +// ****************************************************************** +// * IDirectSoundBuffer_Lock +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_Lock_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x75 }, + { 0x0A, 0x75 }, + { 0x10, 0x1C }, + { 0x16, 0x18 }, + { 0x1C, 0x1B }, + { 0x22, 0xC8 }, + { 0x2C, 0x5D }, + { 0x2E, 0x20 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetI3DL2Source +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetI3DL2Source_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETI3DL2SOURCE, // Xref Is Saved + XRefNotUsed, + + { + { 0x18, 0x00 }, + { 0x32, 0x8B }, + { 0x4C, 0x8C }, + { 0x66, 0x50 }, + { 0x80, 0x89 }, + { 0x9A, 0x10 }, + { 0xB4, 0x49 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetI3DL2Source +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetI3DL2Source_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETI3DL2SOURCE, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x36, XREF_DSVOICESETI3DL2SOURCE }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x74 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetI3DL2Source +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_SetI3DL2Source_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DSBUFFERSETI3DL2SOURCE }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetAllParameters +// ****************************************************************** +SOOVPA<10> DirectSound_CDirectSoundVoice_SetAllParameters_1_0_5558 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_DirectSound_CDirectSoundVoice_SetAllParameters, // Xref Is Saved + 0, // Xref Is Used + + { +// { 0x12F, XREF_DirectSound_CDirectSoundVoice_CommitDeferredSettings }, + + { 0x00, 0x8B }, + { 0x01, 0x44 }, + { 0x1D, 0x10 }, + { 0x3C, 0x8B }, + { 0x5B, 0x92 }, + { 0x7A, 0xB4 }, + { 0x99, 0x00 }, + { 0xB8, 0x00 }, + { 0xD7, 0x00 }, + { 0xF6, 0x89 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetAllParameters +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetAllParameters_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetAllParameters, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetAllParameters }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x74 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetAllParameters +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_SetAllParameters_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DirectSound_CDirectSoundBuffer_SetAllParameters }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetHeadroom +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetHeadroom_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundVoice_SetHeadroom, // Xref Is Saved + XRefNotUsed, + + { + { 0x03, 0x04 }, + { 0x08, 0x48 }, + { 0x0D, 0x24 }, + { 0x12, 0x48 }, + { 0x17, 0x8B }, + { 0x1F, 0x5E }, + { 0x21, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetHeadroom +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetHeadroom_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetHeadroom, // Xref Is Saved + 1, // Xref Is Used + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetHeadroom +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSoundStream_SetHeadroom_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom }, + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetHeadroom +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetHeadroom_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::GetCurrentPosition +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundBuffer_GetCurrentPosition_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_GETCURRENTPOSITION, // Xref Is Saved + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0x74 }, + { 0x40, 0xF8 }, + { 0x4E, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_GetCurrentPosition@12 +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_GetCurrentPosition_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_GETCURRENTPOSITION }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetFormat +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSoundStream_SetFormat_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetFormat }, + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetMixBins +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSoundStream_SetMixBins_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x36, XREF_DSSETMIXBINSB }, + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetMixBinHeadroom +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSound_SetMixBinHeadroom_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETMIXBINHEADROOMA, // Xref Is Saved + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x24 }, + { 0x3A, 0x5C }, + { 0x46, 0x85 }, + { 0x52, 0x15 }, + { 0x5E, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetMixBinHeadroom +// ****************************************************************** +SOOVPA<9> IDirectSound_SetMixBinHeadroom_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DSSETMIXBINHEADROOMA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::EnableHeadphones +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSound_EnableHeadphones_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSENABLEHEADPHONES, // Xref Is Saved + XRefNotUsed, + + { + { 0x1E, 0x3B }, + { 0x3E, 0xC1 }, + { 0x60, 0xEB }, + { 0x7E, 0x00 }, + { 0x9E, 0x75 }, + { 0xBE, 0x00 }, + { 0xDE, 0x59 }, + { 0xFE, 0x75 }, + } +}; + +// ****************************************************************** +// * IDirectSound_EnableHeadphones +// ****************************************************************** +SOOVPA<8> IDirectSound_EnableHeadphones_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x15, XREF_DSENABLEHEADPHONES }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::GetOutputLevels +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSound_GetOutputLevels_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSound_GetOutputLevels, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x10 }, + { 0x10, 0xF3 }, + { 0x19, 0x5E }, + { 0x22, 0xFE }, + { 0x2B, 0x85 }, + { 0x34, 0xA6 }, + { 0x3D, 0xD0 }, + } +}; + +// ****************************************************************** +// * IDirectSound_GetOutputLevels +// ****************************************************************** +SOOVPA<9> IDirectSound_GetOutputLevels_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x19, XREF_DirectSound_CDirectSound_GetOutputLevels }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * XAudioDownloadEffectsImage +// ****************************************************************** +SOOVPA<8> XAudioDownloadEffectsImage_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0xB6 }, + { 0x41, 0x83 }, + { 0x61, 0x8B }, + { 0x80, 0x85 }, + { 0x9E, 0x8B }, + { 0xBE, 0x6A }, + { 0xDE, 0x07 }, + { 0xFE, 0xF7 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetPosition +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSound_SetPosition_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETPOSITIONA, // Xref Is Saved + XRefNotUsed, + + { + { 0x0F, 0x00 }, + { 0x1E, 0xFF }, + { 0x2B, 0x8B }, + { 0x3A, 0x8B }, + { 0x49, 0x40 }, + { 0x58, 0xE8 }, + { 0x67, 0x15 }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetPosition +// ****************************************************************** +SOOVPA<8> IDirectSound_SetPosition_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x2D, XREF_DSSETPOSITIONA }, + + { 0x05, 0x18 }, + { 0x0C, 0x83 }, + { 0x13, 0x8B }, + { 0x1A, 0xF8 }, + { 0x21, 0xD9 }, + { 0x28, 0xD9 }, + { 0x31, 0x5D }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetVelocity +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSound_SetVelocity_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETVELOCITYA, // Xref Is Saved + XRefNotUsed, + + { + { 0x0F, 0x00 }, + { 0x1E, 0xFF }, + { 0x2B, 0x8B }, + { 0x3A, 0x8B }, + { 0x49, 0x4C }, + { 0x58, 0xE8 }, + { 0x67, 0x15 }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetVelocity +// ****************************************************************** +SOOVPA<8> IDirectSound_SetVelocity_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x2D, XREF_DSSETVELOCITYA }, + + { 0x05, 0x18 }, + { 0x0C, 0x83 }, + { 0x13, 0x8B }, + { 0x1A, 0xF8 }, + { 0x21, 0xD9 }, + { 0x28, 0xD9 }, + { 0x31, 0x5D }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::CreateSoundStream +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSound_CreateSoundStream_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSCREATESOUNDSTREAM, // Xref Is Saved + XRefNotUsed, + + { + { 0x11, 0xD8 }, + { 0x24, 0x05 }, + { 0x37, 0x74 }, + { 0x4A, 0x81 }, + { 0x5D, 0xE8 }, + { 0x70, 0x85 }, + { 0x83, 0xFF }, + } +}; + +// ****************************************************************** +// * IDirectSound_CreateSoundStream +// ****************************************************************** +SOOVPA<8> IDirectSound_CreateSoundStream_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x1D, XREF_DSCREATESOUNDSTREAM }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetRolloffCurve +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundStream_SetRolloffCurve_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x3E, XREF_DSVOICESETROLLOFFCURVE }, + + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x74 }, + { 0x3A, 0x24 }, + { 0x46, 0x74 }, + { 0x53, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetFrequency +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSoundStream_SetFrequency_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x36, XREF_DSBUFFERSETFREQUENCYB }, + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * Direct_1_0_5558 +// ****************************************************************** +OOVPATable DSound_1_0_5558[] = +{ + // DirectSoundCreate (* unchanged since 4361 *) + { + (OOVPA*)&DirectSoundCreate_1_0_4361, + + XTL::EmuDirectSoundCreate, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreate" + #endif + }, + // CDirectSound_CreateSoundBuffer (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSound_CreateSoundBuffer_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundBuffer (XREF)" + #endif + }, + // CDirectSound::SynchPlayback + { + (OOVPA*)&CDirectSound_SynchPlayback_1_0_5558, + + XTL::EmuCDirectSound_SynchPlayback, + + #ifdef _DEBUG_TRACE + "CDirectSound_SynchPlayback_1_0_5558" + #endif + }, + // CMcpxStream::Pause + { + (OOVPA*)&CMcpxStream_Pause_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CMcpxStream_Pause (XREF)" + #endif + }, + // CDirectSoundStream::Pause + { + (OOVPA*)&CDirectSoundStream_Pause_1_0_5558, + + XTL::EmuCDirectSoundStream_Pause, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_Pause" + #endif + }, + // CDirectSoundStream::Pause (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundStream_Pause_1_0_4361, + + XTL::EmuCDirectSoundStream_Pause, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_Pause" + #endif + }, + // CDirectSoundVoiceSettings_SetMixBinVolumes (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundVoiceSettings_SetMixBinVolumes_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoiceSettings::SetMixBinVolumes (XREF)" + #endif + }, + // CDirectSoundVoice_SetMixBinVolumes (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundVoice_SetMixBinVolumes_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMixBinVolumes (XREF)" + #endif + }, + // CDirectSoundBuffer_SetMixBinVolumes (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundBuffer_SetMixBinVolumes_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMixBinVolumes (XREF)" + #endif + }, + // IDirectSoundBuffer8_SetMixBinVolumes (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetMixBinVolumes_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetMixBinVolumes, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMixBinVolumes" + #endif + }, + // IDirectSound8::CreateSoundBuffer (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSound8_CreateSoundBuffer_1_0_4627, + + XTL::EmuIDirectSound8_CreateSoundBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateSoundBuffer" + #endif + }, + // CDirectSound::CommitDeferredSettings + { + (OOVPA*)&CDirectSound_CommitDeferredSettings_1_0_5558, + + XTL::EmuCDirectSound_CommitDeferredSettings, + + #ifdef _DEBUG_TRACE + "EmuCDirectSound_CommitDeferredSettings" + #endif + }, + // CDirectSound::SetDistanceFactorA (XREF) + { + (OOVPA*)&CDirectSound_SetDistanceFactorA_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetDistanceFactorA (XRef)" + #endif + }, + // IDirectSound8::SetDistanceFactor (* unchanged since 4432 *) + { + (OOVPA*)&IDirectSound8_SetDistanceFactor_1_0_4432, + + XTL::EmuIDirectSound8_SetDistanceFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetDistanceFactor" + #endif + }, + // CDirectSound::SetRolloffFactor (XREF) + { + (OOVPA*)&CDirectSound_SetRolloffFactor_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetRolloffFactor (XRef)" + #endif + }, + // IDirectSound8::SetRolloffFactor (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSound8_SetRolloffFactor_1_0_4627, + + XTL::EmuIDirectSound8_SetRolloffFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetRolloffFactor" + #endif + }, + // CDirectSound::SetDopplerFactor (XREF) + { + (OOVPA*)&CDirectSound_SetDopplerFactor_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetDopplerFactor (XRef)" + #endif + }, + // CDirectSoundStream::FlushEx (XREF) (* unchanged since 5233 *) + { + (OOVPA*)&CDirectSoundStream_FlushEx_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::FlushEx (XREF)" + #endif + }, + // IDirectSoundBuffer8::StopEx (* unchanged since 5233 *) + { + (OOVPA*)&IDirectSoundBuffer8_StopEx_1_0_5233, + + XTL::EmuIDirectSoundBuffer8_StopEx, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_StopEx" + #endif + }, + // IDirectSound8::SetDopplerFactor (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSound8_SetDopplerFactor_1_0_4627, + + XTL::EmuIDirectSound8_SetDopplerFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetDopplerFactor" + #endif + }, + // CDirectSoundVoice::SetFrequency (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundVoice_SetFrequency_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice_SetFrequency (XRef)" + #endif + }, + // CDirectSoundBuffer::SetFrequency (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundBuffer_SetFrequency_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundBuffer_SetFrequency (XREF)" + #endif + }, + // CDirectSoundStream::SetFrequency + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetFrequency_1_0_5558, + + XTL::EmuCDirectSoundStream_SetFrequency, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetFrequency" + #endif + }, + // IDirectSoundBuffer8::SetFrequency (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetFrequency_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetFrequency, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetFrequency" + #endif + }, + // CMcpxVoiceClient_SetVolume + { + (OOVPA*)&CMcpxVoiceClient_SetVolume_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::SetVolume (XREF)" + #endif + }, + // CDirectSound_CreateSoundStream (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSound_CreateSoundStream_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundStream (XREF)" + #endif + }, + // DirectSoundCreateStream (* unchanged since 4361 *) + { + (OOVPA*)&DirectSoundCreateStream_1_0_4361, + + XTL::EmuDirectSoundCreateStream, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreateStream" + #endif + }, + // IDirectSound8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_Release_1_0_3936, + + XTL::EmuIDirectSound8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_Release" + #endif + }, + // IDirectSound8::DownloadEffectsImage (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_DownloadEffectsImage_1_0_3936, + + XTL::EmuIDirectSound8_DownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_DownloadEffectsImage" + #endif + }, + // IDirectSound8::SetOrientation (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_SetOrientation_1_0_3936, + + XTL::EmuIDirectSound8_SetOrientation, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetOrientation" + #endif + }, + // CDirectSoundVoice::SetMaxDistance (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetMaxDistance_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMaxDistance (XRef)" + #endif + }, + // CDirectSoundBuffer::SetMaxDistance (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetMaxDistance_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMaxDistance (XRef)" + #endif + }, + // IDirectSoundBuffer_SetMaxDistance + { + (OOVPA*)&IDirectSoundBuffer_SetMaxDistance_1_0_5558, + XTL::EmuIDirectSoundBuffer8_SetMaxDistance, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetMaxDistance" + #endif + }, + // CDirectSoundVoice::SetMinDistance (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetMinDistance_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMinDistance (XRef)" + #endif + }, + // CDirectSoundBuffer::SetMinDistance (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetMinDistance_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMinDistance (XRef)" + #endif + }, + // CDirectSoundStream::SetRolloffCurve (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetRolloffCurve_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::SetRolloffCurve" + #endif + }, + // IDirectSoundBuffer_SetMinDistance + { + (OOVPA*)&IDirectSoundBuffer_SetMinDistance_1_0_5558, + XTL::EmuIDirectSoundBuffer8_SetMinDistance, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetMinDistance" + #endif + }, + // CDirectSoundVoice::SetRolloffFactor (XREF) (* unchanged since 4627 *) + /*{ THESE ARE NOT CORRECT + (OOVPA*)&CDirectSoundVoice_SetRolloffFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetRolloffFactor (XRef)" + #endif + }, + // CDirectSoundBuffer::SetRolloffFactor (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundBuffer_SetRolloffFactor_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetRolloffFactor (XRef)" + #endif + }, + // IDirectSoundBuffer_SetRolloffFactor (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSoundBuffer_SetRolloffFactor_1_0_4627, + XTL::EmuIDirectSoundBuffer8_SetRolloffFactor, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetRolloffFactor" + #endif + },*/ + // CDirectSoundVoice::SetDopplerFactor (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetDopplerFactor_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetDopplerFactor (XRef)" + #endif + }, + // CDirectSoundBuffer::SetDopplerFactor (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetDopplerFactor_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetDopplerFactor (XRef)" + #endif + }, + // IDirectSoundBuffer8_SetDopplerFactor + { + (OOVPA*)&IDirectSoundBuffer8_SetDopplerFactor_1_0_5558, + XTL::EmuIDirectSoundBuffer8_SetDopplerFactor, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetDopplerFactor" + #endif + }, + // IDirectSoundBuffer_Stop (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSoundBuffer_Stop_1_0_4627, + XTL::EmuIDirectSoundBuffer8_Stop, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_Stop" + #endif + }, + //// CDirectSound_SetMixBinHeadroom + //{ + // (OOVPA*)&CDirectSound_SetMixBinHeadroom_1_0_4627, 0, + + // #ifdef _DEBUG_TRACE + // "CDirectSound::SetMixBinHeadroom (XREF)" + // #endif + //}, + //// IDirectSound8_SetMixBinHeadroom + //{ + // (OOVPA*)&IDirectSound8_SetMixBinHeadroom_1_0_5558, + + // XTL::EmuIDirectSound8_SetMixBinHeadroom, + + // #ifdef _DEBUG_TRACE + // "EmuIDirectSound8_SetMixBinHeadroom" + // #endif + //}, + // CDirectSound_SetI3DL2Listener + { + (OOVPA*)&CDirectSound_SetI3DL2Listener_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetI3DL2Listener (XREF)" + #endif + }, + // IDirectSound8_SetI3DL2Listener + { + (OOVPA*)&IDirectSound8_SetI3DL2Listener_1_0_5558, + + XTL::EmuIDirectSound8_SetI3DL2Listener, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetI3DL2Listener" + #endif + }, + // IDirectSoundBuffer8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_Release_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Release" + #endif + }, + // DirectSound::CFullHRTFSource::GetCenterVolume (XREF) + { + (OOVPA*)&DirectSound_CFullHRTFSource_GetCenterVolume_1_0_5558, + + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CFullHRTFSource::GetCenterVolume (XREF)" + #endif + }, + // DirectSound::CHRTFSource::SetFullHRTF5Channel (XREF) + { + (OOVPA*)&DirectSound_CHRTFSource_SetFullHRTF5Channel_1_0_5558, + + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CHRTFSource::SetFullHRTF5Channel (XREF)" + #endif + }, + // DirectSoundUseFullHRTF + { + (OOVPA*)&DirectSoundUseFullHRTF_1_0_5558, + + XTL::EmuDirectSoundUseFullHRTF, + + #ifdef _DEBUG_TRACE + "DirectSoundUseFullHRTF" + #endif + }, + // DirectSoundDoWork + { + (OOVPA*)&DirectSoundDoWork_1_0_5558, + + XTL::EmuDirectSoundDoWork, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundDoWork" + #endif + }, + // CDirectSoundBuffer::SetBufferData + { + (OOVPA*)&CDirectSoundBuffer_SetBufferData_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_SetBufferData (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetBufferData + { + (OOVPA*)&IDirectSoundBuffer8_SetBufferData_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_SetBufferData, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetBufferData" + #endif + }, + // CMcpxBuffer::SetCurrentPosition + { + (OOVPA*)&CMcpxBuffer_SetCurrentPosition_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_SetCurrentPosition (XREF)" + #endif + }, + // CDirectSoundBuffer::SetCurrentPosition + { + (OOVPA*)&CDirectSoundBuffer_SetCurrentPosition_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_SetCurrentPosition (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetCurrentPosition + { + (OOVPA*)&IDirectSoundBuffer8_SetCurrentPosition_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_SetCurrentPosition, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetCurrentPosition" + #endif + }, + // DirectSound::CMcpxVoiceClient::SetLFO (XREF) + { + (OOVPA*)&CMcpxVoiceClient_SetLFO_1_0_5558,0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::SetLFO (XREF)" + #endif + }, + // CDirectSoundVoice::SetLFO (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetLFO_1_0_5558,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetLFO (XREF)" + #endif + }, + // CDirectSoundBuffer::SetLFO (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetLFO_1_0_5558,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetLFO (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetLFO + { + (OOVPA*)&IDirectSoundBuffer8_SetLFO_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_SetLFO, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetLFO" + #endif + }, + // CDirectSoundVoice::SetVolume (XREF) (* unchanged since 5233 *) + { + (OOVPA*)&CDirectSoundVoice_SetVolume_1_0_5233,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetVolume (XREF)" + #endif + }, + // CDirectSoundBuffer::SetVolume (XREF) (* unchanged since 5233 *) + { + (OOVPA*)&CDirectSoundBuffer_SetVolume_1_0_5233,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetVolume (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetVolume (* unchanged since 5233 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetVolume_1_0_5233, + + XTL::EmuIDirectSoundBuffer8_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuIIDirectSoundBuffer8_SetVolume" + #endif + }, + // CDirectSoundStream_SetVolume (* unchanged since 4627 *) + { + (OOVPA*)&CDirectSoundStream_SetVolume_1_0_4627, + + XTL::EmuCDirectSoundStream_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetVolume" + #endif + }, + // CDirectSoundVoiceSettings_SetMixBins + { + (OOVPA*)&CDirectSoundVoiceSettings_SetMixBins_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoiceSettings::SetMixBins (XREF)" + #endif + }, + // CDirectSoundVoice_SetMixBins + { + (OOVPA*)&CDirectSoundVoice_SetMixBins_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMixBins (XREF)" + #endif + }, + // CDirectSoundBuffer_SetMixBins + { + (OOVPA*)&CDirectSoundBuffer_SetMixBins_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMixBins (XREF)" + #endif + }, + // IDirectSoundBuffer8_SetMixBins + { + (OOVPA*)&IDirectSoundBuffer8_SetMixBins_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_SetMixBins, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMixBins" + #endif + }, + // CDirectSoundBuffer::SetPlayRegion + { + (OOVPA*)&CDirectSoundBuffer_SetPlayRegion_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetPlayRegion (XRef)" + #endif + }, + // IDirectSoundBuffer8::SetPlayRegion + { + (OOVPA*)&IDirectSoundBuffer8_SetPlayRegion_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_SetPlayRegion, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetPlayRegion" + #endif + }, + // CDirectSoundBuffer::SetLoopRegion (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetLoopRegion_1_0_5558,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetLoopRegion (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetLoopRegion + { + (OOVPA*)&IDirectSoundBuffer8_SetLoopRegion_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_SetLoopRegion, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetLoopRegion" + #endif + }, + // CMcpxBuffer::Play + { + (OOVPA*)&CMcpxBuffer_Play_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Play (XREF)" + #endif + }, + // CDirectSoundBuffer::Play (XREF) + { + (OOVPA*)&CDirectSoundBuffer_Play_1_0_5558,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::Play (XREF)" + #endif + }, + // IDirectSoundBuffer_Play + { + (OOVPA*)&IDirectSoundBuffer8_Play_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_Play, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Play" + #endif + }, + // CMcpxBuffer::GetStatus + { + (OOVPA*)&CMcpxBuffer_GetStatus_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetStatus (XREF)" + #endif + }, + // CDirectSoundBuffer::GetStatus + { + (OOVPA*)&CDirectSoundBuffer_GetStatus_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_GetStatus (XREF)" + #endif + }, + // IDirectSoundBuffer8::GetStatus + { + (OOVPA*)&IDirectSoundBuffer8_GetStatus_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_GetStatus, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_GetStatus" + #endif + }, + // WaveFormat::CreateXboxAdpcmFormat (XREF) + { + (OOVPA*)&WaveFormat_CreateXboxAdpcmFormat_1_0_5558,0, + + #ifdef _DEBUG_TRACE + "WaveFormat::CreateXboxAdpcmFormat (XREF)" + #endif + }, + // XAudioCreateAdpcmFormat + { + (OOVPA*)&XAudioCreateAdpcmFormat_1_0_5558, + + XTL::EmuXAudioCreateAdpcmFormat, + + #ifdef _DEBUG_TRACE + "XAudioCreateAdpcmFormat" + #endif + }, + // CDirectSoundVoice::SetFormat (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetFormat_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetFormat (XREF)" + #endif + + }, + // CDirectSoundBuffer::SetFormat (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetFormat_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetFormat (XREF)" + #endif + }, + // IDirectSoundBuffer8_SetFormat + { + (OOVPA*)&IDirectSoundBuffer8_SetFormat_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_SetFormat, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_SetFormat" + #endif + }, + // CDirectSoundVoice::SetConeAngles (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetConeAngles_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetConeAngles (XRef)" + #endif + }, + // CDirectSoundBuffer::SetConeAngles (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetConeAngles_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetConeAngles (XRef)" + #endif + }, + // IDirectSoundBuffer_SetConeAngles + { + (OOVPA*)&IDirectSoundBuffer8_SetConeAngles_1_0_5558, + XTL::EmuIDirectSoundBuffer8_SetConeAngles, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetConeAngles" + #endif + }, + // CDirectSoundVoice::SetRolloffCurve (XREF) (* unchanged since 5233 *) + { + (OOVPA*)&CDirectSoundVoice_SetRolloffCurve_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetRolloffCurve (XREF)" + #endif + + }, + // CDirectSoundBuffer::SetRolloffCurve (XREF) (* unchanged since 5233 *) + { + (OOVPA*)&CDirectSoundBuffer_SetRolloffCurve_1_0_5233, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetRolloffCurve (XREF)" + #endif + }, + // CDirectSoundStream::SetRolloffCurve + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetRolloffCurve_1_0_5558, + XTL::EmuCDirectSoundStream_SetRolloffCurve, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetRolloffCurve" + #endif + }, + // IDirectSoundBuffer8::SetRolloffCurve (* unchanged since 5233 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetRolloffCurve_1_0_5233, + + XTL::EmuIDirectSoundBuffer8_SetRolloffCurve, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetRolloffCurve" + #endif + }, + // CDirectSoundVoice::CommitDeferredSettings (XREF) + { + (OOVPA*)&CDirectSoundVoice_CommitDeferredSettings_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::CommitDeferredSettings (XREF)" + #endif + }, + // CDirectSoundVoice::SetAllParameters (XREF) + /*{ + (OOVPA*)&CDirectSoundVoice_SetAllParameters_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetAllParameters (XREF)*************" + #endif + }, + // CDirectSoundBuffer::SetAllParameters (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetAllParameters_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetAllParameters (XREF)***************" + #endif + }, + // IDirectSoundBuffer8::SetAllParameters + { + (OOVPA*)&IDirectSoundBuffer8_SetAllParameters_1_0_5558, + + XTL::EmuIDirectSound8_SetAllParameters, // Use that for now, EmuIDirectSoundBuffer8_SetAllParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetAllParameters***************" + #endif + },*/ + // CDirectSoundVoice::SetPosition (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetPosition_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetPosition (XRef)" + #endif + }, + // CDirectSoundBuffer::SetPosition (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetPosition_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetPosition (XRef)" + #endif + }, + // IDirectSoundBuffer_SetPosition + { + (OOVPA*)&IDirectSoundBuffer8_SetPosition_1_0_5558, + XTL::EmuIDirectSoundBuffer8_SetPosition, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetPosition" + #endif + }, + // CDirectSoundVoice::SetVelocity (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetVelocity_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetVelocity (XRef)" + #endif + }, + // CDirectSoundBuffer::SetVelocity (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetVelocity_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetVelocity (XRef)" + #endif + }, + // IDirectSoundBuffer::SetVelocity + { + (OOVPA*)&IDirectSoundBuffer8_SetVelocity_1_0_5558, + XTL::EmuIDirectSoundBuffer8_SetVelocity, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetVelocity" + #endif + }, + // CDirectSoundVoice::SetDistanceFactor (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetDistanceFactor_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetDistanceFactor (XRef)" + #endif + }, + // CDirectSoundBuffer::SetDistanceFactor (XREF) + { + (OOVPA*)&CDirectSoundBuffer_SetDistanceFactor_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetDistanceFactor (XRef)" + #endif + }, + // IDirectSoundBuffer_SetDistanceFactor + { + (OOVPA*)&IDirectSoundBuffer8_SetDistanceFactor_1_0_5558, + XTL::EmuIDirectSoundBuffer8_SetDistanceFactor, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetDistanceFactor" + #endif + }, + // IDirectSoundStream::SetVolume (* unchanged since 5233 *) + // (This is actually the XREF we are using) + { + (OOVPA*)&CDirectSoundStream_SetVolume_1_0_5233, + + XTL::EmuIDirectSoundStream_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundStream_SetVolume" + #endif + }, + // DirectSoundCreateBuffer + { + (OOVPA*)&DirectSoundCreateBuffer_1_0_4627, + + XTL::EmuDirectSoundCreateBuffer, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreateBuffer" + #endif + }, + // IDirectSoundBuffer_Lock + { + (OOVPA*)&IDirectSoundBuffer_Lock_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Lock" + #endif + }, + // CDirectSoundVoice::SetI3DL2Source (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetI3DL2Source_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetI3DL2Source (XREF)" + #endif + }, + // CDirectSoundBuffer::SetI3DL2Source (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetI3DL2Source_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetI3DL2Source (XREF)" + #endif + }, + // IDirectSoundBuffer_SetI3DL2Source + { + (OOVPA*)&IDirectSoundBuffer_SetI3DL2Source_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_SetI3DL2Source, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetI3DL2Source" + #endif + }, + // CDirectSoundVoice::SetAllParameters (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetAllParameters_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetAllParameters (XREF)" + #endif + }, + // CDirectSoundBuffer::SetAllParameters (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetAllParameters_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetAllParameters (XREF)" + #endif + }, + // IDirectSoundBuffer_SetAllParameters + { + (OOVPA*)&IDirectSoundBuffer_SetAllParameters_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_SetAllParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetAllParameters" + #endif + }, + // DirectSound::CDirectSoundVoice::SetHeadroom (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetHeadroom_1_0_5558, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundVoice::SetHeadroom (XREF)" + #endif + }, + // DirectSound::CDirectSoundBuffer::SetHeadroom (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetHeadroom_1_0_5558, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::SetHeadroom (XREF)" + #endif + }, + // IDirectSoundBuffer_SetHeadroom + { + (OOVPA*)&IDirectSoundBuffer_SetHeadroom_1_0_5558, + XTL::EmuIDirectSoundBuffer8_SetHeadroom, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_SetHeadroom" + #endif + }, + // DirectSound::CDirectSoundStream::SetHeadroom + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetHeadroom_1_0_5558, + XTL::EmuIDirectSoundStream_SetHeadroom, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundStream::SetHeadroom" + #endif + }, + // CDirectSoundBuffer::GetCurrentPosition + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_GetCurrentPosition_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_GetCurrentPosition (XREF)" + #endif + }, + // IDirectSoundBuffer8::GetCurrentPosition + { + (OOVPA*)&IDirectSoundBuffer_GetCurrentPosition_1_0_5558, + + XTL::EmuIDirectSoundBuffer8_GetCurrentPosition, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_GetCurrentPosition" + #endif + }, + // CDirectSoundStream::SetFormat (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetFormat_1_0_5558, + XTL::EmuCDirectSoundStream_SetFormat, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::SetFormat" + #endif + }, + // CDirectSoundStream_SetMixBins + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetMixBins_1_0_5558, + XTL::EmuCDirectSoundStream_SetMixBins, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::SetMixBins" + #endif + }, + // CDirectSound_SetMixBinHeadroom + { + (OOVPA*)&DirectSound_CDirectSound_SetMixBinHeadroom_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetMixBinHeadroom (XREF)" + #endif + }, + // IDirectSound8_SetMixBinHeadroom + { + (OOVPA*)&IDirectSound_SetMixBinHeadroom_1_0_5558, + + XTL::EmuIDirectSound8_SetMixBinHeadroom, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetMixBinHeadroom" + #endif + }, + // DirectSound::CDirectSound::EnableHeadphones (XRef) + { + (OOVPA*)&DirectSound_CDirectSound_EnableHeadphones_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSound::EnableHeadphones (XRef)" + #endif + }, + // IDirectSound8::EnableHeadphones + { + (OOVPA*)&IDirectSound_EnableHeadphones_1_0_5558, + + XTL::EmuIDirectSound8_EnableHeadphones, + + #ifdef _DEBUG_TRACE + "IDirectSound8_EnableHeadphones" + #endif + }, + // DirectSound::CDirectSound::GetOutputLevels (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_GetOutputLevels_1_0_5558, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSound::GetOutputLevels (XREF)" + #endif + }, + // IDirectSound_GetOutputLevels + { + (OOVPA*)&IDirectSound_GetOutputLevels_1_0_5558, + XTL::EmuIDirectSound8_GetOutputLevels, + + #ifdef _DEBUG_TRACE + "IDirectSound_GetOutputLevels" + #endif + }, + // XAudioDownloadEffectsImage + { + (OOVPA*)&XAudioDownloadEffectsImage_1_0_5558, + XTL::EmuXAudioDownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "XAudioDownloadEffectsImage" + #endif + }, + // CDirectSound::SetPosition (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_SetPosition_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetPosition (XRef)" + #endif + }, + // IDirectSound8::SetPosition + { + (OOVPA*)&IDirectSound_SetPosition_1_0_5558, + + XTL::EmuIDirectSound8_SetPosition, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound_SetPosition" + #endif + }, + // CDirectSound::SetVelocity (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_SetVelocity_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetVelocity (XRef)" + #endif + }, + // IDirectSound8::SetVelocity + { + (OOVPA*)&IDirectSound_SetVelocity_1_0_5558, + + XTL::EmuIDirectSound8_SetVelocity, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetVelocity" + #endif + }, + // CDirectSound_CreateSoundStream + { + (OOVPA*)&DirectSound_CDirectSound_CreateSoundStream_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundStream (XREF)" + #endif + }, + // IDirectSound_CreateSoundStream + { + (OOVPA*)&IDirectSound_CreateSoundStream_1_0_5558, + XTL::EmuIDirectSound8_CreateStream, + + #ifdef _DEBUG_TRACE + "IDirectSound_CreateSoundStream" + #endif + }, +}; + +// ****************************************************************** +// * DSound_1_0_5558_SIZE +// ****************************************************************** +uint32 DSound_1_0_5558_SIZE = sizeof(DSound_1_0_5558); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5849.h b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5849.h new file mode 100644 index 000000000..bbdf6d953 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5849.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.5849.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_1_0_5849_H +#define DSOUND_1_0_5849_H + +#include "OOVPA.h" + +extern OOVPATable DSOUND_1_0_5849[]; +extern uint32 DSOUND_1_0_5849_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5849.inl b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5849.inl new file mode 100644 index 000000000..2e4a2136a --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/DSound.1.0.5849.inl @@ -0,0 +1,3026 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5849.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * CMcpxBuffer_GetStatus +// ****************************************************************** +SOOVPA<11> CMcpxBuffer_GetStatus_1_0_5849 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DSBUFFERGETSTATUSA, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_GetStatus+0x04 : mov ecx, eax + { 0x04, 0x8B }, // (Offset,Value)-Pair #1 + { 0x05, 0xC8 }, // (Offset,Value)-Pair #2 + + // CMcpxBuffer_GetStatus+0x0C : jnz +0x1B + { 0x0C, 0x75 }, // (Offset,Value)-Pair #3 + { 0x0D, 0x1B }, // (Offset,Value)-Pair #4 + + // CMcpxBuffer_GetStatus+0x12 : test ax, 0x444 + { 0x12, 0x66 }, // (Offset,Value)-Pair #5 + { 0x13, 0xA9 }, // (Offset,Value)-Pair #6 + { 0x14, 0x44 }, // (Offset,Value)-Pair #7 + + // CMcpxBuffer_GetStatus+0x29 : mov ecx, 0x8001 + { 0x29, 0xB9 }, // (Offset,Value)-Pair #8 + { 0x2A, 0x01 }, // (Offset,Value)-Pair #9 + { 0x2B, 0x80 }, // (Offset,Value)-Pair #10 + { 0x2C, 0x00 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * CDirectSound_SetI3DL2Listener +// ****************************************************************** +SOOVPA<8> CDirectSound_SetI3DL2Listener_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETI3DL2LISTENER, // Xref Is Saved + XRefNotUsed, + + { + { 0x1D, 0xFF }, + { 0x3C, 0x00 }, + { 0x5B, 0x9A }, + { 0x7A, 0x10 }, + { 0x99, 0x00 }, + { 0xB8, 0x50 }, + { 0xD7, 0x00 }, + { 0xF6, 0x68 }, + } +}; + +// ****************************************************************** +// * IDirectSound8_SetI3DL2Listener +// ****************************************************************** +SOOVPA<9> IDirectSound8_SetI3DL2Listener_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref is used + + { + { 0x19, XREF_DSSETI3DL2LISTENER }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * CMcpxBuffer_SetBufferData +// ****************************************************************** +SOOVPA<9> CMcpxBuffer_SetBufferData_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSSETBUFFERDATA, // XRef Is Saved + XRefNotUsed, + + { + // CMcpxBuffer_SetBufferData+0x1E : cmp eax, ebx + { 0x1E, 0x3B }, // (Offset,Value)-Pair #1 + { 0x1F, 0xC3 }, // (Offset,Value)-Pair #2 + + // CMcpxBuffer_SetBufferData+0x20 : jz +0x0C + { 0x20, 0x74 }, // (Offset,Value)-Pair #3 + { 0x21, 0x0C }, // (Offset,Value)-Pair #4 + + // CMcpxBuffer_SetBufferData+0x45 : mov [esi+0xBC], ecx + { 0x45, 0x89 }, // (Offset,Value)-Pair #5 + { 0x46, 0x8E }, // (Offset,Value)-Pair #6 + { 0x47, 0xBC }, // (Offset,Value)-Pair #7 + + // CMcpxBuffer_SetBufferData+0x89 : retn 0x08 + { 0x89, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x8A, 0x08 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetFormat +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetFormat_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundVoice_SetFormat, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x10 }, + { 0x13, 0x85 }, + { 0x19, 0x10 }, + { 0x22, 0x0C }, + { 0x2B, 0x14 }, + { 0x34, 0x85 }, + { 0x40, 0x5E }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetFormat +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetFormat_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetFormat, // Xref Is Saved + 1, + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetFormat }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer8_SetFormat +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetFormat_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetFormat }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * CMcpxBuffer_Play +// ****************************************************************** +SOOVPA<11> CMcpxBuffer_Play_1_0_5849 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_DirectSound_CMcpxBuffer_Play, // XRef Is Saved + 0, // XRef Not Used + + { + // CMcpxBuffer_Play+0x0B : test dword ptr [eax+8], 0x182000 + { 0x0B, 0xF7 }, // (Offset,Value)-Pair #1 + { 0x0C, 0x40 }, // (Offset,Value)-Pair #2 + + // CMcpxBuffer_Play+0x13 : jz +0x09 + { 0x13, 0x74 }, // (Offset,Value)-Pair #3 + { 0x14, 0x05 }, // (Offset,Value)-Pair #4 + + // CMcpxBuffer_Play+0x32 : test byte ptr [esi+0x12], 0x42 + { 0x32, 0xF6 }, // (Offset,Value)-Pair #5 + { 0x33, 0x46 }, // (Offset,Value)-Pair #6 + { 0x34, 0x12 }, // (Offset,Value)-Pair #7 + { 0x35, 0x42 }, // (Offset,Value)-Pair #8 + + // CMcpxBuffer_Play+0xA4 : call dword ptr [eax+0x1C] + { 0xA4, 0xFF }, // (Offset,Value)-Pair #9 + { 0xA5, 0x50 }, // (Offset,Value)-Pair #10 + { 0xA6, 0x1C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * DirectSound::CMcpxBuffer::Play +// ****************************************************************** +SOOVPA<8> DirectSound_CMcpxBuffer_Play_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CMcpxBuffer_Play, // Xref Is Saved + XRefNotUsed, + + { + { 0x06, 0x56 }, + { 0x0E, 0xF1 }, + { 0x16, 0xFF }, + { 0x1D, 0x03 }, + { 0x1E, 0xFF }, + { 0x26, 0x75 }, + { 0x2F, 0x8B }, + { 0x36, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CMcpxBuffer::Play +// ****************************************************************** +SOOVPA<7> DirectSound_CMcpxBuffer_Play2_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CMcpxBuffer_Play2, // Xref Is Saved + XRefNotUsed, + + { + { 0x17, 0x43 }, + { 0x2D, 0xF6 }, + { 0x2E, 0xC3 }, + { 0x2F, 0x04 }, + { 0xAD, 0xC2 }, + { 0xAE, 0x04 }, + { 0xAF, 0x00 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::Play +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSoundBuffer_Play_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSOUNDPLAY2, // Xref Is Saved + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x2E, 0x20 }, + { 0x33, 0x18 }, + { 0x39, 0x85 }, + { 0x44, 0xFF }, + { 0x4B, 0xC7 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_Play +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_Play_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x1D, XREF_DSOUNDPLAY2 }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetHeadroom +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetHeadroom_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundVoice_SetHeadroom, // Xref Is Saved + XRefNotUsed, + + { + { 0x03, 0x04 }, + { 0x08, 0x48 }, + { 0x0D, 0x24 }, + { 0x12, 0x48 }, + { 0x17, 0x8B }, + { 0x1F, 0x5E }, + { 0x21, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetHeadroom +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetHeadroom_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetHeadroom, // Xref Is Saved + 1, + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetHeadroom }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetHeadroom +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetHeadroom_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetHeadroom }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_Lock +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_Lock_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x75 }, + { 0x0A, 0x75 }, + { 0x10, 0x1C }, + { 0x16, 0x18 }, + { 0x1C, 0x1B }, + { 0x22, 0xC8 }, + { 0x2C, 0x5D }, + { 0x2E, 0x20 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoiceSettings::SetMixBins +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoiceSettings_SetMixBins_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETMIXBINSC, // Xref Is Saved + XRefNotUsed, + + { + { 0x1B, 0xEB }, + { 0x32, 0x8B }, + { 0x4C, 0x7C }, + { 0x66, 0x00 }, + { 0x84, 0xF6 }, + { 0x9A, 0xB4 }, + { 0xB4, 0x00 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetMixBins +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundVoice_SetMixBins_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETMIXBINSB, // Xref Is Saved + 1, + + { + { 0x0D, XREF_DSSETMIXBINSC }, + + { 0x02, 0x74 }, + { 0x06, 0x74 }, + { 0x0A, 0x4E }, + { 0x11, 0x8B }, + { 0x12, 0x4E }, + { 0x19, 0x5E }, + { 0x1A, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetMixBins +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetMixBins_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETMIXBINSA, // Xref Is Saved + 1, + + { + { 0x32, XREF_DSSETMIXBINSB }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetMixBins +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSoundStream_SetMixBins_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x36, XREF_DSSETMIXBINSB }, + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMixBins +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetMixBins_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_DSSETMIXBINSA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetMixBinHeadroom +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSound_SetMixBinHeadroom_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSSETMIXBINHEADROOMA, // Xref Is Saved + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x24 }, + { 0x3A, 0x5C }, + { 0x46, 0x85 }, + { 0x52, 0x15 }, + { 0x5E, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetMixBinHeadroom +// ****************************************************************** +SOOVPA<9> IDirectSound_SetMixBinHeadroom_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x19, XREF_DSSETMIXBINHEADROOMA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetPosition +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSound_SetPosition_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETPOSITIONA, // Xref Is Saved + XRefNotUsed, + + { + { 0x0F, 0x00 }, + { 0x1E, 0xFF }, + { 0x2B, 0x8B }, + { 0x3A, 0x8B }, + { 0x49, 0x40 }, + { 0x58, 0xE8 }, + { 0x67, 0x15 }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetPosition +// ****************************************************************** +SOOVPA<8> IDirectSound_SetPosition_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x2D, XREF_DSSETPOSITIONA }, + + { 0x05, 0x18 }, + { 0x0C, 0x83 }, + { 0x13, 0x8B }, + { 0x1A, 0xF8 }, + { 0x21, 0xD9 }, + { 0x28, 0xD9 }, + { 0x31, 0x5D }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetVelocity +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSound_SetVelocity_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSETVELOCITYA, // Xref Is Saved + XRefNotUsed, + + { + { 0x0F, 0x00 }, + { 0x1E, 0xFF }, + { 0x2B, 0x8B }, + { 0x3A, 0x8B }, + { 0x49, 0x4C }, + { 0x58, 0xE8 }, + { 0x67, 0x15 }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetVelocity +// ****************************************************************** +SOOVPA<8> IDirectSound_SetVelocity_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x2D, XREF_DSSETVELOCITYA }, + + { 0x05, 0x18 }, + { 0x0C, 0x83 }, + { 0x13, 0x8B }, + { 0x1A, 0xF8 }, + { 0x21, 0xD9 }, + { 0x28, 0xD9 }, + { 0x31, 0x5D }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::CommitDeferredSettings +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSound_CommitDeferredSettings_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_COMMITDEFERREDSETTINGSA, // Xref Is Saved + XRefNotUsed, + + { + { 0x12, 0xC0 }, + { 0x27, 0xB8 }, + { 0x3A, 0x75 }, + { 0x52, 0x8D }, + { 0x62, 0x8B }, + { 0x76, 0x89 }, + { 0x8E, 0xFF }, + } +}; + +// ****************************************************************** +// * DirectSound::CMcpxBuffer::SetCurrentPosition +// ****************************************************************** +SOOVPA<7> DirectSound_CMcpxBuffer_SetCurrentPosition_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSBUFFERSETCURRENTPOSITIONB, // Xref Is Saved + XRefNotUsed, + + { + { 0x1D, 0x00 }, + { 0x3C, 0x66 }, + { 0x5B, 0x00 }, + { 0x7C, 0x8D }, + { 0x99, 0xD1 }, + { 0xB8, 0x89 }, + { 0xDB, 0x5F }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetCurrentPosition +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetCurrentPosition_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETCURRENTPOSITIONA, // Xref Is Saved + 1, + + { + { 0x35, XREF_DSBUFFERSETCURRENTPOSITIONB }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x39, 0x85 }, + { 0x44, 0xFF }, + { 0x4B, 0xC7 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetCurrentPosition +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetCurrentPosition_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_DSBUFFERSETCURRENTPOSITIONA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::GetCurrentPosition +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundBuffer_GetCurrentPosition_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_GETCURRENTPOSITION, // Xref Is Saved + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0x74 }, + { 0x40, 0xF8 }, + { 0x4E, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_GetCurrentPosition +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_GetCurrentPosition_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x19, XREF_GETCURRENTPOSITION }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetLoopRegion +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundBuffer_SetLoopRegion_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion, // Xref Is Saved + XRefNotUsed, + + { + { 0x0F, 0x00 }, + { 0x24, 0xB8 }, + { 0x31, 0x55 }, + { 0x42, 0xC8 }, + { 0x53, 0x00 }, + { 0x64, 0x8B }, + { 0x77, 0xFF }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetLoopRegion +// ****************************************************************** +SOOVPA<9> IDirectSoundBuffer_SetLoopRegion_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x19, XREF_DirectSound_CDirectSoundBuffer_SetLoopRegion }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CMcpxBuffer::Stop +// ****************************************************************** +SOOVPA<8> DirectSound_CMcpxBuffer_Stop_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSOUNDSTOP, // Xref Is Saved + XRefNotUsed, + + { + { 0x06, 0x56 }, + { 0x0E, 0xF1 }, + { 0x16, 0xFF }, + { 0x1D, 0x04 }, + { 0x1E, 0xFF }, + { 0x26, 0x75 }, + { 0x2F, 0x8B }, + { 0x36, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::StopEx +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_StopEx_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSOUNDSTOP2, // Xref Is Saved + 1, + + { + { 0x3D, XREF_DSOUNDSTOP }, + + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x20 }, + { 0x3A, 0x24 }, + { 0x46, 0x0B }, + { 0x52, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_StopEx +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_StopEx_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x1D, XREF_DSOUNDSTOP2 }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetRolloffFactor +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSound_SetRolloffFactor_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_SETROLLOFFFACTORA, // Xref Is Saved + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x08 }, + { 0x35, 0x6C }, + { 0x3A, 0x48 }, + { 0x4A, 0x85 }, + { 0x53, 0xFF }, + { 0x5E, 0x00 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::SetDopplerFactor +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSound_SetDopplerFactor_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_SETDOPPLERFACTOR, // Xref Is Saved + XRefNotUsed, + + { + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x08 }, + { 0x35, 0x70 }, + { 0x3A, 0x48 }, + { 0x4A, 0x85 }, + { 0x53, 0xFF }, + { 0x5E, 0x00 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetPitch +// ****************************************************************** +SOOVPA<6> DirectSound_CDirectSoundVoice_SetPitch_1_0_5849 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XREF_DSBUFFERSETPITCHB, // Xref Is Saved + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x10 }, + { 0x0A, 0x08 }, + { 0x0E, 0x8B }, + { 0x16, 0xC2 }, + { 0x17, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetPitch +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetPitch_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETPITCHA, // Xref Is Saved + 1, + + { + { 0x32, XREF_DSBUFFERSETPITCHB }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetPitch +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer8_SetPitch_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_DSBUFFERSETPITCHA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetMaxDistance +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetMaxDistance_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETMAXDISTANCE, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x41 }, + { 0x0C, 0x00 }, + { 0x13, 0x3C }, + { 0x1A, 0x00 }, + { 0x21, 0xF6 }, + { 0x28, 0x51 }, + { 0x2F, 0xC0 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetMinDistance +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetMinDistance_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETMINDISTANCE, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x41 }, + { 0x0C, 0x00 }, + { 0x13, 0x38 }, + { 0x1A, 0x00 }, + { 0x21, 0xF6 }, + { 0x28, 0x51 }, + { 0x2F, 0xC0 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetMaxDistance +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetMaxDistance_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETMAXDISTANCE, // Xref Is Saved + 1, + + { + { 0x3A, XREF_DSVOICESETMAXDISTANCE }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xFF }, + { 0x40, 0x8B }, + { 0x4F, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetMinDistance +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetMinDistance_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETMINDISTANCE, // Xref Is Saved + 1, + + { + { 0x3A, XREF_DSVOICESETMINDISTANCE }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xFF }, + { 0x40, 0x8B }, + { 0x4F, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMaxDistance +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetMaxDistance_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x1D, XREF_DSBUFFERSETMAXDISTANCE }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetMinDistance +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetMinDistance_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x1D, XREF_DSBUFFERSETMINDISTANCE }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetVolume +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetVolume_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSoundVoice_SetVolume, // Xref Is Saved + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x10 }, + { 0x0A, 0x08 }, + { 0x0E, 0x89 }, + { 0x12, 0x49 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetVolume +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetVolume_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_SetVolume, // Xref Is Saved + 1, + + { + { 0x32, XREF_DirectSound_CDirectSoundVoice_SetVolume }, + + { 0x0C, 0x00 }, + { 0x12, 0x85 }, + { 0x1C, 0x15 }, + { 0x26, 0xEB }, + { 0x30, 0x10 }, + { 0x3A, 0x74 }, + { 0x47, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetVolume +// ****************************************************************** +// * Not until we need it! +//SOOVPA<9> DirectSound_CDirectSoundStream_SetVolume_1_0_5849 = +//{ +// 0, // Large == 0 +// 9, // Count == 9 +// +// XREF_DirectSound_CDirectSoundStream_SetVolume, // Xref Is Saved +// XRefNotUsed, +// +// { +// { 0x36, XREF_DirectSound_CDirectSoundVoice_SetVolume }, +// +// { 0x00, 0x56 }, +// { 0x0C, 0x00 }, +// { 0x14, 0x74 }, +// { 0x21, 0xB8 }, +// { 0x2A, 0x24 }, +// { 0x35, 0xE8 }, +// { 0x40, 0x68 }, +// { 0x4B, 0x8B }, +// } +//}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetVolume +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetVolume_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_SetVolume }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::PlayEx +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_PlayEx_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_PlayEx, // Xref Is Saved + 1, + + { + { 0x3D, XREF_DirectSound_CMcpxBuffer_Play }, + + { 0x0C, 0x00 }, + { 0x16, 0x68 }, + { 0x22, 0x05 }, + { 0x2E, 0x20 }, + { 0x3A, 0x24 }, + { 0x46, 0x0B }, + { 0x52, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_PlayEx +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_PlayEx_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x1D, XREF_DirectSound_CDirectSoundBuffer_PlayEx }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetRolloffFactor +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetRolloffFactor_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETROLLOFFFACTOR, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x41 }, + { 0x0C, 0x00 }, + { 0x13, 0x48 }, + { 0x1A, 0x00 }, + { 0x21, 0xF6 }, + { 0x28, 0x51 }, + { 0x2F, 0xC0 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetRolloffFactor +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetRolloffFactor_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETROLLOFFFACTOR, // Xref Is Saved + 1, + + { + { 0x3A, XREF_DSVOICESETROLLOFFFACTOR }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xFF }, + { 0x40, 0x8B }, + { 0x4F, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetRolloffFactor +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetRolloffFactor_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x1D, XREF_DSBUFFERSETROLLOFFFACTOR }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetDopplerFactor +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetDopplerFactor_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETDOPPLERFACTOR, // Xref Is Saved + XRefNotUsed, + + { + { 0x05, 0x41 }, + { 0x0C, 0x00 }, + { 0x13, 0x4C }, + { 0x1A, 0x00 }, + { 0x21, 0xF6 }, + { 0x28, 0x51 }, + { 0x2F, 0xC0 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetDopplerFactor +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_SetDopplerFactor_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DSBUFFERSETDOPPLERFACTOR, // Xref Is Saved + 1, + + { + { 0x3A, XREF_DSVOICESETDOPPLERFACTOR }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xFF }, + { 0x40, 0x8B }, + { 0x4F, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetDopplerFactor +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetDopplerFactor_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x1D, XREF_DSBUFFERSETDOPPLERFACTOR }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, + { 0x0D, 0x8B }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetPosition +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetPosition_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETPOSITION, // Xref Is Saved + XRefNotUsed, + + { + { 0x09, 0x8B }, + { 0x14, 0x08 }, + { 0x1F, 0x55 }, + { 0x2A, 0x00 }, + { 0x35, 0x10 }, + { 0x40, 0xF6 }, + { 0x4C, 0x33 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetPosition +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSoundBuffer_SetPosition_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSBUFFERSETPOSITION, // Xref Is Saved + 1, + + { + { 0x4A, XREF_DSVOICESETPOSITION }, + + { 0x0F, 0x00 }, + { 0x18, 0x0B }, + { 0x25, 0x05 }, + { 0x32, 0x83 }, + { 0x3F, 0x04 }, + { 0x4E, 0x85 }, + { 0x59, 0xFF }, + { 0x66, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetPosition +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetPosition_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x2D, XREF_DSBUFFERSETPOSITION }, + + { 0x05, 0x18 }, + { 0x0C, 0x83 }, + { 0x13, 0x8B }, + { 0x1A, 0xE4 }, + { 0x21, 0xD9 }, + { 0x28, 0xD9 }, + { 0x31, 0x5D }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundVoice::SetVelocity +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundVoice_SetVelocity_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSVOICESETVELOCITY, // Xref Is Saved + XRefNotUsed, + + { + { 0x09, 0x8B }, + { 0x14, 0x14 }, + { 0x1F, 0x55 }, + { 0x2A, 0x00 }, + { 0x35, 0x10 }, + { 0x40, 0xF6 }, + { 0x4C, 0x33 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::SetVelocity +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSoundBuffer_SetVelocity_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XREF_DSBUFFERSETVELOCITY, // Xref Is Saved + 1, + + { + { 0x4A, XREF_DSVOICESETVELOCITY }, + + { 0x0F, 0x00 }, + { 0x18, 0x0B }, + { 0x25, 0x05 }, + { 0x32, 0x83 }, + { 0x3F, 0x04 }, + { 0x4E, 0x85 }, + { 0x59, 0xFF }, + { 0x66, 0x00 }, + } +}; + +// ****************************************************************** +// * IDirectSoundBuffer_SetVelocity +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_SetVelocity_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x2D, XREF_DSBUFFERSETVELOCITY }, + + { 0x05, 0x18 }, + { 0x0C, 0x83 }, + { 0x13, 0x8B }, + { 0x1A, 0xE4 }, + { 0x21, 0xD9 }, + { 0x28, 0xD9 }, + { 0x31, 0x5D }, + } +}; + +// ****************************************************************** +// * DirectSound::CMcpxBuffer::Pause +// ****************************************************************** +SOOVPA<7> DirectSound_CMcpxBuffer_Pause_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CMcpxBuffer_Pause, // Xref Is Saved + XRefNotUsed, + + { + { 0x0D, 0x4D }, + { 0x1C, 0x44 }, + { 0x2B, 0x8B }, + { 0x3A, 0x75 }, + { 0x49, 0x7D }, + { 0x58, 0xEB }, + { 0x67, 0xE8 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundBuffer::Pause +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundBuffer_Pause_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_DirectSound_CDirectSoundBuffer_Pause, // Xref Is Saved + 1, + + { + { 0x35, XREF_DirectSound_CMcpxBuffer_Pause }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x39, 0x85 }, + { 0x44, 0xFF }, + { 0x4B, 0xC7 }, + } +}; +// ****************************************************************** +// * IDirectSoundBuffer_Pause +// ****************************************************************** +SOOVPA<8> IDirectSoundBuffer_Pause_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_DirectSound_CDirectSoundBuffer_Pause }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSound::CreateSoundStream +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSound_CreateSoundStream_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSCREATESOUNDSTREAM, // Xref Is Saved + XRefNotUsed, + + { + { 0x11, 0xD8 }, + { 0x24, 0x05 }, + { 0x37, 0x74 }, + { 0x4A, 0x81 }, + { 0x5D, 0xE8 }, + { 0x70, 0x85 }, + { 0x83, 0xFF }, + } +}; + +// ****************************************************************** +// * IDirectSound_CreateSoundStream +// ****************************************************************** +//SOOVPA<8> IDirectSound_CreateSoundStream_1_0_5849 = +//{ +// 0, // Large == 0 +// 8, // Count == 8 +// +// XRefNotSaved, +// XRefNotUsed, +// +// { +// { 0x1D, XREF_DirectSound_CDirectSound_CreateSoundStream }, +// +// { 0x03, 0x10 }, +// { 0x08, 0xFF }, +// { 0x0D, 0xC8 }, +// { 0x12, 0x83 }, +// { 0x17, 0x1B }, +// { 0x1C, 0xE8 }, +// { 0x21, 0xC2 }, +// } +//}; + +// ****************************************************************** +// * DirectSoundCreateStream +// ****************************************************************** +SOOVPA<9> DirectSoundCreateStream_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x2F, XREF_DSCREATESOUNDSTREAM }, + + { 0x09, 0x56 }, + { 0x14, 0x45 }, + { 0x1F, 0x8B }, + { 0x2A, 0xFF }, + { 0x35, 0x85 }, + { 0x40, 0xFF }, + { 0x4E, 0x5F }, + { 0x56, 0x00 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetMixBinVolumes +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSoundStream_SetMixBinVolumes_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x36, XREF_DSSETMIXBINVOLUMESB }, + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * DirectSound::CMcpxStream::Pause +// ****************************************************************** +SOOVPA<7> DirectSound_CMcpxStream_Pause_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSSTREAMPAUSE, // Xref Is Saved + XRefNotUsed, + + { + { 0x10, 0x07 }, + { 0x23, 0x0F }, + { 0x34, 0x83 }, + { 0x46, 0xF8 }, + { 0x58, 0x03 }, + { 0x6A, 0xBB }, + { 0x7C, 0x00 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::Pause +// ****************************************************************** +SOOVPA<8> DirectSound_CDirectSoundStream_Pause_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x35, XREF_DSSTREAMPAUSE }, + + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x39, 0x85 }, + { 0x44, 0xFF }, + { 0x4B, 0xC7 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::FlushEx +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSoundStream_FlushEx_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DSFLUSHEX2, // Xref Is Saved + XRefNotUsed, + + { + { 0x0F, 0x00 }, + { 0x1E, 0xFF }, + { 0x28, 0x80 }, + { 0x36, 0x74 }, + { 0x46, 0x8B }, + { 0x52, 0xFF }, + { 0x62, 0x8B }, + } +}; + +// ****************************************************************** +// * IDirectSoundStream_FlushEx +// ****************************************************************** +SOOVPA<9> IDirectSoundStream_FlushEx_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x11, XREF_DSFLUSHEX2 }, + + { 0x01, 0x74 }, + { 0x04, 0xFF }, + { 0x07, 0x10 }, + { 0x0A, 0x24 }, + { 0x0D, 0x74 }, + { 0x10, 0xE8 }, + { 0x15, 0xC2 }, + { 0x16, 0x10 }, + } +}; + +// ****************************************************************** +// * DirectSoundDoWork +// ****************************************************************** +SOOVPA<7> DirectSoundDoWork_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0x0F }, + { 0x0E, 0x85 }, + { 0x10, 0x74 }, + { 0x18, 0x85 }, + { 0x1C, 0x0B }, + { 0x22, 0xFF }, + { 0x28, 0xC3 }, + } +}; + +// ****************************************************************** +// * IDirectSound_SetEffectData +// ****************************************************************** +// * No XRefs! Woohoo! +// ****************************************************************** +SOOVPA<7> IDirectSound_SetEffectData_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x75 }, + { 0x0A, 0x75 }, + { 0x10, 0x14 }, + { 0x16, 0x10 }, + { 0x1C, 0x1B }, + { 0x26, 0x5D }, + { 0x28, 0x18 }, + } +}; + +// ****************************************************************** +// * DirectSound::CMemoryManager::PoolAlloc +// ****************************************************************** +SOOVPA<10> DirectSound_CMemoryManager_PoolAlloc_1_0_5849 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x24, 0x83 }, + { 0x25, 0x7C }, + { 0x26, 0x24 }, + { 0x27, 0x10 }, + { 0x28, 0x00 }, + { 0x37, 0xF3 }, + { 0x38, 0xAB }, + { 0x44, 0xC2 }, + { 0x45, 0x0C }, + { 0x46, 0x00 }, + } +}; + +// ****************************************************************** +// * XFileCreateMediaObjectAsync +// ****************************************************************** +SOOVPA<8> XFileCreateMediaObjectAsync_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0xC0 }, + { 0x16, 0xF8 }, + { 0x22, 0xE6 }, + { 0x2E, 0x20 }, + { 0x3D, 0x8B }, + { 0x49, 0x8B }, + { 0x52, 0x06 }, + { 0x5E, 0x0C }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetPitch +// ****************************************************************** +SOOVPA<12> DirectSound_CDirectSoundStream_SetPitch_1_0_5849 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + 1, + + { + { 0x36, XREF_DSBUFFERSETPITCHB }, + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + { 0x4F, 0xC2 }, + { 0x50, 0x08 }, + { 0x51, 0x00 }, + } +}; + +// ****************************************************************** +// * DirectSound::CDirectSoundStream::SetHeadroom +// ****************************************************************** +SOOVPA<9> DirectSound_CDirectSoundStream_SetHeadroom_1_0_5849 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom }, + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, + { 0x14, 0x74 }, + { 0x21, 0xB8 }, + { 0x2A, 0x24 }, + { 0x35, 0xE8 }, + { 0x40, 0x68 }, + { 0x4B, 0x8B }, + } +}; + +// ****************************************************************** +// * Direct_1_0_5849 +// ****************************************************************** +OOVPATable DSound_1_0_5849[] = +{ + // DirectSoundCreate (* unchanged since 4361 *) + { + (OOVPA*)&DirectSoundCreate_1_0_4361, + + XTL::EmuDirectSoundCreate, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreate" + #endif + }, + // CDirectSound_CreateSoundBuffer + { + (OOVPA*)&CDirectSound_CreateSoundBuffer_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundBuffer (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetPlayRegion (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetPlayRegion_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetPlayRegion, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetPlayRegion" + #endif + }, + // CMcpxBuffer::SetBufferData + { + (OOVPA*)&CMcpxBuffer_SetBufferData_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_SetBufferData (XREF)" + #endif + }, + // CDirectSoundBuffer::SetBufferData (* unchanged since 4361 *) + { + (OOVPA*)&CDirectSoundBuffer_SetBufferData_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_SetBufferData (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetBufferData (* unchanged since 4361 *) + { + (OOVPA*)&IDirectSoundBuffer8_SetBufferData_1_0_4361, + + XTL::EmuIDirectSoundBuffer8_SetBufferData, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetBufferData" + #endif + }, + // CMcpxBuffer::GetStatus + { + (OOVPA*)&CMcpxBuffer_GetStatus_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_GetStatus (XREF)" + #endif + }, + // CDirectSoundBuffer::GetStatus + { + (OOVPA*)&CDirectSoundBuffer_GetStatus_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_GetStatus (XREF)" + #endif + }, + // IDirectSoundBuffer8::GetStatus + { + (OOVPA*)&IDirectSoundBuffer8_GetStatus_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_GetStatus, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_GetStatus" + #endif + }, + // CDirectSound_SetI3DL2Listener + { + (OOVPA*)&CDirectSound_SetI3DL2Listener_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetI3DL2Listener (XREF)" + #endif + }, + // IDirectSound8_SetI3DL2Listener + { + (OOVPA*)&IDirectSound8_SetI3DL2Listener_1_0_5849, + + XTL::EmuIDirectSound8_SetI3DL2Listener, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetI3DL2Listener" + #endif + }, + // DirectSound::CDirectSoundVoice::SetFormat (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetFormat_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundVoice::SetFormat (XREF)" + #endif + + }, + // DirectSound::CDirectSoundBuffer::SetFormat (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetFormat_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::SetFormat (XREF)" + #endif + }, + // IDirectSoundBuffer8_SetFormat + { + (OOVPA*)&IDirectSoundBuffer8_SetFormat_1_0_5849, + + XTL::EmuIDirectSoundBuffer8_SetFormat, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_SetFormat@8" + #endif + }, + // CDirectSoundVoiceSettings_SetMixBinVolumes + { + (OOVPA*)&CDirectSoundVoiceSettings_SetMixBinVolumes_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoiceSettings::SetMixBinVolumes (XREF)" + #endif + }, + // CDirectSoundVoice_SetMixBinVolumes + { + (OOVPA*)&CDirectSoundVoice_SetMixBinVolumes_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMixBinVolumes (XREF)" + #endif + }, + // CDirectSoundBuffer_SetMixBinVolumes + { + (OOVPA*)&CDirectSoundBuffer_SetMixBinVolumes_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMixBinVolumes (XREF)" + #endif + }, + // IDirectSoundBuffer8_SetMixBinVolumes + { + (OOVPA*)&IDirectSoundBuffer8_SetMixBinVolumes_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetMixBinVolumes, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetMixBinVolumes" + #endif + }, + // CDirectSoundStream_SetMixBinVolumes + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetMixBinVolumes_1_0_5849, + XTL::EmuCDirectSoundStream_SetMixBinVolumes2, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::SetMixBinVolumes (XREF) ****" + #endif + }, + // IDirectSound8::CreateSoundBuffer + { + (OOVPA*)&IDirectSound8_CreateSoundBuffer_1_0_4627, + + XTL::EmuIDirectSound8_CreateSoundBuffer, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_CreateSoundBuffer" + #endif + }, + // CDirectSoundVoice::SetFrequency (XREF) + { + (OOVPA*)&CDirectSoundVoice_SetFrequency_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice_SetFrequency (XRef)" + #endif + }, + // CDirectSoundBuffer::SetFrequency + { + (OOVPA*)&CDirectSoundBuffer_SetFrequency_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundBuffer_SetFrequency (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetFrequency + { + (OOVPA*)&IDirectSoundBuffer8_SetFrequency_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_SetFrequency, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetFrequency" + #endif + }, + // CMcpxVoiceClient_SetVolume + { + (OOVPA*)&CMcpxVoiceClient_SetVolume_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "CMcpxVoiceClient::SetVolume (XREF)" + #endif + }, + // CDirectSoundStream_SetVolume + { + (OOVPA*)&CDirectSoundStream_SetVolume_1_0_4627, + + XTL::EmuCDirectSoundStream_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuCDirectSoundStream_SetVolume" + #endif + }, + // IDirectSound8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_Release_1_0_3936, + + XTL::EmuIDirectSound8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_Release" + #endif + }, + // IDirectSound8::DownloadEffectsImage (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_DownloadEffectsImage_1_0_3936, + + XTL::EmuIDirectSound8_DownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_DownloadEffectsImage" + #endif + }, + // IDirectSound8::SetOrientation (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSound8_SetOrientation_1_0_3936, + + XTL::EmuIDirectSound8_SetOrientation, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetOrientation" + #endif + }, + // CDirectSoundVoice::SetMaxDistance (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetMaxDistance_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMaxDistance (XRef)" + #endif + }, + // CDirectSoundBuffer::SetMaxDistance (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetMaxDistance_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMaxDistance (XRef)" + #endif + }, + // IDirectSoundBuffer_SetMaxDistance + { + (OOVPA*)&IDirectSoundBuffer_SetMaxDistance_1_0_5849, + XTL::EmuIDirectSoundBuffer8_SetMaxDistance, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetMaxDistance" + #endif + }, + // CDirectSoundVoice::SetMinDistance (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetMinDistance_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetMinDistance (XRef)" + #endif + }, + // CDirectSoundBuffer::SetMinDistance (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetMinDistance_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetMinDistance (XRef)" + #endif + }, + // IDirectSoundBuffer_SetMinDistance + { + (OOVPA*)&IDirectSoundBuffer_SetMinDistance_1_0_5849, + XTL::EmuIDirectSoundBuffer8_SetMinDistance, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetMinDistance" + #endif + }, + // CMcpxBuffer::Play + { + (OOVPA*)&DirectSound_CMcpxBuffer_Play_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Play (XREF)" + #endif + }, + // CMcpxBuffer::Play + /*{ + (OOVPA*)&CMcpxBuffer_Play_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Play2 (XREF)" + #endif + },*/ + // IDirectSoundBuffer_Stop (Possibly weak, but quite OK for 4627 DSOUND) + { + (OOVPA*)&IDirectSoundBuffer_Stop_1_0_4627, + + XTL::EmuIDirectSoundBuffer8_Stop, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_Stop" + #endif + }, + // IDirectSoundBuffer8::Release (* unchanged since 3936 *) + { + (OOVPA*)&IDirectSoundBuffer8_Release_1_0_3936, + + XTL::EmuIDirectSoundBuffer8_Release, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_Release" + #endif + }, + // DirectSound::CDirectSoundVoice::SetHeadroom (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetHeadroom_1_0_5849, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundVoice::SetHeadroom (XREF)" + #endif + }, + // DirectSound::CDirectSoundBuffer::SetHeadroom (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetHeadroom_1_0_5849, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::SetHeadroom (XREF)" + #endif + }, + // IDirectSoundBuffer_SetHeadroom + { + (OOVPA*)&IDirectSoundBuffer_SetHeadroom_1_0_5849, + XTL::EmuIDirectSoundBuffer8_SetHeadroom, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_SetHeadroom" + #endif + }, + // IDirectSoundBuffer_Lock + { + (OOVPA*)&IDirectSoundBuffer_Lock_1_0_5849, + XTL::EmuIDirectSoundBuffer8_Lock, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_Lock" + #endif + }, + // DirectSound::CDirectSoundVoiceSettings::SetMixBins (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoiceSettings_SetMixBins_1_0_5849, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundVoiceSettings::SetMixBins (XREF)" + #endif + }, + // DirectSound::CDirectSoundVoice::SetMixBins (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetMixBins_1_0_5849, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundVoice::SetMixBins (XREF)" + #endif + }, + // DirectSound::CDirectSoundBuffer::SetMixBins (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetMixBins_1_0_5849, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::SetMixBins (XREF)" + #endif + }, + // IDirectSoundBuffer_SetMixBins + { + (OOVPA*)&IDirectSoundBuffer_SetMixBins_1_0_5849, + XTL::EmuIDirectSoundBuffer8_SetMixBins, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_SetMixBins" + #endif + }, + // DirectSound::CDirectSoundStream::SetMixBins (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetMixBins_1_0_5849, + XTL::EmuCDirectSoundStream_SetMixBins, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundStream::SetMixBins" + #endif + }, + // CDirectSound_SetMixBinHeadroom + { + (OOVPA*)&DirectSound_CDirectSound_SetMixBinHeadroom_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound::SetMixBinHeadroom (XREF)" + #endif + }, + // IDirectSound8_SetMixBinHeadroom + { + (OOVPA*)&IDirectSound_SetMixBinHeadroom_1_0_5849, + + XTL::EmuIDirectSound8_SetMixBinHeadroom, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound_SetMixBinHeadroom" + #endif + }, + // CDirectSound::SetPosition (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_SetPosition_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetPosition (XRef)" + #endif + }, + // IDirectSound8::SetPosition + { + (OOVPA*)&IDirectSound_SetPosition_1_0_5849, + + XTL::EmuIDirectSound8_SetPosition, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound_SetPosition" + #endif + }, + // CDirectSound::SetVelocity (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_SetVelocity_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetVelocity (XRef)" + #endif + }, + // IDirectSound8::SetVelocity + { + (OOVPA*)&IDirectSound_SetVelocity_1_0_5849, + + XTL::EmuIDirectSound8_SetVelocity, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetVelocity" + #endif + }, + // CDirectSound::CommitDeferredSettings + { + (OOVPA*)&DirectSound_CDirectSound_CommitDeferredSettings_1_0_5849, + + XTL::EmuCDirectSound_CommitDeferredSettings, + + #ifdef _DEBUG_TRACE + "EmuCDirectSound_CommitDeferredSettings" + #endif + }, + // DirectSoundCreateBuffer + { + (OOVPA*)&DirectSoundCreateBuffer_1_0_4627, + + XTL::EmuDirectSoundCreateBuffer, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreateBuffer (4627)" + #endif + }, + // CMcpxBuffer::SetCurrentPosition + { + (OOVPA*)&DirectSound_CMcpxBuffer_SetCurrentPosition_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_SetCurrentPosition (XREF)" + #endif + }, + // CDirectSoundBuffer::SetCurrentPosition + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetCurrentPosition_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_SetCurrentPosition (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetCurrentPosition + { + (OOVPA*)&IDirectSoundBuffer_SetCurrentPosition_1_0_5849, + + XTL::EmuIDirectSoundBuffer8_SetCurrentPosition, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetCurrentPosition" + #endif + }, + // CDirectSoundBuffer::GetCurrentPosition + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_GetCurrentPosition_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_GetCurrentPosition (XREF)" + #endif + }, + // IDirectSoundBuffer8::GetCurrentPosition + { + (OOVPA*)&IDirectSoundBuffer_GetCurrentPosition_1_0_5849, + + XTL::EmuIDirectSoundBuffer8_GetCurrentPosition, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_GetCurrentPosition" + #endif + }, + // CDirectSoundBuffer::SetLoopRegion (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetLoopRegion_1_0_5849,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetLoopRegion (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetLoopRegion + { + (OOVPA*)&IDirectSoundBuffer_SetLoopRegion_1_0_5849, + + XTL::EmuIDirectSoundBuffer8_SetLoopRegion, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetLoopRegion" + #endif + }, + // CMcpxBuffer_Stop + { + (OOVPA*)&DirectSound_CMcpxBuffer_Stop_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Stop (XREF)" + #endif + }, + // CDirectSoundBuffer_Stop + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_StopEx_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_StopEx (XREF)" + #endif + }, + // CDirectSoundBuffer_Stop + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_StopEx_1_0_5849, + XTL::EmuIDirectSoundBuffer8_StopEx, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer_StopEx" + #endif + }, + // CDirectSound::SetRolloffFactor (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_SetRolloffFactor_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetRolloffFactor (XRef)" + #endif + }, + // IDirectSound8::SetRolloffFactor (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSound8_SetRolloffFactor_1_0_4627, + + XTL::EmuIDirectSound8_SetRolloffFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetRolloffFactor" + #endif + }, + // CDirectSound::SetDopplerFactor (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_SetDopplerFactor_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSound_SetDopplerFactor (XRef)" + #endif + }, + // IDirectSound8::SetDopplerFactor (* unchanged since 4627 *) + { + (OOVPA*)&IDirectSound8_SetDopplerFactor_1_0_4627, + + XTL::EmuIDirectSound8_SetDopplerFactor, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound8_SetDopplerFactor" + #endif + }, + // CDirectSoundVoice::SetPitch + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetPitch_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetPitch (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetPitch + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetPitch_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetPitch (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetPitch + { + (OOVPA*)&IDirectSoundBuffer8_SetPitch_1_0_5849, + + XTL::EmuIDirectSoundBuffer8_SetPitch, + + #ifdef _DEBUG_TRACE + "EmuIDirectSoundBuffer8_SetPitch" + #endif + }, + // CDirectSoundVoice::SetVolume (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetVolume_1_0_5849,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetVolume (XREF)" + #endif + }, + // CDirectSoundBuffer::SetVolume (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetVolume_1_0_5849,0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetVolume (XREF)" + #endif + }, + // IDirectSoundBuffer8::SetVolume + { + (OOVPA*)&IDirectSoundBuffer_SetVolume_1_0_5849, + + XTL::EmuIDirectSoundBuffer8_SetVolume, + + #ifdef _DEBUG_TRACE + "EmuIIDirectSoundBuffer8_SetVolume" + #endif + }, + // DirectSound::CDirectSoundBuffer::PlayEx (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_PlayEx_1_0_5849, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundBuffer::PlayEx (XREF)" + #endif + }, + // IDirectSoundBuffer_PlayEx + { + (OOVPA*)&IDirectSoundBuffer_PlayEx_1_0_5849, + XTL::EmuIDirectSoundBuffer8_PlayEx, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer_PlayEx" + #endif + }, + // CDirectSoundVoice::SetRolloffFactor (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetRolloffFactor_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetRolloffFactor (XRef)" + #endif + }, + // CDirectSoundBuffer::SetRolloffFactor (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetRolloffFactor_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetRolloffFactor (XRef)" + #endif + }, + // IDirectSoundBuffer_SetRolloffFactor + { + (OOVPA*)&IDirectSoundBuffer_SetRolloffFactor_1_0_5849, + XTL::EmuIDirectSoundBuffer8_SetRolloffFactor, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetRolloffFactor" + #endif + }, + // CDirectSoundVoice::SetDopplerFactor (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetDopplerFactor_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetDopplerFactor (XRef)" + #endif + }, + // CDirectSoundBuffer::SetDopplerFactor (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetDopplerFactor_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetDopplerFactor (XRef)" + #endif + }, + // IDirectSoundBuffer8_SetDopplerFactor + { + (OOVPA*)&IDirectSoundBuffer_SetDopplerFactor_1_0_5849, + XTL::EmuIDirectSoundBuffer8_SetDopplerFactor, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetDopplerFactor" + #endif + }, + // CDirectSoundVoice::SetPosition (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetPosition_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetPosition (XRef)" + #endif + }, + // CDirectSoundBuffer::SetPosition (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetPosition_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetPosition (XRef)" + #endif + }, + // IDirectSoundBuffer8_SetPosition + { + (OOVPA*)&IDirectSoundBuffer_SetPosition_1_0_5849, + XTL::EmuIDirectSoundBuffer8_SetPosition, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetPosition" + #endif + }, + // CDirectSoundVoice::SetVelocity (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundVoice_SetVelocity_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundVoice::SetVelocity (XRef)" + #endif + }, + // CDirectSoundBuffer::SetVelocity (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_SetVelocity_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::SetVelocity (XRef)" + #endif + }, + // IDirectSoundBuffer8_SetVelocity + { + (OOVPA*)&IDirectSoundBuffer_SetVelocity_1_0_5849, + XTL::EmuIDirectSoundBuffer8_SetVelocity, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_SetVelocity" + #endif + }, + // DirectSound_CMcpxBuffer_Pause_1_0_5849 + { + (OOVPA*)&DirectSound_CMcpxBuffer_Pause_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer::Pause (XREF)" + #endif + }, + // CDirectSoundBuffer::Pause + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_Pause_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer::Pause (XREF)" + #endif + }, + // IDirectSoundBuffer8_Pause + { + (OOVPA*)&IDirectSoundBuffer_Pause_1_0_5849, + + XTL::EmuIDirectSoundBuffer8_Pause, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_Pause" + #endif + }, + // CDirectSound_CreateSoundStream + { + (OOVPA*)&DirectSound_CDirectSound_CreateSoundStream_1_0_5849, + + XTL::EmuDirectSoundCreateStream, + + #ifdef _DEBUG_TRACE + "CDirectSound::CreateSoundStream (XREF)" + #endif + }, + // DirectSoundCreateStream + { + (OOVPA*)&DirectSoundCreateStream_1_0_5849, + + XTL::EmuDirectSoundCreateStream, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundCreateStream" + #endif + }, + // CMcpxStream::Pause + { + (OOVPA*)&DirectSound_CMcpxStream_Pause_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CMcpxStream_Pause (XREF)" + #endif + }, + // CDirectSoundStream::Pause + { + (OOVPA*)&DirectSound_CDirectSoundStream_Pause_1_0_5849, + + XTL::EmuCDirectSoundStream_Pause, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream_Pause" + #endif + }, + // CDirectSoundStream::FlushEx (XREF) + { + (OOVPA*)&DirectSound_CDirectSoundStream_FlushEx_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::FlushEx (XREF)" + #endif + }, + // IDirectSoundStream_FlushEx + { + (OOVPA*)&IDirectSoundStream_FlushEx_1_0_5849, + XTL::EmuIDirectSoundStream_FlushEx, + + #ifdef _DEBUG_TRACE + "IDirectSoundStream_FlushEx" + #endif + }, + // DirectSoundDoWork + { + (OOVPA*)&DirectSoundDoWork_1_0_5849, + + XTL::EmuDirectSoundDoWork, + + #ifdef _DEBUG_TRACE + "EmuDirectSoundDoWork" + #endif + }, + // CDirectSound::SynchPlayback (* unchanged since 5558 *) + { + (OOVPA*)&CDirectSound_SynchPlayback_1_0_5558, + + XTL::EmuCDirectSound_SynchPlayback, + + #ifdef _DEBUG_TRACE + "CDirectSound_SynchPlayback_1_0_5558" + #endif + }, + // XAudioDownloadEffectsImage (* unchanged since 4627 *) + { + (OOVPA*)&XAudioDownloadEffectsImage_1_0_4627, + XTL::EmuXAudioDownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "EmuXAudioDownloadEffectsImage" + #endif + }, + // IDirectSoundStream_FlushEx + { + (OOVPA*)&IDirectSound_SetEffectData_1_0_5849, + XTL::EmuIDirectSound8_SetEffectData, + + #ifdef _DEBUG_TRACE + "EmuIDirectSound_SetEffectData" + #endif + }, + // DirectSound::CMemoryManager::PoolAlloc + { + (OOVPA*)&DirectSound_CMemoryManager_PoolAlloc_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CMemoryManager::PoolAlloc (XREF)" + #endif + }, + // XFileCreateMediaObjectAsync + { + (OOVPA*)&XFileCreateMediaObjectAsync_1_0_5849, + + XTL::EmuXFileCreateMediaObjectAsync, + + #ifdef _DEBUG_TRACE + "XFileCreateMediaObjectAsync" + #endif + }, + // CDirectSoundStream::SetFormat (* unchanged since 5558 *) + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetFormat_1_0_5558, + XTL::EmuCDirectSoundStream_SetFormat, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::SetFormat" + #endif + }, + // CDirectSoundStream::SetPitch + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetPitch_1_0_5849, + XTL::EmuCDirectSoundStream_SetPitch, + + #ifdef _DEBUG_TRACE + "CDirectSoundStream::SetPitch" + #endif + }, + // DirectSound::CDirectSoundStream::SetHeadroom + { + (OOVPA*)&DirectSound_CDirectSoundStream_SetHeadroom_1_0_5849, + XTL::EmuIDirectSoundStream_SetHeadroom, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSoundStream::SetHeadroom" + #endif + }, + // CMcpxBuffer::Play2 + { + (OOVPA*)&DirectSound_CMcpxBuffer_Play2_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CMcpxBuffer_Play2 (XREF)" + #endif + }, + // CDirectSoundBuffer::Play + { + (OOVPA*)&DirectSound_CDirectSoundBuffer_Play_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "CDirectSoundBuffer_Play (XREF)" + #endif + }, + // IDirectSoundBuffer8::Play + { + (OOVPA*)&IDirectSoundBuffer_Play_1_0_5849, + + XTL::EmuIDirectSoundBuffer8_Play, + + #ifdef _DEBUG_TRACE + "IDirectSoundBuffer8_Play" + #endif + }, +}; + +// ****************************************************************** +// * DSound_1_0_5849_SIZE +// ****************************************************************** +uint32 DSound_1_0_5849_SIZE = sizeof(DSound_1_0_5849); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/HLE_3911.rar b/src/CxbxKrnl/HLEDataBase - Copy/HLE_3911.rar new file mode 100644 index 0000000000000000000000000000000000000000..e03095dec2c2c40aae4731ab1356296e13918a0a GIT binary patch literal 30746 zcmZU)L%1+Ju&udm+qP}nwr$(Cjc?nwZQHhOtN(NE?Lj}CaVEj4T9wMHWavbQ1r9Km z;0yo&3-Eu2dW(xd0tWyrGXTI`Ef4_EvDpQ^svQFlE;BL!!GBXklD<@KREtDntxUU7mh^RRdjDG~$-B=`Td)-uyw{u7V~0Eyh^NYEcD`zApk zA&CT%$OV3P5b)Q(GQKMF&tre|GYkJ&cf*tBH%}pke+vKY`S$72=L!4uC}H!NeR=kG z2%o?9@7i0P`ZGR4FZ;zWxcj4j8lm{^1r2z3cKu@W!(T9hkM{QH@n1`lKZ}z8ix1Fe z<45mz=0{vV+5Gr=xRL%_@^18FH+E!iA%8k!#&uu0 z@c+Kf;@it(kUo34V=`)a&SSp8M+g@mb~l+0;0=0gY=L*{CMJ=?_DdN)m?jb$GDS6!tmo8g`Jtr$>}|%v2~~Is`Fksf8ViQX=`cf2%a!@MnREB z8Dses^Yu+od>V6(M(6t*_cMl3KYS7J%*A^D+WOGkvtEHbxXU|w+4;iZ^u&$c_v{C8 zrTlN*PXX->a|CyuT{$6EVQucMZhg4E@%%}YbbZbnOivp(ee`yCpBv_t6nZU>4j;t) zGdc}jkwg)`@SL9+P>Z^?FV7N7YCo! zbZr*DV|`0#IJYC0jW;LzV~>`12Y)!+Ke$6jfB0WBe?Hl~6Iasd?Jr_o-`{_7{%N|e zK2;|kI}@L%K&F?Lg@A*<>=n_uAZ)wtWz~|(@>^Nl{BBEm56)T^@E%!H_I$D4_*>0? zZ})i;Tg#G$`*TJ9=}#l;ds}sB>Rk4`G-ot+K6{h+!Ple-@ds_u8^*@;rnmO}Ud6JC z-+Hy?zZiZz{aa`RpUR+l=WQKsG@ds04~`mFzqg0jb8mmQLw}^{eOtbTe+uA!IeF$y z9kbs2Zh!b<^i|iJd$)XJUkMY)gxFJ{rh{%l)NH63AALzilwm?RIXHVoOP2J~fDHgO zmV>J%6UZgo!Y%(?Wm|)Aws8=0(fgL`S?g2hYb+*Ei_hXV1Dc%9g=?LUef}_Pxak0} z4m6uc)T;+r&|3P_Ki~JRW^}Zje)aq4>EFB5wp^mGaDXCO{~XYy&+0}*_QG~yxYyq3 zuYbO{{h!=} zD`=~zL?l25Nm>Y17;*dSmTB{tC)4j=df|kThzcBBhbr8AY^V{9D?BtaFED{TsHMgU zdLxC8Qa7VD10oP!?+Q-PObHKWGa=jwysn-gg_{C__znDU-_kg~OIInTAQ1>@i6If8 zvU!@EZeV97z>it+Vh8jRB?bZ!r&BW}{VH$gud}GAP+)BcKmW4e)7xbD>d8L0h)@y< zB~8k^|@U$4pnlR0YCYJB0?B{X&!^!ldF*+JP67r!y z%vb}eqm++h>$4lXq?A6^>Ft?dVcL!%#<~Zb){0^M^l4~12Y%Q&cYpmhJ0hpF7K5~x zfQU58n~^s!dLFWO26on}jB9Q~cfasO?(6>@ zlw#W^NXI;;L5rFw4Yr4XGbr8ltkNJsBB=sNpLobDN?S$qbFOpIWNBLaL)yUQ-gukx zv~2MV%mUIVXvxifShj-NV75VKQwhVL?1x`Xe>y~3^oQ=pwhnf*gar*9H=}M~F=^{_ zb(&>YS*HqOF^PjJO)Q629&lqF?6gNy&2U*;%K?j&@fze<8THuv`R-(W(NmShNADRI zB|)J3?O&W@>0TS%m@j@qujL0j*xx&T?FG&l`-g`Yr5@Z}^5v44GQVv1VU7NmWLZt3 z4?ay-Dd|Af(bY^POV|X5blEy>pXU~=9`rH$Zo_Uo_=k`+M3*{cS*q3AG)bOkY^J)oA`ytpSvrj&tkl_5mhw0o;L9BjknkaW7=O^o?T&xVMz zf6*I{0j3fFN13#Hwb}+|0hSG^rNct7bbpaD+92#2Xq$~LJfC1Z-6Qb2*qq?ab}Fw@YdN-qmxF?my?n*(q-!1tFyY6_ez&B1}X- z1;GjNP+e274%tXyVMFYJl#YBMhYrz1E&5ED$2E+6otzvtOw3LGLS|fgO62!SRzOg) z2tu$DT`ZaC_?>xhYka)>OLf6;$Xeb9b!)oEYx*FBvDQEZb7!!-wY=H;w%J5mi^YYm zkC)dP&V})vjv{oiZa0N1ERrbFF^2V*wmh_u{hN_jy1A?Sr8GbpPfu|0UR$(Py` z(SbroYeQz>5nPW3MH?7~kg{;2d0CB1#FfxRPa-BoS}uthp)Tk^k*Ye@fkj{Ghxv&!nz)wlY#9o{-hy?xh;^dCRMOSn=lM6-q;<}&_2~ABjV6zD z$Rdukf2L02JcJe8b8&F|CZzn~)9Y~Moadic^siQg8*5RJdm#vfy1iefAOCEitE2Pu zuBwh;9F^8A9TnjM8mRbjPv5~zKrm%Hk1RsCl8%WOeZTO?h}kD4y&2)n^dwXPy>IQ` zC{H&1A25&u;X@c;490i#8dRi=NhE?zsmyMyd?Qws>cRTpIKz_LctJiu)Gc<4pQ(FxxDUoE_f{7fa4GN+&iG%5yCaoI_9+Y06a=epF z1H_C-okPJfCJ*Of$bHB*fzi8Q7qrXZlruZjNN7KwGux1&DAd8l0WgLo$EG`m#Ffw# z?BK=xzZ+x}dIqujC`>5wFj3eNQMhT*J~umv6|KDLfy$cw#!#9G#2^~|ITY#e66=1< ztbrg6xeT$~m~pcNWz`X60#oJ`=uL4HrFo84Am$hw?d&LO8=O|GV$!%!D<_6P*YQ!K z8GdDv8o9G}vQjDN?(ZcW-BDFz=|R2olWUvoFHO&eo+{t-w2D|*HCXlC7u#33(c9J8 z)85NWM3K?}Ai zH@hCt+G6;$NNbn{l>@ayh^?`8TGHC5371k!*m@2YE|8P%U}fr9_`Y`@r` z!L2i++xjn~RgeE0gLkqFW5^KxEdyJ-gAnm8NCYulvL#=$zs4l$%7L~LOtda@ z*~G*W14mxh0LH&&S#t4UGl@dEf)tQ8P8eOh_)SNIpcZ>GX(4*PVr}Ir2SL^R8@6_n zBX%T$UlDo9V3bjv*;>}14ioqXCJWS}q!FU1M9%!~24a@2?kcz=8c?pSPL`ff40LKm zYO1vUT3{WUxdBw`Z%6w}r_3h-8Ao6^RIif8y_-=Q{(j++1HG-5tPdKdu1nJF{TdNlDjPk{G`S)~yK3 zVUFur+o8k2uHCAeE+j*VVPC$87KTmjM(0w$FOnVrY1RhUDEMXcMCjWCM)PD5l%- zL&JVM6(5dz%j41L{NYoF#+U7P)&8iu$w#cU1o*WvFsLXtFSoqH{=@Yby5k!=Vh7V% zTe^J!3Hqhk3e^1}>bCKcQ(^L|5EIJT>XnJegR88voJX!cz)oe&ECSHaE3#Qn zkT16hW|PD&lr|m7FadVJw;|tl%SNGZIX(6koi+8rlZFFZ+xV{iGP4m(ur9Q%uonW& zhDxSelsI^`uUsw`kR@Hd0Ktsz5W=qqetyt|OzQ>*@Wltq^rAf_z%W;;o7B{2ar7xy>8Mpf!U!&6;cR@W z^$c=tLG<%Dbjk62UwOS=m{IZGkT%ICpJ<(JJE8hKg+|f*(3^`*@zWO zI+{FMZhbNB$zplFJI_R+-6ZO$nmDoS$aQ5lKFHgkukM+Um0(2T+{%hW-4~;X(W<#7 zN#oZK;&p=0d|Mc~(~^NwYWT@mMrUK_S4+x>$6~u~byCBy?eT*uV{R zB4FA2S*NYK9Al}}S(%8>Tm00SH*K={a6`TCay zjuy<}!sXRHtigN(g09efuw}ooE{1+n(xl7m&<~u>95ha$hoG5$Ie!HW`N5qP+u)Ru zsa<;SBnP={a{@U-UVc#D7H|X*k<-o>32i{IE&-b=I_e0NITQ}j@SDP2j9I>8EfxzXkxU|z_=y3lIU5M>s)sv#D%qp9UUcMdDv zLV_}Re`)$!_<;r@J`o4L2jOv21gii#*yF&suJ4|rf)*$0!DbQfy;ICMy)QobpTeO- znMeEJ^o5$fQ@zM0nBL@?c;gmo5G2p!*PogloX&8Da;8KiAzE<-S7dUPz~MT(W@i#6 zpOMw|HxqXLj&(me!+@V>;z?bwYrQ21WB0o~)s?xc7;GhbH3ugYh!zNJB9*dSg(^CF z-O0$Si}38->2eb%`S+JiMO%I+`ECi3f!VQG2pM6j!Y@938h?vp!lMgqi3mWU-7+H*q)hz7_K4?@v1mrbvB@)z_ph## zD_?VTdRF6BB#O{W@;S4uhdJ@0Zra|KRR`N!e((JijdH72S<^>L{qMhLQevhP&vrTC z{#tl{gRvIs-ixj^=rU!h=SDwC5_e(~Vu4GVEL3R4z}c*W!A#P)HC9u(;z?smMPR|A zmZQKR>wVJXE=gv2a`}wP4iU`SqKz`Ud3*;ws-%Miw3oQN+Cub7eP06c`|OrTpYdcB zh))L^otf06Tn#5(r&zNs*pxQpVo6#M7p;StMvon3r2`$#B^T`K{AFqtVP+q~WO^R@ zTVf9b8~CjwM*)Y<#$HMj9%9!-3J0bNWk9x<)TDbbD##hbW)BUrv5U_)WJ80ivOg)% z-f&wi1#Nk4*%UUBQL9ebZE=9|-U=hLd2o(rhaFwpR>REh#5U>v!#_CySf-X5;)P-4 zGcsw>{5d>Yd((-?>AXBVI_pkc^Grag33KZ$Zd_yIx$^;FI~B5R%bV75O3>;(B1I$u zJRpe)r3u^oXgm>_*RX5ltakP^P*-O615FBpY`Mp7cFl4}ex&MjaYo15>UsNh?jp0U z$NgRPuyGCpWE>@WjwICq$#%RfEt5Jor-eB{N#;Pm`>@kulxCIWqP1fZnvT4?qO}uv zov=ho_EiS2V>jED{ehsPo_TZ=55Yx0daeg*F8igC+PFj-*!_Ey;-aNJ2)1Gex zgIH<3^lLTO#A~Vz4@Kn>^;u?mb?mTv&;?b1fHbzs6ww ze(moR4odNWOj5;o2&W6F0jkgLeM8FZhv2{`DPG}t@{7GUH-2`$UpXAPA)%UJ5^7Ca z_Y3FyzPdG?^`3zA@>)>JTj1i9!_}%}%1FeoiXxKU%M>q6)_#R}QK}P=NHsim zyd%%+@YiM7gACJgnVa1l@$=GaX`;ajdDQLAASZNa5d&|(nCE7|8FJDGuAQe%fCrUn zc^uSPlgg9rbbhrYMnTH;9*!eTVZf+y92FO`4HAzQXW{mRB-Dy_XU5}MMSaB;cHMUP zZN>iF^iDoeGUeNVHX5(kVT-BUyW!T-p2$MO5W?lw`IL2DY;mcXj(nd$RlD;x-WPS6g=-ja!CW4bda2< zP;q^B9FvMV|A-dAyWhBZ5MGW)bkcYNeb-lD;RNN>>PSh?``>9#pw59j>8Q$ll-m3D zM=)tTf!?cYuxNt+wy0;N{SlaxodN}>p}qSPm`+z4Phi*a7!Dav;JD!!CXFZ1du<&S zOi)~`^Jb;wTGjMcL22~xsVpYZ?b;JKaV&v};}QJvXdIUD7|cnzNR?CNETW_NAp+algK+_sP$GJ+Aomqfi$g7PRQXqEqX& zl4!EdTW+>dAtA+v3Aqt+K6gI$kSQF}W|t9}r%uGxiaCCU)y$FA67iP7R8ODMW1qXk zvsQ3UIo(Z&)2r~gmslpCz!Z8RbORL35py-FaQ-1``Dj7)hP zqVQQX6sk6>B(3%`3C#_v#Bqd}!}Peshl|mw7D^0dM;Q;TEodAB@inC+{*-2cF6*<75{S!wU(HN~==lxcdF~BX*!GJe$&D1&a+H|m{CnI{t7NGd zYKC9UkLkY?YZ2k3TW8lhlez^CIU$K7?X|;p3>atU3%z z)>L5DxC4^EDCzQgXJgm#j>KLdid@kezYdyK!^zmN@~AFm!y)v%_Yk|}H8Ik~OB{cP zImo6W9W19sD61e(LYyD1bWs)!oQ)d*%g{NGC^HMQrYILH<{os?HA`bD4x=2&Vv;CA zi!vRjL~<9#>o!O0zfdf7w4IIRqm1@($a`qkQ4ZBB6rE=1n167Yfl=NjCzWAUMh}a1 zO%60G!>Dg6A7!RRF|TkQT8qxV&7t_##3VQnEmusQru{}G`jmJ{m9SQd8MjrQrPa&i zM0Fx(1w{6vjRj=MeHgazIcc?%94W->97U?mZ8JN5`s62h!(>p!a0q477ys7BPoJpH2Km`4=d!kbmT&|G9 zh;9}q{*uDLrw`U*|pS%}c5H;7=LA#>KauS7@0QH4mk zCeVq8;iH?xnIMPm9HW>XP=`nsLv+=OFs16~J5(A8TM7)L(mfFr(mfCq(}SZ&lb`#k zL}rs~iu4XW{C!*wGQjslEc}25e-{>yz!o@lk`GWzDQ_>9t^k-0Q8&WRy;S+&prE~{zm<^L$DN2u^4K|8 zicIn*=Om~!tQ}P9E;#N}Y|r1dHvLzERuGE~rMW2IbRQS1;pNOjHLX;wvGqetNHOzC zhz0ksmocs1z&*lg@C0BjXlgepi2|l6O5f&i7!Jvp?=N2m3ujWT;4&t2$}Mz&*GRQ`vK45 zvUpd#Ptn326EuW0KaC5XsBl(NQAW&@%epFKSdZ=s(Nh#I#S>yCv3Sgli%mbyk#Y2J zdQ{&0qjcVd0fb;HU$-#!@x0jR3$Vv6S8-{Nh>R2+@$qOPI8t|aVQSAQLNdFkzg|{a z3wxYV3#@+NK8oF*<4@63qiE6A_)C8!7R~<|2vVX6GZH=jHG?H8I{%)A!z#w{>hz?8 zM2xAW%37}(y$y7m+>VWX+9J}y?Na7IONLQh!CkgGr{E5NL|uVJUoNPsLUx&DpK|cW zKCWf^Wq~GMEziydx4aW18qr-{^mM5h=G%ss3eJxssfw=Z0Wn34c}N#TGb48i&yVcw z0s6wWr^m2?f`t7^Q=XrS2js6YY{q|`I`|gxA1*lOD#Te*|lH*TI~hhGg0y9!=AUU2Ov=U;o7Mb--k12)2V0FUD2-vk^nJgX_i| zOr8NUm8dI!esOqWw24@hwG|?;yc0n6;CnpHXsK4cl0mso^)gz!!d{`=?mqRFG8E7icRiX4rE>7c8UX5Cp@znPi- zOH;p?$a`=Fvr^-bvZp5hkW7Di-G5gi`t90S&JVD-&moO+F3J1tTsS=$>HJeNZ>wu|@$QST(rrl9P$khBC1S0Hl2%3X zBH%i4T4@JhNyv{un6Vi8b}-gC)+1d1C3gZao*aA*gR$Q4T2n;lrVxm0Gl7P3W1TbR zhzcDX`DrB_d!Zi>v&?@sMGLq5n&2wLi>hr{LDZRyPe@hU)I$g=`dH-sV?%0A>BX|pCZ11}RSpu7PNI-LkN zGTRK2-m04Om^XKXMRW9{wpbxhD_FGb;^3rldiE*#qUrrB4aW(X+7}?CiUZW2OsFh~ zeK*<@gGHGM+ZFXi*#jr;Fo6QSiYTe0aqO17Gyr)J(O2gQKH;lV{%?m?F%yc5OsE2q zKdazk_ETEq$8N@5peOTqoF1~jz9XF9MylVw>5l;vzptb60trAexrq6( zQ@bg^g;bG$H0YR;1W^U#W={n=0TaYi}Y#LougtRSpxIg&(2rX&&Fk776 zNT7KX&4#7c`L4wiv`*Thfh?5Kr34jYtx7w*Vwe(L=~-NR>zqXxblD3NWQKqm@`}F* ze|m=gTCczl%ZHLr;BxW>Vzu|x1tBhV4mN2g_^N*n<}^|HZFM}1;`4s=Z%0h{`-3sf zyvu%(5Lc;9W9}V<8+dH%lfZQDv&_y{aI)Qa47+hM5)hU*&2hY4(fS z_7=>)sh?*`8MJFaj#+I#Ky<|c13Eb57r265zuTMY!B7{^ z8Yy;#97}u_iOhngbF$Nt5UbKtlkUOOR+jVjr(X~xa&Z3hdd za&19&YzpEs+fga3RPAVX8UNn$6wcK{>C=pD!6L9)c6f#{_1GaS_y=c)(iA*?J0!Sa z>S+41d^HaSQWYD~L^rlDn>B#bLyMVF45{JBv5n=~Z8yJVPR$dAsU_lT75CvNj9x+< zy73@}YbsnG4tM!uTStt6$23H~Wf;5MZI?|hf0{s`&Tm0rMGo#+^RT4RI;(=_aInnQ3EY!1#MV7`-1aCD&C}z_OXVkKaB?nc} z^<{E8FwwgDSXn3$R~bx}(pKVNE8G}W;Z=n2Y>n0psY1Fr<*s?$=BReuB{-0qoTZ^g z)P@6zg3FzVF2DjM>>V(cumaOCR%#**0TYsU=#&{dBHt2+Hp!ih6qfUu_Z6)kgpEPC z52fYut-D3x4Unrj3QKJaNeF&os70x_vV!m}$ZCnfRAV*8FEY>m_yS{`F_H6FXbSBiZ$@u94o+{`>zi7+6L4P$lqUn_HQdXW)$nc*4JA6QkmIGS za%C}Vl`1VQ{x!6q| zvn?$I^N>+Fj+HsZXcT$=Ai{$^;$NF|Wi0ncbj;&C)PAqSQ_LZibcM@db#a5}eDu<2 zC(y|`WT1|Z+%6clm5!O&PsM^Pd>;tK&KlTrtAPq z+?_bLt+#iPs|~f4RFPC7wNsGNpZI{*?2zB8)H>4Wv@^uVW;Zn4f{O-GutFC(EwAdG z1kofCs$4CaI+?V07g0n)I<+@3%-4u>Z?sGwGKD0Rvihf>EYE1wB;}`! z-X4LX$BO1OVN&A>PYEH4^A3XtO~;==+Bp-@dikQ8;39jmDmA(rY zI}Ya2R9$hxNKfAPa0T~HXeWQ(ZucDE6ZcM{TZO+lf}WB)WCGbwXKnwO>+g*|#8INs z4Gg$>dq6T5kXEFmak){&aFKx^VR)O;n!^lZ1(jw-E3WzPDY=-lT;(K=h3t85{Ef2w1Dz+RdjH(Atl{SgP6z&p>|)6?rxC+b~}3 zqZV~TP+>G-Y0XbpMz~~`@IFJCcY4vmW*$hiu8c-!`)8-ShT*>g)cR+~ho3I*c88-Q z&y}Ui^;LFPb0~W}$Q5)CQcx9kZ=sNF2nCR-Qo&DvCwoB4@Mm@``~Jgo#19upqf8$t zQA_HTZ9Nu7+|L1c@Bu8jaP)byGIiqeAWP8M`8sBglXb@P18~P*&5KPvNZpP;U<>uB z0RYEXq>7=@(bqpx?{2hHU=>xqupBx07Nkqrx$PBS&`ENYEuoogJ~)Y?Qo%0Olu?DK z>ajYYb5&kyuZ*kE%_8N%JnZebaKrM!IR7a{DEfJ+jtEqDztdy12VhYw)OO#_iOz<#V-LQ$@z*$@_KTFsn( zbySgTu!}>2lU44Kh{(^&xupV%3#L-w0TtSvUpOA!)qaQ=&=0R;ArsC|dugUjz6`Rt zy34;w#$8o#nmznvwOK zz8MiUxkQKGjN7;OAG6*PBAK}**S1O&0!KdV8~+sn-2b}l0Ok^PAh44woZ)w<-%N+) zDHR`mMdlV0ksrKBA!mPLkIpKNoRqck&-n|G1aad0ViL!P(2*Cp@e&EUF6syqlU$g~ zt(KA?PV73uxCWUdDnJkLX5~;lMZe*SD=lvL+ zdvkJDYlw5maG+U%jt)Qy6M!$}QAz|ok}PF(@P0wtrNx;@7C%34qEd^5kWz8QrDg#l zGHFZW&xN6Qjf~TSSEM)@z9vVh5DbuJmApj-H*Zi>Sj^Iu%`B%ml;c)m=1ys{?daqH zv*ou}R8@W}bMdq8XoS7V)N@%m7H~qM>)a9z*OvVV7s%2c9 z`E$2Ko3tWv-g&=;<(5G^R0T-9;}c@!=PEzBIt1h8Gt0slZ>^FRE^8pA<)sv4pSm=C zjPQiui`4MZ9Q!(~|%rwEPS8;mJd z7Kx0iE-OSHWy)rrwF&a`6+=Ajf{BV*$r%%KhUuqV6w_AWjcKAwOaa;XlCxgdnw%6i zt@)%XpdiN$e-Ldm%#^FMn4E_qH`aG@ljSc}nXHO878E@*6l(NkC$6ZKD={E{H54m3 zBbnr7T`8Pg)B?9kFX2i#m6wN+V%}<03SD(2Ecj;td=8Du*%V=}uV|ndZ^y*b(ElwX z`*=#YE_k;%167aw7?sx*Kg-f}G>-sIB8EWKqTqufs0L=3S5fu^JjLSJRjNQ?mW8D5 ztY?7{m6J5TTwl;@gPUbu+MlLRxT(~b1%TkO;-Ira7a#3eNU3t6Xv!EQMVq`Lo$b+`mv-XCktco_0 z$iqdt?pQ`{CkH@pImma-;}M|y$x(k~<6nxDW1POKvWs&K+rPtqbW4y|1n=wtD=vDcw{SfDqRNQ_1xtXtG4ZG}$~~lp3R}=TH?plb&eAE1q5Yj4fak;0KTb%}AQ&l6rcfJE zr6|Ycf??9MrBKbFY41bOPE!HWlAqGEPZ#(W(|lv$Hl zpcv=H!7(CAQI0`T7E*frC+N(fFX(g!Fav6)TeEV_n;%e9tuqMV%DBSm)>*9437nRhH=vuWehiZ9mf3|IWC>=FU%%T4i<@%ml+q3gbO`t^7iyhwe>%L%%!s~ z*q77%bdjcdLbd`Wbm+V8jr2+&ckYFlf`4+!{x%gE3VN<#M7q@g=Fx*o|=pO zga|768K9c|Y{y_(vE}TPpS38nk(3a^+c;IJxy-&QU#({d3OAxzIvo;L`KK#m}=>PJo8UKT5m;gwC0RSAp004m4+9+IO zJL&&}Xkh;rqR|llzW@y*Bb^06J<`1@3?{<#^wx}^dfz>L@VQ&SaRDnnK;Z-~f;xtq z7>#ZIJ5Ah_aAawU)$&51gC=>;0=8l;kXlNiW1B?|`|l{QNcK`@nWGgSXE*qNg-m?! z4CX?x54yJpZ{N+=${#M4KEY!Y3WxKA^Hjvi!9)2?JYxz~xBTVooR=$H3VgfYJRZ!$ zUn9>bmrGzC`M|ueJP%1|G+OX=T>BIHt0jwtA%fD}+*7yW+9}VltNq;(5vVHoSOHSD zjgjQDQJ8*#P1c2V{OPoygBJg}Da=xLX>yI3kV`$G!3MtNdfiTZXE-|7^>XRAFFsqQ z5%9uzEQv*ta!~T9Zc_SV?K({tRKU@CmK>&P;B@79Dg=xCU?oS~geD=`tnjfq$7+r} zEU=^L?81@?_xL#_0uXpYW&7g$j-zs2lS~*nd&ImM316E}g5bKOT5oB)#ky2j&M#C3h1^)d@oz}9YD&GB*KsZ2jJaEdZhES; zyX!4!*i5g88PSBENgN^SW;Adsd5Q52Xqt++^4IM?^ksA%LXsgf8VXTXnV?b$M)IiG zq@DSfYEUefmJ~{Xz7IC&<(3TEVOD`$jBq|56{yi6+u#Lb9ky`texY58>mNTpjiN%u zgH3KV8;d>HV+WpCBiAO{oxbT`xRYPYDt->|_xf}5$|DP&Ko1;CA3}n)|4Pflr;RVlLjWu3 z+OdeSt#g64kZWP2$y4T_zpyk&e31a)wQU~5Chq`W+2d*Y1&_)@_y-fT6Pzz$8>VsM zDbRK%525!Dg}#tEDyF|ZwnOf4Q*Xnw!pO3-Tsta{7sG7l*!xL|jZ)A4xmHG4Do|Jk z;^LWVMDOZn@mFVzK<1RZ)z6Z^n>;VVvnYX+#jN&U(@_Y0{qaD^(F{P(YerIBT?mvL z)`zx068}Iu3LeMTWsGpe4Ol2?@=&ZvmZ$P1ZFAsmRDSggq1=# zzM@j7{Epp57IBU|cTWuPYPY+C| zI~`;Cf~1GNM5JY{KcMA$m+r85P-gZFDEA1lko1J!iGD_~a)o*95V}xGHRIzNMYUTk zM?Y%XNI5P^SwT!np5H1e-s=*t~NAZHTW1Sg_Z6k}H=LfMnGrH>h?A6@v% zo7}nmZkVrthb*qh5-=;UDME+}tT`N{QGkv4QXpZ)cfHE8*3=e4y)=3(tv}ySjcc$2 zZFM66iSVu1fBE>$z}HzigjmrypHV2ndH`24I4@;;Wg*RKSy&!*isovGzUx}KZGoDU-*HA5YX0g zW91{23=~V0Rjfum`1Ef*erO}7-qr6VN`rJ&YDqM^Czxhw@w{ERCG(TATYp6b(-=y! z2CeP7`~kEi*{y^E3)`%@}_DwTUD{pG_qh*ff)5!Wvy(YU%1w&0p$T;!!z4A#;j-=u?on`(#v_M)0>;WtZtX zd@DGqi@+xTY|RxnuBl74%Dj(#6MD)X&V=i137d7bjkL0CK~z7a(`ynvq~TONzf< z8f3X{&6Fcp*~<*W@@GP6F4TWL6x|bMqJY949dyTBIw*k9snj#$^mCwbJ^%`M&JjP-_d**p@^Kkb<$;?0itm%on2}Ul=Lb1>{MQs`kxDtOtqfS z?3)9H>T~6eaw;SRr(2$tzS3{5y_#wT)Ei}2O>k#RmRG!A=CCT=pZCaG1d)Ivf`r z@iQ^349oq8;VC%4@=`p1aHyr3Ui662$y}q8c~anJd_M;@QKi&eREZoTsb#<(yA)`_ z8`#+-Q?T2;6<(x@3rBbelO`edXo5s8mch!8XxH3#C-bvjM&s0UlTE^nlP@V#ik><$ zw+dX{Y`OI!g}PNWCMU?1prtU`46r~VUX?;F!~?3 z9`XOc_5UAT{x4c@q-lx(m@qxPfGU8w(|6ILdGD$@yXMYpJW-5qlD)QDtjL_y#*0*x z%{eyQv5ZD{9c(lbjYb1{ z|MiU&(ABtzMuT{k2KY?nKlic!t9JME=noMv^6Ma|5B9cjfQ9}<{}cXje|6Mvf0vfr za~PC2_6^rJ3i5~Wr+ePFa1$xfi+=?FSM+sK?1wi5aQ(}7*VA+T7YFf6uU?+=_ZH-T zmlpq5XCUq1JO7(Uv9|Tyc?JKr@pV%87q)e<^#25vH)_be*sk}qfi(GkUfg}@i~4%H z=i7C*R{XR7e#0^DzK^Oe{ntC*zm`hN<@&vQ-zk0$w!ugDn06iM;pzG}|F(WbmG;qp zPwUOequg<=jlTfA3V0TARy-VBytHWEf6G3s9C`F+!4LiA$<5E&&mInc%QRr_u;$bG z=Hln@QK852WaP^i;h1#h_I!Orrmuc^|7d@&iwEzgqX!qf7(LG~V!Zs>_L=^SP z0fw3U^z&f#>FfSK-am&2M_Fd(j=A@*o7bvQ8^`tfJ)Uk(vdN==!}Ie>1O0u=R6n}{venuO6yEoK z(*AFJq9T36Pb^fwo)Oov-5qJ0np!`A;md^Cem%B&;yK$3&ek*X4Sz1e;xRCWdq=_h zXVLId6NAy&haX0XtP>3b2ln!L|Lg4ZdGKNS{_k_c=JR`hKi%SjzWr&3<;~goLD~I$ zy|}_1gr@Azlb`p5hLj8SJ?3}*p`&5NCA`+u$O4i2xg&Dh2dFJj(*BfgKP z+k2Oz&E@+z9`In`%^!*70nIQ%r$(Mn#xmmvJmbCM>~y11ZFcY3<@>y!Uys2p7s=T7CZ2uo zefhokhy2=WtSCx(IXJu%ALbmv=gkS%_lwJ;Cuw*-k9_(f0<5y0^y1U2u-{*|`mo?p zQF{-dU2506dN?qcU_Ndyp8~3T$Mi$|ErSncFxi*Qr-whmsDBUn;>pq2K7Z5yvVY$P z7h-$#Y4~BV*KePX<g1K zxvEYNv+VnPxPRrn`kJTIFH)YUk;jAjYp4DDD3VJLj4(rA{W&?m9NlgGJ=~1nQ?S?v zoQU7a{0s1X0^S;be>QGBA6}lj;K>>GoC=%b^lFRYFUKWYg9Lx#s2BU{bg0%34iC?h z{NRi8!?KD0cp~`sq5fL!_x(m8eBWmuA7niH-)>DE8NPp`%agG@AMhh6O^rJUCo;b$ z@JtsPaCPb+nRM}e(bufG`5_63vnrQHs*jn2 zC|JgwgcF&R;c>+W$=757s2(B#B}@LjxBBsIZ*vMzd@k~8#nG$xgQ}xclhQ})CM0(E zH`#dY8sdb@LWKgTxDQuUdH@M*R6z||A3G2|`0933y(rd-vDE6wE#^lou)y6`_3`$4 zU&-8@x~|)P2wUhY5FUaETf?{A_MO^ChIp>ci68vE8owy6IPppN zM+j>APq>p%pjfPPq#j-{5kYz=l%To zwR7$yQJk&s!YWP;u^@^OU(fj@**Tx79{!hRJC}psdqEvik{j~FC!OPFsSK$i! zzLM4oHYS}n*d<1ev;i05SZB%Wx)t2%`s^lvE_fzm773cfb{-vaWy)M6aVyewRp!<} zjFLd=fKe8zg|7+f9^}in5fZTBrCNbRI>UOy>nRO!SvXVixe|@2qfq-k@!Q9-H(ln_ zzUOuj0TIvyu;Ne>4G681FmsfyG)VF@+O=_z227zml&WDZFT2iwR5@i4qsh&05dadF z6Rx_|=<|^VW+B2m&FuO#ZZ%-4E4%QlH9+IvkIH@+atgVMtW#%L zr8*)MMR~#$@;^_Bp0J^Ob;-#$sBgY?V3k1PJd+D61AedTpNsT{zr)Fw`*v^6{+@3pT^X+AMXA1u zvjT`U2K6q+w?$yCg$I;qiz+m14jh>pTj2ny(#)g8UrDXw16JG_EDcx!$i z5E{7|;1}2~MqL5|!yQ%L9}!s66PFM2WpI#@_Y9#CM78Haj|OcJ|9R!s;=rR$w!at? zDUFdaOk{P_%{ES^6Ie`x8o8Dt*)*bI`-pkgTVhM`gN07tH% zY^g$^g~9W|a;VV`*xs^M09ygqU{fL|R&l05y@3n^a3-)-HyOPdOd2%tex8m_eEK3U z`pdMQvB}B$UC57LeLA}WiABcs$JSI1F)6ylx#Nm>r~kuLz+h;|B|O)9@89ZIl# z>XUP~2(V;==om;4k7n>DBgqSg;Z=9n^zRrZVn&d5j8F zCo!Z#vz?(eMV9<0K-=Ehj6tq=+&y|r_2a4Q(vTU|_gcB!^bK>q-$xEkE4?U+@2A&* zQi`bFsQSv0%11^ynlQtA*DPPLb8#G~8Q#2G#6`wZsO-@N%M8$_dkFaaGjSCf&pLHU zwJ?TcidT>{DVih?It3^g(Va3}k&F$N8ZCB(6hTScZp!!D zl+QF{jXvxvdGTVynPunZ$;qpaPdBe|D(gP5zY4U^8KqGACmxMi#)_JQ>><%eTqul? zr%PRvOu}X-klkOFf-^oXg)JpU%JK|{E?AH}$j?KeQ6vf=(5I3I(Bh8%D#8hSad?Mp1E*R8DY!ZwT=Vp3Jf zQM;6`a8I`ja1$+jvw^Y*mXA@!sR>&USC*BX49*0(iZ8Z8NYB1aI%n;1q?)f&aspf+ z1iK0}p0*riXAKOanB6;-C#&08m@Dt1tnbD_NrOze z1U+G^ux=e2$MOZ=1E)43x&_27q;21!#5@$45v=VqjapOEb&6|vfU5Fbwn7%D(V#h% zVn}Cf&~q-%I<`wJ<41CvW>Asq0~`)Aw(VYW0nFpp-53U=!Mtdln~8I8C#xSd4fJ`= zX5=S0jmz+zWwD<4^9LEkqE3)KL4a;p zxo}`S1uLlyor!T$R0Bq$CDEzfuQ}6{u&C>J%y)1R05eA~8If7rQdrK7YpYj^xphP2 zGNd_tZnkiG>$Xv5rurJn`@NA-8awg(O(m|iXPNAUaZ=3bcyc4W6A%@J%7)QvC_*04 z&vaLl4FOU%xw!7*f;fW3-pN4()}k}A-D0~fg@gq%<-P4TkjV1YP#hPQ7!DaiT!3u# zA9Eqk$;p-<%W*+&c2(EmQO$!SsAv4+V=QZ-ia0?rU3Wv1ccqhsqa2hV~}5#Asx}+GFO)`$DnaZk*9-UbdDKrFYV+ zd+>D=dkOD!0G)R#0jQBxRDP(eWeH*cxgNOyV2@!bRK&yd^M7N0 z)`&_+tle6n%Op1DHIG8h57|WG9ginIMR@m9rXg!Gei25QB3ZHAuNAm*>hR>@)ef33 z`8Vl0=W$6rfSPx$me7huf{(Evod}%^DHsN>*X)G z-J1BN(FU2O3lc^3=TT_;gFWy~?-xgvkajuJq83;Ij$S!b@-DGpM#DMrg@D!xIG>2h3g<(7W<`nHYtfzrU_1tmfg`*dx)9#(of>ZEloq$rYhWmKXm4nJ%wuF; zmP?;o!~6BjjJsjOKmX53+hy15$%z&qE#%9D4S)|R3aXC_NvdBk%x~I;{KE^fMjPk~5ryxyT(we~pA=mvadfIgVZIkQTRI&QZ9tRN$@n%|nD; zod8Ws$c+<2JWcfp&Y@xI5=IxYJWh{dQ}C;@J*?#Xk0$OqsrGOHOhj%VAest1J&c5d z^1fv#dnBBhO-a&-*Sips#iiw1dW}T5)zz;)X=|{uR@_=SsOp>U^_LjGP3sk5`6~}n zQb}2L%^X94QG#mC#9&O-hzlvCdl=1(#Q3mu!=xqQ<=%_8g#aAJBI_)G zY4`}(kfL8LL#2Hu_~d>IuIsgL}yt6tU$twEAOrG!mb5~gtG0x^i|Rw+ZEDlpe|twg>!ckCAhWm=&!j=GF?TJZh>iL^I~_5xSPb zlG>$yoI^-4i1O>~9@(mv=d+ZKJmMk7c$XOKR3L zI;`vm%AU&LCR1B=V@K>@nBDgbyV1kk7YojMglN`x(*lu$ zBGorqS*{I0==rWoX*Sgpb_;^sM{QzXgmQ5YaYW6k#Z<32s}>7_Sx4*U#T0m=`Lh)8Xm;)%5JIl5KW`?h}7k{iS`VF(HYfx zsoBU%dmmt9h?~froee^h=}Y**V#wddjdY|(uW2nf2`oslxCrovV^ls#nM0S9iNXW*=D>$kOyLTD@cY3rhKl$RTSXDFbv+bilqI*ld}eO z)|WoSy3A!xM)TmvWE)~Tpk6|_WjQ^C2E^-NC)s9o!-nR8vOo>YYH1t#%9bIesUsrV zx%BGc8=4q2vmB%FHXF|e6Qi;5yQh=kR!&XL6v;VV-*=#zfyQ*Jb;VaCVwX{#LWs-a z8RXThDsawvGN-rs;R^I>EL}o&=+?$kDH)63kIzPE?khD7>k&XnAWW`BK^af7jjm#< z*0DK=GE^LO9gsI{R2lsq!4Q& z1Ul28{tv5l))3^!uJ2KM)w<4Uhx>tBdxGT0?jH@-k2v#0brJf9ZIB z5$_5Au%kvyluflD0UaH*yKI}NY0J~Xrdg63t3vWDXzuO87Rdj@sas!6W|h9 zu@pcf=aKJ#?b@c*&3T+^eX)478Hs(NrZ6!WXB$UsP1^^BpkVQ7=8qh%(1XVtt>D9B`emIfk%57n~RuXGol}&CSkX9t`q#lF3Wu zFTA`G7~iW;S?*Y{jaY+z)?BL{%Fm9XzQ1hxY6nR2+vjL8j_3$L&hc_6_z7SXsU}L$QY`k#A$Z(D2okJ;57e)saErjCM<0Hb!)A!ww+V zUTd_fGpq#@%_H>mhfnZxlr}=DUfwuB4$09Df<#I;gf}eZBM;On^26hh%7YTk;T&c$ z5>VSBV+|I-Tt3PwyXgf%*y6&A-fa*Ox6H%D26Jv!lN9Tl_R>n2-z1+2J7`TZBixQ# zvppxnhMDKlCW6ROJUae-oH#r5;nh+4bkG%{R7bQYv1J;>#O!m?ZiQ#yW{tQ98$5my zTn6XjR;;g}*;cHDD`T;7#@JcISWY9)hd%R;?bM$6ig>4?@6H^*$bUR*9%}TG`btM* zTJmRf_{kEzpE7wPp5bhkFNP3`#fWuUmeSo4S5^qiJf@z-16_G+5oWtil1;`&Nl zCzOk|LN>s;s%J)OWxsSN|j^-?i| zo_E)Sc{{<6*Y6Fl!68ne7P}_zVMw+jax9Nbv`dzE;yl~;xiWC*?j%r95I!eGEdkmq zwHT{KQQW_l2zueCuEpAb0zG!f0i;`jl}29;-io7qBG9YVOK3wqrFxpUr}$d(rmka5 zNs{K29CzIonEH9e_36*rr*op%!3*MaTo^n?+$8Lmc5c5ouI11cMImJ2(exM%(+8-a z`U_`+6;!$+T)HE75jgA~hGH)~Gm0C7f!hL}E9)gIkxRG+HN@_w7YamfuaT zz9w-ZkZ_YrU|4FA*tl(e>d<%I0U+1MSw^_6qdH5OD!SCr%)nk{X$<+>dpQRopY(O1()ET0z|{x`3pyp>&}69ao~C6WvgZ%=0J=ka*nloI8k$c@ku2Q3JK)QqfBU4<(WLUE7BJ73~| z7|;j8GBe;bs^sF;vJ&hhMT&&rtfm)^!?x?RRtI2&ZvfCwmIy_K3O!Rvc=N$B_2gbD zJDuLUcb^icmL75+xZ+k)Rd?eN)PoF=lX&np9pHCBw}?XCs)5xVG+Lp`IwMvoRs?=l z7X++AsM)WQ9}=)RJV&q~vln{`^)Qt`W>BFnig@*I%4wcn zT*@vHu#AF=yp9wi;gllhEds{+Lde}(o4*+8izgT99>v?aIA>nU#{44| zfX^SWv>}mi$^VR06>!==77^g0CCKE;NtySj6d2~4<&B3a;|nTgsPOhCjAD98YcnK~ zK8SxGjU{ddTt^0~w^cy~;S?emo3EhvIeGsgyC!gS zb8+P2&A6E=pRTXNCPU+f>O&Ppe$7G}M4HUx&O<78e< z;_NR$>m-*o(d$;W9t?8sgoZ0pz*i5YSs$*QwRP^@(0+YwecU{$jh6X5*h7&vFn~iq zsc%}8o35kYv`)^#Yk_)KfD_ZznjF1b0hK!pkky~kRZG;1{|XJT2~dEHpcYz$YWQJ7 zgn4rbE*Tey!?MEFa~q<;oH&?VfRnSHR71@nxW7%Z;mc00z3=HX#z`elXuVwF(Kh(t zYllc}yaciO5#xgzz zUG*ZQ^o@)kF(R4{90W_RhOH56;Sa4&#d#)x4>oODdO4$Usr+;5+8a_coAtGD6h*i< z?M7YH#!48WxVDcj8V-oWJu8$1onDL9K^Br)mkYuj3ye*GD%K=JCz%FL(U7iqx=(oQ zfSZxc92@uxe58kO_W_f#^e^0T4pk$N7|p!{MzKPT@$$Qgm9z+ARf@h%-jKrp z*%VQj0o+Y%CzacI@yeB3d!HRC3{tG~K5P%Aosb)oY!x9-0o+QlYYvv0PQHZ-@X6*Z zOVH;LXVTt~@1SqJO(gNnzynK^93Y8S2Mm5WSO)?bNkapA%8EUA%cPanoaB1tgb>t( z`l))jBl6>txcxrDw+>ve`{A~-nhmQh8B1Gv808pZa;BGy_vF`#KVdL|>6w&skqO-i z!X#s-lMf`KOuYAG1DvRYJrjdKmP$mD!vO4E)R`K9m4=7WBCx=04O3UIqe$A{jFNg7 zytzYr3b^`}$8svLTC(^w<1}K8o+*fsX}XQl$Py%yI8wPEBJv<#H`*xWY*lJw8n(_a z(7NYstkVIx3*sE-#Nl~&jxa_N{*%2JL_&zfEVD<^HKr!ob7Xed&3i#xEdhM(XskJ$ z?)61v&wndixGC0Gav_-?-72&SA=w+*A4y1Ksg^91ALgKQ6aZt_I@h_|15pE7Zm|Fc zYM2q|4q6QH9M~ftYL;%C167Drm= z&Y0Xfj>|Ar&X}THH-t~g>&Xu_0z1QzM50SgO}B9AX27zQyJgbKg;RUoDQFAw+#?#( zTM_zP)pNHAzR3NkC)p*+P}s3{(l{7uxzwR$LCWQ`O`$-lA=o0i6554B;y+D2lFI+O>UBX5*K@h5(oYSF2aUf|7a{-I2shyN84yPnx$1S>n^Sq_>mxmGEnFd}xu;XJf~K zy&mq^b;leH&?^Y%m-1t(Cf87IGeJ7KfwsmGKmjgR&&|+a#@fR66s7`$!ivU-omJ$amut)xZr&5S1{g3s~wX|#>C9+q*ETOZ-OaL4DsT8K#E33 zA+Dy!qf$*Q{dy?Yd~y`(5cEljp-BtEE61wGV+Fbx#UO?WWJqtR&C-4k4 ziK=hq%9=O{pxTh+hGA>LB~>V?-bQcIb7IC-ySlwzs(vF}U^8K?n5v(NQOh+AK`E2- zqe`r#%TM8}1=g&}1dczoh2-(6AhcrV6bJ33i&7JShXqvq;LI zciuu_@YV9#tS<$8C&G?JStnPHNDv3B$3kp|;LrYU>*68Iq5l4=>cj#C8lw+(rI}02 zK2B=%37ME+do8hwe*;pywvqcVCz1H(UEGc@M#d;eCf{YZTx}c2lh^CX=JuSsf+HC| zufEY3nd2;uv-0SFg*5K(@?2c2@C?V&Mnls)#DRsak+O;AO;_r=IsH_H4s>Ahv1NT$zhrHaV9a6miXyWw2!Jq(RC-=u*ACJGcc*nk zD{sHE##d-{5NX$L5Ifn?X25_uK)OB@;@~n}RjRbv%A`W=&qzna$+}}iTYpx&MykH? zTVjkGnk!ARuVR0^k|W&a+7V@n$^u3zI5nId7Q-EiPL6@%={ld4?P$8DeW#xt4dO1H%O+U9Fw+;>2YPrZ!!5S31%5Qg!LU(!1?)5Ah zUFw7*cdAf_-iSE}9;{212c0r>+sr@2R5<)wHq;Y0>MK|U3Bmx#rpY7AtHX!&;LXXG z&-T5^#iks7zhqs~=MWN)H?y1dM-RbZmN7dR@i>oE%;7AJ0m|Vek;w-sqqMAg=BGU~ zZQ@sQ$1k@}OG8ep@6>Xl3m8c52~y@bhU%5*HWS9FuoUVa*IFp0g8@<4I~X2D9RmT7 zhe#73%$Xd>d<5pN1dp*;TL>{>tJp~q#GcH4QpJ02|MBgHd@XO+)%T&Vrp2l1dyRSr z79Tost`jpi**l1U;3-vVehrIKP_UNP$Oo2s_|2m%JJ+X0-67^LzJ{`-sO_hcTUqQc zP=U&0g$yD2NA#{GMxE~UD=^9Wqp?eh62_%;11G}g;Y&yYDv4RONQD$w5|Qx`sG>MZ zOs4v>^$R5xWE)U$Q2j(zSg?zd%JRkHb8e|cR_0lsR7c8*XRD@N4}|eLJq~+n5=zp! ztgk3FX`Iw1{aDZYBei{#qrX9YT^c#_@IsTF8L;wujvW_#j@;JxI{Xi{+jTg&hlE(_ zJ_T7GCr5>1rc96(z58ww2Pat@xnxk{#@2L0`nJx!p&fmD_3x<1Nj1tcwlcYT{PDot z5~)-e2JHnHu-3?iYPNZB5d8FE4hNYN>W*Q$W^eWtGiY1c&$)>V>bGb)O3&^!hR(N& z1KkMa=+QD5kv#>9)>A)Okl>LvN}ZR+FGPwKVSNtgBeiAD^>@Kn_TAn?b0sQx>l))* zHZ;9%R}fzLCsiRL^A*-H!D^oEammA|??-`w>dP6N_iIv*Y9KKgE^c_F$VtmDJy+$^ z%T1Z`#Z^!XjccgURA)luBYuc6#f{*-S*Ek-qN(J0Rn}n)fwgJy+Vy>8qPt=9Z5MEU zxZVuE`)T0M@b53v4}XAX5*EJ3tCh(Ow-xLP ztujmqKHdJU{99Y=)6MJcGe7yvU&8KWtls!x3)OpmgYZlqB;MC3bTzr=Qb2eIx;}=f z3b!%Q>H2phd;=nw_|}eR5F^Ug(QqAsP^g1V1q$3;Kmh@%RN#Ivwc;HW! z8uA^UuK{lrDEg%Vn?aox8peWRNNk2a`ytG@>f3-Dmx(GBfuoxhzm=Aj>hAr z2OvC3rDm;J2MW)iB3lz!gZ%*vdtY>gm?bnoVguL<(d!z}ZXN+XfQD+!b}gtaY;rrL zPM5O&GdZI71mD9zK)vwF880(r6i5kG?!Mf9SJ=ZrelvXN}}Q)ld<66 z>dC8ZY`rOB75mHUtR5$Kmq}GH)t;r~6oVJ&SX3PQKG-{~sh!eiCsZ&U;x;QP8M5lj zBHpyl?tFF7oAbR*Q0=Qzri|9sJH-ndM&?kE6LA2L6C6+@u|r5wJ5LihE-uou$!O5F z9xH0j2JtD&+co3X7%t;>zA!@gncD=x;(mwHX5EX2*MFVVJ%W*>S`D*UYXmDb(}som zdNFEpt8_O{Vu$a4R#jr0acGnX)M)z0KB|r`EcbQk7@>&f>HVMRslc(3W->1E*hdYhHlFMC) zRk#}-XJZ$Hb5=66HA={L?Md3F22khl&(%ddm83;SAjy;I9{&*4sP#2Fuy|qIy#9!4 z^;A>Rd8LLhIs0T+1Q(4YC^=6Lc|6gorFRI~>-2Az#%Pu1gIuR{@nSyOU?+HPN#=e` z-`hT3f6KTWN@lMD3=UIebcM`9= zqxFt|Pwo_4&0Z7oCLF)teupSVXQ9zmpN0jlFc`GgScl1oU@|=sK7&Bw_-@K{QsVEJ zs*%px$l%R+64&t_pJx{rX;A%iuMaCGDTVG9@Mi>XiQB`RA0@zJ`JI+<)le@8w=Rjv z1oc614(no(Rp_?FLgLgnu=+6!1&;kQM1|P|AJVW4Tt%ArL2-nXjLnleTy%hv;wxxd z^-!Te36EGW3`>CWv00h8z`_xfG6l9<$|7Kc9NXiy(zMq2aSYU}_q(DNGa8SCeM~F@ zGzVgG2qU%@HAw{AFKmxyU1b>^vsNj%vU4Hs66rgHpV8&J^;|VIP#m1JI;^W*f<*mC zoEDkfl<#1WQ}OY5+ACDP2L`Xx1xLX?*MbaVR;g_(Z@ggLxGY6SxYTzAifL9q6WGDL zL&ExVr1u#RqS z%dt9%t+}?NoQrVn2UiBS>Z+^J6PAylc&TmR!d?s_e3(nt_pn1b!J3{Bm?Fey!M7|D zWD(OBN3WIcPuFc&N}{v9HXEt9NdnUft~@HPJWG!W+ptKunAhV)%aT8?Z{9!qx~xM& zxxF?gYNG}MnEJMN1<~B=E?LFTzuB-!MZtLChDeOIs zRCx+SGE?37X5QHjq4m{j6!THNyn`m@@KwwjkI(*inQKv~KMzcdw@qna--p9H?9_T* zCi$ZX|1Y2aXg<&K-k#J;`}zK!#oqPwR8c5@ul_Uf<%Y#xtZ!oUc>P{~HWzksI$xHo z3G&VXLeGD&Sv*<2Or$LW5~?|mJ6JMMOELezEgB&v(E<`w|FPkK6?7=!3n~=5VRJwi zVK5Z_#5e$9j#EMy!+;xMk~k5tnTNSD*^IR+SVJjFpKLNzf%X$2Q}zM^ah5^$05Vye zr~=y!6+l!0sDh_{ykSbXnDr$(;`7woA&{sB*lc2F*5ZIHRBb3Fh|Q;23|&Y%!ec3Y zXEFfCQ>Fwm6u=h4B}^eKe5`f>KKU0dTkD)Nq%R?!)!uY^#yu@l8{X^5#J>H?~uV%1{uAuU!7k%lUVtvnU?kfI+jUuspQ$t2a`g`&}yAB$LYn+ z(1Msk!euIZJ!Lq|pzQJVvprA+wi-Hst&r4D?13<5hJ`3OnxRg&nK}ULA&jTl1z=2t zS7Z368A?Dad6=XUwX<^IIoOWCO)5UbJWe&$V7qy@s}0;I0)Jpxq#N(mH?SUTX7X?* z>^D<`Hmu-|1HE}CtfYN-vYc-!!FKa~RvWku2F|u9vzyt#OIf;{2)fO@;KjggB!xtl$_7y3P@S%YfoV()PA`O8f zDR#pVKo?{%7B}8wDIv@x8k{mMH=3WrTBTfFiuKAjNTL*5b6FYZ+LZ0G2b7OhA360W@eD0%T9zh_8o* zb0ig}@%EI$x|JTtSJDH3EDGo>o|*~#ZOt&Kp+mA1lmK7~2{I=^`9$6s*gASvWTIyS;@(KYDsr9xwXPBC3;Kx)l3BXON!3QVlI1D8e|iL}D(BFnDLv~v zPj$D;T}%05{}iN`dZdr=_-D`i6+TQ!pXZaAmHYBG0pv6Qke)>Vznqj1YxvQkTMA@L z_SVkW2<=8}@ed`PYKd8B2rWBXN=>xqj>D>c@s51zO}&(a0M!<=dyEXWnv5K`nw4)Z zCIuiaYv&)TvgrjOF)b&lcJlU^O!_& z^9^SKEoTyNBI`GEg8`8R!C5tPSxuDiEv(tk1l?xRcxJ+FYi1;?L*^lXpzgKxpzEyS z8XX97HQZ#r*p$1yXaPA+qyT#YpeO<p(wYuiY2Da*UfDXE$a7E@ijk23=F{uK=M0Hip4ts_QOY17q*)1k{b1t)>4qkEJm(iHP&jT3tLT0yWXiZ zCIJ&tU@H@Z7DL-)Qu$ig=3sIn;3A+t70N4{* zvLcPCFwak+1u_%qcJl>18k(Z{R9Q1`J*qAZc1AI}Ln|Mb0DbU=_c04)Om0E7kr00KT+n-hJNemWg9 z5da_n002Z&Z*^{DE-@}JE;BhZHZEuY@R0r`3>gg!%-hXDSHJK-@O=)@9F!)b;1<~< zq6*`VNX3n`8g9Vsv^bi2qgJj47X^}g-4Qh!;N3@3iN@Tb^xN3LYjl&jgq%fhjvYI= zaORVzN8e!?(SRQW-rg6p`@etx@row$C)3WQ!t|Sb+J@dA8h+dP!aBR<9=Dn=&ah+RW&YB$XS*kLE-sZ= ztyT!ke41fsPa-V3##8DaO#0jvy~pO+5rZUYZoL01OU zvr(<3+n$K#yN6CTA|#d)4&+%>=PmR?qISZ63dx{18%mBzOTy(fA4Tg8G8#$6SzxUV zP>$5)zsxDHd@8fc7MS>SJf-eOBUqsf=P<3%tP$0sLA5w1{>3O0e!|$fl)%2;rD0Yc z?8Gd{AT&|M+N#nh3Te_{qpNDbKp0&%@N?e7fL1Qzh1kD-4+bjlvFVVCGJi2*tLH8t zehZ+Pu;+ML6Og%T{hn|UV~*cJ415b)mJaQtQSiNdj0plQg58`w5Kyc)(7cVK#E9kf z8Owf^?^5AOeRvAqQMi&6 zB6C?>u1998vt`wr$YQs5nEAlAN0?>9qq|YyISl_S9%wDFnfjN{Zve0i6)}kgk||=P z9NjSr)v3mwHd`U9!Q8Mab!urTREd4?>?qjULAMj#69;H+dozxd1H?ZC0$5S0VX6TzA zI6?>Iq;LFSSWRbR2&i7Y^FmGYP&3i@2f}1#S6C9rx1e8F+PWin32->CxbxKrnl->XG.1.0.3911.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_1_0_3911_H +#define XG_1_0_3911_H + +#include "OOVPA.h" + +extern OOVPATable XG_1_0_3911[]; +extern uint32 XG_1_0_3911_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.3911.inl b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.3911.inl new file mode 100644 index 000000000..9fbf9885e --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.3911.inl @@ -0,0 +1,239 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.3911.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XGIsSwizzledFormat +// ****************************************************************** +SOOVPA<7> XGIsSwizzledFormat_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x7F }, + { 0x10, 0x7C }, + { 0x19, 0x0B }, + { 0x22, 0xF8 }, + { 0x2B, 0x83 }, + { 0x34, 0x0A }, + { 0x3D, 0x7F }, + } +}; + +// ****************************************************************** +// * XGSwizzleRect +// ****************************************************************** +SOOVPA<8> XGSwizzleRect_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x03 }, + { 0x3E, 0x89 }, + { 0x5E, 0x83 }, + { 0x7E, 0x6C }, + { 0x9E, 0xFF }, + { 0xBE, 0xFF }, + { 0xDE, 0x89 }, + { 0xFE, 0x89 }, + } +}; + +// ****************************************************************** +// * XGSwizzleBox +// ****************************************************************** +SOOVPA<8> XGSwizzleBox_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x75 }, + { 0x3E, 0x4D }, + { 0x5E, 0x48 }, + { 0x7E, 0x04 }, + { 0x9E, 0xD8 }, + { 0xC0, 0x83 }, + { 0xDE, 0xAF }, + { 0xFE, 0x45 }, + } +}; + +// ****************************************************************** +// * XGUnswizzleRect +// ****************************************************************** +SOOVPA<8> XGUnswizzleRect_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x03 }, + { 0x3E, 0x00 }, + { 0x5E, 0xD2 }, + { 0x7E, 0x75 }, + { 0x9E, 0x70 }, + { 0xC1, 0xE9 }, + { 0xDE, 0x89 }, + { 0xFE, 0x60 }, + } +}; + +// ****************************************************************** +// * XGWriteSurfaceOrTextureToXPR +// ****************************************************************** +SOOVPA<7> XGWriteSurfaceOrTextureToXPR_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x3D }, + { 0x3E, 0xE0 }, + { 0x5E, 0x75 }, + { 0x7E, 0x33 }, + { 0x9E, 0xC2 }, + { 0xBE, 0xF0 }, + { 0xDE, 0xFC }, + } +}; + +// ****************************************************************** +// * XGSetTextureHeader +// ****************************************************************** +SOOVPA<7> XGSetTextureHeader_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x75 }, + { 0x0A, 0x00 }, + { 0x10, 0xFF }, + { 0x16, 0xFF }, + { 0x1C, 0x75 }, + { 0x26, 0x5D }, + { 0x28, 0x24 }, + } +}; + +// ****************************************************************** +// * XG_1_0_3911 +// ****************************************************************** +OOVPATable XG_1_0_3911[] = +{ + // XGIsSwizzledFormat + { + (OOVPA*)&XGIsSwizzledFormat_1_0_3911, + + XTL::EmuXGIsSwizzledFormat, + + #ifdef _DEBUG_TRACE + "XGIsSwizzledFormat" + #endif + }, + // XGSwizzleRect + { + (OOVPA*)&XGSwizzleRect_1_0_3911, + + XTL::EmuXGSwizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleRect" + #endif + }, + // XGUnswizzleRect + { + (OOVPA*)&XGUnswizzleRect_1_0_3911, + + XTL::EmuXGUnswizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGUnswizzleRect" + #endif + }, + // XGSwizzleBox + { + (OOVPA*)&XGSwizzleBox_1_0_3911, + + XTL::EmuXGSwizzleBox, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleBox" + #endif + }, + // XGWriteSurfaceOrTextureToXPR + { + (OOVPA*)&XGWriteSurfaceOrTextureToXPR_1_0_3911, + + XTL::EmuXGWriteSurfaceOrTextureToXPR, + + #ifdef _DEBUG_TRACE + "EmuXGWriteSurfaceOrTextureToXPR" + #endif + }, + // XGSetTextureHeader + { + (OOVPA*)&XGSetTextureHeader_1_0_3911, + XTL::EmuXGSetTextureHeader, + + #ifdef _DEBUG_TRACE + "XGSetTextureHeader" + #endif + }, +}; + +// ****************************************************************** +// * XG_1_0_3911_SIZE +// ****************************************************************** +uint32 XG_1_0_3911_SIZE = sizeof(XG_1_0_3911); \ No newline at end of file diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4034.h b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4034.h new file mode 100644 index 000000000..ccb103244 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4034.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.4034.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_1_0_4034_H +#define XG_1_0_4034_H + +#include "OOVPA.h" + +extern OOVPATable XG_1_0_4034[]; +extern uint32 XG_1_0_4034_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4034.inl b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4034.inl new file mode 100644 index 000000000..f8c8f13c5 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4034.inl @@ -0,0 +1,210 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4034.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 +// * +// ****************************************************************** + +#if 0 +// ****************************************************************** +// * XGIsSwizzledFormat +// ****************************************************************** +SOOVPA<7> XGIsSwizzledFormat_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x7F }, + { 0x10, 0x7C }, + { 0x19, 0x0B }, + { 0x22, 0xF8 }, + { 0x2B, 0x83 }, + { 0x34, 0x0A }, + { 0x3D, 0x7F }, + } +}; + +// ****************************************************************** +// * XGSwizzleRect +// ****************************************************************** +SOOVPA<8> XGSwizzleRect_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x03 }, + { 0x3E, 0x89 }, + { 0x5E, 0x83 }, + { 0x7E, 0x6C }, + { 0x9E, 0xFF }, + { 0xBE, 0xFF }, + { 0xDE, 0x89 }, + { 0xFE, 0x89 }, + } +}; + +// ****************************************************************** +// * XGSwizzleBox +// ****************************************************************** +SOOVPA<8> XGSwizzleBox_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x75 }, + { 0x3E, 0x4D }, + { 0x5E, 0x48 }, + { 0x7E, 0x04 }, + { 0x9E, 0xD8 }, + { 0xC0, 0x83 }, + { 0xDE, 0xAF }, + { 0xFE, 0x45 }, + } +}; + +// ****************************************************************** +// * XGUnswizzleRect +// ****************************************************************** +SOOVPA<8> XGUnswizzleRect_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x03 }, + { 0x3E, 0x00 }, + { 0x5E, 0xD2 }, + { 0x7E, 0x75 }, + { 0x9E, 0x70 }, + { 0xC1, 0xE9 }, + { 0xDE, 0x89 }, + { 0xFE, 0x60 }, + } +}; + +// ****************************************************************** +// * XGWriteSurfaceOrTextureToXPR +// ****************************************************************** +SOOVPA<7> XGWriteSurfaceOrTextureToXPR_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x3D }, + { 0x3E, 0xE0 }, + { 0x5E, 0x75 }, + { 0x7E, 0x33 }, + { 0x9E, 0xC2 }, + { 0xBE, 0xF0 }, + { 0xDE, 0xFC }, + } +}; +#endif + +// ****************************************************************** +// * XG_1_0_4034 +// ****************************************************************** +OOVPATable XG_1_0_4034[] = +{ + // XGIsSwizzledFormat + /*{ + (OOVPA*)&XGIsSwizzledFormat_1_0_3911, + + XTL::EmuXGIsSwizzledFormat, + + #ifdef _DEBUG_TRACE + "XGIsSwizzledFormat" + #endif + },*/ + // XGSwizzleRect (* unchanged since 3911 *) + { + (OOVPA*)&XGSwizzleRect_1_0_3911, + + XTL::EmuXGSwizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleRect" + #endif + }, + // XGUnswizzleRect + /*{ + (OOVPA*)&XGUnswizzleRect_1_0_3911, + + XTL::EmuXGUnswizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGUnswizzleRect" + #endif + },*/ + // XGSwizzleBox (* unchanged since 3911 *) + { + (OOVPA*)&XGSwizzleBox_1_0_3911, + + XTL::EmuXGSwizzleBox, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleBox" + #endif + }, + // XGWriteSurfaceOrTextureToXPR + /*{ + (OOVPA*)&XGWriteSurfaceOrTextureToXPR_1_0_3911, + + XTL::EmuXGWriteSurfaceOrTextureToXPR, + + #ifdef _DEBUG_TRACE + "EmuXGWriteSurfaceOrTextureToXPR" + #endif + },*/ +}; + +// ****************************************************************** +// * XG_1_0_3911_SIZE +// ****************************************************************** +uint32 XG_1_0_4034_SIZE = sizeof(XG_1_0_4034); \ No newline at end of file diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4361.h b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4361.h new file mode 100644 index 000000000..0dc740eea --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4361.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.4361.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_1_0_4361_H +#define XG_1_0_4361_H + +#include "OOVPA.h" + +extern OOVPATable XG_1_0_4361[]; +extern uint32 XG_1_0_4361_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4361.inl b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4361.inl new file mode 100644 index 000000000..93784f174 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4361.inl @@ -0,0 +1,274 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4361.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XGIsSwizzledFormat +// ****************************************************************** +SOOVPA<12> XGIsSwizzledFormat_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // XGIsSwizzledFormat+0x04 : cmp eax, 0x2D + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0xF8 }, // (Offset,Value)-Pair #2 + { 0x06, 0x2D }, // (Offset,Value)-Pair #3 + + // XGIsSwizzledFormat+0x0C : jge +0x31 + { 0x0C, 0x7D }, // (Offset,Value)-Pair #4 + { 0x0D, 0x31 }, // (Offset,Value)-Pair #5 + + // XGIsSwizzledFormat+0x17 : cmp eax, 0x0B + { 0x17, 0x83 }, // (Offset,Value)-Pair #6 + { 0x18, 0xF8 }, // (Offset,Value)-Pair #7 + { 0x19, 0x0B }, // (Offset,Value)-Pair #8 + + // XGIsSwizzledFormat+0x1A : jz +0x23 + { 0x1A, 0x74 }, // (Offset,Value)-Pair #9 + { 0x1B, 0x23 }, // (Offset,Value)-Pair #10 + + // XGIsSwizzledFormat+0x42 : jmp +0xE4 + { 0x42, 0xEB }, // (Offset,Value)-Pair #11 + { 0x43, 0xE4 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XGSwizzleRect +// ****************************************************************** +SOOVPA<10> XGSwizzleRect_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // XGSwizzleRect+0x2E : pop eax + { 0x2E, 0x58 }, // (Offset,Value)-Pair #1 + + // XGSwizzleRect+0x4A : cmp dword ptr [ebp+0x74], 1 + { 0x4A, 0x83 }, // (Offset,Value)-Pair #2 + { 0x4B, 0x7D }, // (Offset,Value)-Pair #3 + { 0x4C, 0x74 }, // (Offset,Value)-Pair #4 + { 0x4D, 0x01 }, // (Offset,Value)-Pair #5 + + // XGSwizzleRect+0xD8 : mov edx, [ebp+0x74] + { 0xD8, 0x8B }, // (Offset,Value)-Pair #6 + { 0xD9, 0x55 }, // (Offset,Value)-Pair #7 + { 0xDA, 0x74 }, // (Offset,Value)-Pair #8 + + // XGSwizzleRect+0xEC : jmp +0x0B + { 0xEC, 0xEB }, // (Offset,Value)-Pair #9 + { 0xED, 0x0B }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XGUnswizzleRect +// ****************************************************************** +SOOVPA<8> XGUnswizzleRect_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x03 }, + { 0x3E, 0x00 }, + { 0x5E, 0xD2 }, + { 0x7E, 0x75 }, + { 0x9E, 0x70 }, + { 0xC1, 0xE9 }, + { 0xDE, 0x89 }, + { 0xFE, 0x60 }, + } +}; + +// ****************************************************************** +// * XGSetVertexBufferHeader +// ****************************************************************** +SOOVPA<8> XGSetVertexBufferHeader_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x07, 0x18 }, + { 0x0A, 0x08 }, + { 0x0D, 0x00 }, + { 0x10, 0x00 }, + { 0x13, 0x48 }, + { 0x16, 0x18 }, + } +}; + +// ****************************************************************** +// * XGCompressRect +// ****************************************************************** +SOOVPA<8> XGCompressRect_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x00 }, + { 0x3E, 0xA8 }, + { 0x5E, 0x85 }, + { 0x80, 0x85 }, + { 0x9E, 0x07 }, + { 0xBE, 0x80 }, + { 0xDE, 0x74 }, + { 0xFE, 0x8B }, + } +}; + +// ****************************************************************** +// * XGSetIndexBufferHeader +// ****************************************************************** +SOOVPA<8> XGSetIndexBufferHeader_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0x8B }, + { 0x07, 0x18 }, + { 0x0A, 0x08 }, + { 0x0D, 0x00 }, + { 0x10, 0x01 }, + { 0x13, 0x48 }, + { 0x16, 0x18 }, + } +}; + +// ****************************************************************** +// * XG_1_0_4361 +// ****************************************************************** +OOVPATable XG_1_0_4361[] = +{ + // XGIsSwizzledFormat + { + (OOVPA*)&XGIsSwizzledFormat_1_0_4361, + + XTL::EmuXGIsSwizzledFormat, + + #ifdef _DEBUG_TRACE + "EmuXGIsSwizzledFormat" + #endif + }, + // XGSwizzleRect + { + (OOVPA*)&XGSwizzleRect_1_0_4361, + + XTL::EmuXGSwizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleRect" + #endif + }, + // XGUnswizzleRect + { + (OOVPA*)&XGUnswizzleRect_1_0_4361, + + XTL::EmuXGUnswizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGUnswizzleRect" + #endif + }, + // XGSetTextureHeader (* Unchanged since 3911 *) + { + (OOVPA*)&XGSetTextureHeader_1_0_3911, + XTL::EmuXGSetTextureHeader, + + #ifdef _DEBUG_TRACE + "XGSetTextureHeader" + #endif + }, + // XGSetVertexBufferHeader + { + (OOVPA*)&XGSetVertexBufferHeader_1_0_4361, + + 0, + + #ifdef _DEBUG_TRACE + "EmuXGSetVertexBufferHeader" + #endif + }, + // XGSetIndexBufferHeader + { + (OOVPA*)&XGSetIndexBufferHeader_1_0_4361, + + 0, + + #ifdef _DEBUG_TRACE + "EmuXGSetIndexBufferHeader" + #endif + }, + // XGCompressRect + { + (OOVPA*)&XGCompressRect_1_0_4361, + + 0, + + #ifdef _DEBUG_TRACE + "EmuXGCompressRect" + #endif + }, +}; + +// ****************************************************************** +// * XG_1_0_4361_SIZE +// ****************************************************************** +uint32 XG_1_0_4361_SIZE = sizeof(XG_1_0_4361); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4432.h b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4432.h new file mode 100644 index 000000000..0514da54a --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4432.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.4432.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_1_0_4432_H +#define XG_1_0_4432_H + +#include "OOVPA.h" + +extern OOVPATable XG_1_0_4432[]; +extern uint32 XG_1_0_4432_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4432.inl b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4432.inl new file mode 100644 index 000000000..698a3f6f0 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4432.inl @@ -0,0 +1,67 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4432.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_1_0_4432 +// ****************************************************************** +OOVPATable XG_1_0_4432[] = +{ + // XGIsSwizzledFormat (* unchanged since 4361 *) + { + (OOVPA*)&XGIsSwizzledFormat_1_0_4361, + + XTL::EmuXGIsSwizzledFormat, + + #ifdef _DEBUG_TRACE + "XGIsSwizzledFormat" + #endif + }, + // XGSwizzleRect (* unchanged since 4361 *) + { + (OOVPA*)&XGSwizzleRect_1_0_4361, + + XTL::EmuXGSwizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleRect" + #endif + }, +}; + +// ****************************************************************** +// * XG_1_0_4432_SIZE +// ****************************************************************** +uint32 XG_1_0_4432_SIZE = sizeof(XG_1_0_4432); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4627.h b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4627.h new file mode 100644 index 000000000..a86b742f3 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4627.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.4627.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_1_0_4627_H +#define XG_1_0_4627_H + +#include "OOVPA.h" + +extern OOVPATable XG_1_0_4627[]; +extern uint32 XG_1_0_4627_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4627.inl new file mode 100644 index 000000000..2c1965940 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.4627.inl @@ -0,0 +1,172 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4627.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XGSwizzleBox +// ****************************************************************** +SOOVPA<10> XGSwizzleBox_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // XGSwizzleBox+0x60 : sub ecx, [eax] + { 0x60, 0x2B }, // (Offset,Value)-Pair #1 + { 0x61, 0x08 }, // (Offset,Value)-Pair #2 + + // XGSwizzleBox+0x8E : lea ecx, [ebp+0xD8] + { 0x8E, 0x8D }, // (Offset,Value)-Pair #3 + { 0x8F, 0x4D }, // (Offset,Value)-Pair #4 + { 0x90, 0xD8 }, // (Offset,Value)-Pair #5 + + // XGSwizzleBox+0xD5 : shl eax, 2 + { 0xD5, 0xC1 }, // (Offset,Value)-Pair #6 + { 0xD6, 0xE0 }, // (Offset,Value)-Pair #7 + { 0xD7, 0x02 }, // (Offset,Value)-Pair #8 + + // XGSwizzleBox+0xE2 : test ebx, ebx + { 0xE2, 0x85 }, // (Offset,Value)-Pair #9 + { 0xE3, 0xDB }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XGWriteSurfaceOrTextureToXPR +// ****************************************************************** +SOOVPA<7> XGWriteSurfaceOrTextureToXPR_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x3D }, + { 0x3E, 0xE0 }, + { 0x5E, 0x75 }, + { 0x7E, 0x33 }, + { 0x9E, 0xC2 }, + { 0xBE, 0xF0 }, + { 0xE2, 0x8B }, + } +}; + +// ****************************************************************** +// * XGUnswizzleRect +// ****************************************************************** +SOOVPA<8> XGUnswizzleRect_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x03 }, + { 0x3E, 0x00 }, + { 0x5E, 0xD2 }, + { 0x7E, 0x75 }, + { 0x9E, 0x70 }, + { 0xC1, 0xE9 }, + { 0xDE, 0x89 }, + { 0xFE, 0x60 }, + } +}; + +// ****************************************************************** +// * XG_1_0_4627 +// ****************************************************************** +OOVPATable XG_1_0_4627[] = +{ + // XGIsSwizzledFormat (* unchanged since 4361 *) + { + (OOVPA*)&XGIsSwizzledFormat_1_0_4361, + + XTL::EmuXGIsSwizzledFormat, + + #ifdef _DEBUG_TRACE + "XGIsSwizzledFormat" + #endif + }, + // XGSwizzleRect (* unchanged since 4361 *) + { + (OOVPA*)&XGSwizzleRect_1_0_4361, + + XTL::EmuXGSwizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleRect" + #endif + }, + // XGUnswizzleRect + { + (OOVPA*)&XGUnswizzleRect_1_0_4627, + + XTL::EmuXGUnswizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGUnswizzleRect" + #endif + }, + // XGSwizzleBox + { + (OOVPA*)&XGSwizzleBox_1_0_4627, + + XTL::EmuXGSwizzleBox, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleBox" + #endif + }, + // XGWriteSurfaceOrTextureToXPR + { + (OOVPA*)&XGWriteSurfaceOrTextureToXPR_1_0_4627, + + XTL::EmuXGWriteSurfaceOrTextureToXPR, + + #ifdef _DEBUG_TRACE + "EmuXGWriteSurfaceOrTextureToXPR" + #endif + }, +}; + +// ****************************************************************** +// * XG_1_0_4627_SIZE +// ****************************************************************** +uint32 XG_1_0_4627_SIZE = sizeof(XG_1_0_4627); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5233.h b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5233.h new file mode 100644 index 000000000..d180f8cf9 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5233.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.5233.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_1_0_5233_H +#define XG_1_0_5233_H + +#include "OOVPA.h" + +extern OOVPATable XG_1_0_5233[]; +extern uint32 XG_1_0_5233_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5233.inl new file mode 100644 index 000000000..8e4192ac9 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5233.inl @@ -0,0 +1,65 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5233.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_1_0_5233 +// ****************************************************************** +OOVPATable XG_1_0_5233[] = +{ + // XGIsSwizzledFormat (* unchanged since 4361 *) + { + (OOVPA*)&XGIsSwizzledFormat_1_0_4361, + + XTL::EmuXGIsSwizzledFormat, + + #ifdef _DEBUG_TRACE + "XGIsSwizzledFormat" + #endif + }, + // XGSwizzleRect (* unchanged since 4361 *) + { + (OOVPA*)&XGSwizzleRect_1_0_4361, + + XTL::EmuXGSwizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleRect" + #endif + }, +}; + +// ****************************************************************** +// * XG_1_0_5233_SIZE +// ****************************************************************** +uint32 XG_1_0_5233_SIZE = sizeof(XG_1_0_5233); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5558.h b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5558.h new file mode 100644 index 000000000..ba7eb13e9 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5558.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.5558.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_1_0_5558_H +#define XG_1_0_5558_H + +#include "OOVPA.h" + +extern OOVPATable XG_1_0_5558[]; +extern uint32 XG_1_0_5558_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5558.inl new file mode 100644 index 000000000..fa1f99483 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5558.inl @@ -0,0 +1,219 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5558.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XGSwizzleBox +// ****************************************************************** +SOOVPA<10> XGSwizzleBox_1_0_5558 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // XGSwizzleBox+0x60 : sub ecx, [eax] + { 0x60, 0x2B }, // (Offset,Value)-Pair #1 + { 0x61, 0x08 }, // (Offset,Value)-Pair #2 + + // XGSwizzleBox+0x8E : lea ecx, [ebp+0xD8] + { 0x8E, 0x8D }, // (Offset,Value)-Pair #3 + { 0x8F, 0x4D }, // (Offset,Value)-Pair #4 + { 0x90, 0xD8 }, // (Offset,Value)-Pair #5 + + // XGSwizzleBox+0xD5 : shl eax, 2 + { 0xD5, 0xC1 }, // (Offset,Value)-Pair #6 + { 0xD6, 0xE0 }, // (Offset,Value)-Pair #7 + { 0xD7, 0x02 }, // (Offset,Value)-Pair #8 + + // XGSwizzleBox+0xE2 : test ebx, ebx + { 0xE2, 0x85 }, // (Offset,Value)-Pair #9 + { 0xE3, 0xDB }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XGSwizzleRect +// ****************************************************************** +SOOVPA<8> XGSwizzleRect_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x03 }, + { 0x3E, 0x89 }, + { 0x5E, 0x83 }, + { 0x7E, 0x6C }, + { 0x9E, 0xFF }, + { 0xBE, 0xFF }, + { 0xDE, 0x89 }, + { 0xFE, 0x89 }, + } +}; + +// ****************************************************************** +// * XGUnswizzleRect +// ****************************************************************** +SOOVPA<8> XGUnswizzleRect_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x03 }, + { 0x3E, 0x00 }, + { 0x5E, 0xD2 }, + { 0x7E, 0x75 }, + { 0x9E, 0x70 }, + { 0xC1, 0xE9 }, + { 0xDE, 0x89 }, + { 0xFE, 0x60 }, + } +}; + +// ****************************************************************** +// * XGSwizzleBox +// ****************************************************************** +//SOOVPA<8> XGSwizzleBox_1_0_5558 = +//{ +// 0, // Large == 0 +// 8, // Count == 8 +// +// XRefNotSaved, +// XRefNotUsed, +// +// { +// { 0x1E, 0x75 }, +// { 0x3E, 0x4D }, +// { 0x5E, 0x48 }, +// { 0x7E, 0x04 }, +// { 0x9E, 0xD8 }, +// { 0xC0, 0x83 }, +// { 0xDE, 0xAF }, +// { 0xFE, 0x45 }, +// } +//}; + +// ****************************************************************** +// * XGUnswizzleBox +// ****************************************************************** +SOOVPA<8> XGUnswizzleBox_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x26 }, + { 0x3E, 0x55 }, + { 0x5E, 0x58 }, + { 0x7E, 0x89 }, + { 0xA0, 0xFF }, + { 0xBE, 0x2C }, + { 0xDE, 0x24 }, + { 0xFE, 0x20 }, + } +}; + +// ****************************************************************** +// * XG_1_0_5558 +// ****************************************************************** +OOVPATable XG_1_0_5558[] = +{ + // XGIsSwizzledFormat (* unchanged since 4361 *) + { + (OOVPA*)&XGIsSwizzledFormat_1_0_4361, + + XTL::EmuXGIsSwizzledFormat, + + #ifdef _DEBUG_TRACE + "XGIsSwizzledFormat" + #endif + }, + // XGSwizzleRect + { + (OOVPA*)&XGSwizzleRect_1_0_5558, + + XTL::EmuXGSwizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleRect" + #endif + }, + // XGSwizzleBox (* UNTESTED *) + { + (OOVPA*)&XGSwizzleBox_1_0_5558, + + XTL::EmuXGSwizzleBox, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleBox" + #endif + }, + // XGUnswizzleRect + { + (OOVPA*)&XGUnswizzleRect_1_0_5558, + + XTL::EmuXGUnswizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleRect" + #endif + }, + // XGUnswizzleBox (* UNTESTED *) + /*{ + (OOVPA*)&XGUnswizzleBox_1_0_5558, + + XTL::EmuXGUnswizzleBox, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleBox" + #endif + },*/ +}; + +// ****************************************************************** +// * XG_1_0_5558_SIZE +// ****************************************************************** +uint32 XG_1_0_5558_SIZE = sizeof(XG_1_0_5558); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5849.h b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5849.h new file mode 100644 index 000000000..a27d2b493 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5849.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.5849.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_1_0_5849_H +#define XG_1_0_5849_H + +#include "OOVPA.h" + +extern OOVPATable XG_1_0_5849[]; +extern uint32 XG_1_0_5849_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5849.inl b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5849.inl new file mode 100644 index 000000000..1ee0804a9 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XG.1.0.5849.inl @@ -0,0 +1,140 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5849.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XGSwizzleBox +// ****************************************************************** +SOOVPA<10> XGSwizzleBox_1_0_5849 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // XGSwizzleBox+0x60 : sub ecx, [eax] + { 0x60, 0x2B }, // (Offset,Value)-Pair #1 + { 0x61, 0x08 }, // (Offset,Value)-Pair #2 + + // XGSwizzleBox+0x8E : lea ecx, [ebp+0xD8] + { 0x8E, 0x8D }, // (Offset,Value)-Pair #3 + { 0x8F, 0x4D }, // (Offset,Value)-Pair #4 + { 0x90, 0xD8 }, // (Offset,Value)-Pair #5 + + // XGSwizzleBox+0xD5 : shl eax, 2 + { 0xD5, 0xC1 }, // (Offset,Value)-Pair #6 + { 0xD6, 0xE0 }, // (Offset,Value)-Pair #7 + { 0xD7, 0x02 }, // (Offset,Value)-Pair #8 + + // XGSwizzleBox+0xE2 : test ebx, ebx + { 0xE2, 0x85 }, // (Offset,Value)-Pair #9 + { 0xE3, 0xDB }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XFONT_OpenBitmapFontFromMemory +// ****************************************************************** +SOOVPA<8> XFONT_OpenBitmapFontFromMemory_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x75 }, + { 0x1A, 0x8B }, + { 0x28, 0x8B }, + { 0x32, 0x08 }, + { 0x3F, 0x8B }, + { 0x4C, 0x8B }, + { 0x59, 0x45 }, + { 0x66, 0x0C }, + } +}; + +// ****************************************************************** +// * XG_1_0_5849 +// ****************************************************************** +OOVPATable XG_1_0_5849[] = +{ + // XGIsSwizzledFormat (* unchanged since 4361 *) + { + (OOVPA*)&XGIsSwizzledFormat_1_0_4361, + + XTL::EmuXGIsSwizzledFormat, + + #ifdef _DEBUG_TRACE + "XGIsSwizzledFormat" + #endif + }, + // XGSwizzleRect (* unchanged since 5558 *) + { + (OOVPA*)&XGSwizzleRect_1_0_5558, + + XTL::EmuXGSwizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGSwizzleRect" + #endif + }, + // XGUnswizzleRect (* unchanged since 5558 *) + { + (OOVPA*)&XGUnswizzleRect_1_0_5558, + + XTL::EmuXGUnswizzleRect, + + #ifdef _DEBUG_TRACE + "EmuXGUnswizzleRect" + #endif + }, + // XFONT_OpenBitmapFontFromMemory + /*{ + (OOVPA*)&XFONT_OpenBitmapFontFromMemory_1_0_5849, + + XTL::EmuXFONT_OpenBitmapFontFromMemory, + + #ifdef _DEBUG_TRACE + "EmuXFONT_OpenBitmapFontFromMemory" + #endif + },*/ +}; + +// ****************************************************************** +// * XG_1_0_5849_SIZE +// ****************************************************************** +uint32 XG_1_0_5849_SIZE = sizeof(XG_1_0_5849); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XNet.1.0.3911.h b/src/CxbxKrnl/HLEDataBase - Copy/XNet.1.0.3911.h new file mode 100644 index 000000000..f76dec59d --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XNet.1.0.3911.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->XNet.1.0.3911.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 XNET_1_0_4627_H +#define XNET_1_0_4627_H + +#include "OOVPA.h" + +extern OOVPATable XNet_1_0_3911[]; +extern uint32 XNet_1_0_3911_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XNet.1.0.3911.inl b/src/CxbxKrnl/HLEDataBase - Copy/XNet.1.0.3911.inl new file mode 100644 index 000000000..a9f6f0be2 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XNet.1.0.3911.inl @@ -0,0 +1,206 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->XNet.1.0.3911.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XNetStartup +// ****************************************************************** +SOOVPA<9> XNetStartup_1_0_3911 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // XNetStartup+0x07 : call [XnInit] + { 0x07, XREF_XNINIT }, // (Offset,Value)-Pair #1 + + // XNetStartup+0x00 : push 0 + { 0x00, 0x6A }, // (Offset,Value)-Pair #2 + { 0x01, 0x00 }, // (Offset,Value)-Pair #3 + + // XNetStartup+0x02 : push [esp+0x08] + { 0x02, 0xFF }, // (Offset,Value)-Pair #4 + { 0x03, 0x74 }, // (Offset,Value)-Pair #5 + { 0x04, 0x24 }, // (Offset,Value)-Pair #6 + { 0x05, 0x08 }, // (Offset,Value)-Pair #7 + + // XNetStartup+0x0B : retn 0x04 + { 0x0B, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x0C, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * WSAStartup +// ****************************************************************** +SOOVPA<11> WSAStartup_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + 1, // XRef Is Used + + { + // WSAStartup+0x07 : call [XnInit] + { 0x07, XREF_XNINIT }, // (Offset,Value)-Pair #1 + + // WSAStartup+0x01 : push 1; xor ebx, ebx + { 0x01, 0x6A }, // (Offset,Value)-Pair #2 + { 0x02, 0x01 }, // (Offset,Value)-Pair #3 + { 0x03, 0x33 }, // (Offset,Value)-Pair #4 + { 0x04, 0xDB }, // (Offset,Value)-Pair #5 + + // WSAStartup+0x1B : mov word ptr [ecx+2], 0x0202 + { 0x1B, 0x66 }, // (Offset,Value)-Pair #6 + { 0x1C, 0xC7 }, // (Offset,Value)-Pair #7 + { 0x1D, 0x41 }, // (Offset,Value)-Pair #8 + { 0x1E, 0x02 }, // (Offset,Value)-Pair #9 + { 0x1F, 0x02 }, // (Offset,Value)-Pair #10 + { 0x20, 0x02 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * XnInit +// ****************************************************************** +SOOVPA<11> XnInit_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_XNINIT, // XRef Is Saved + 0, // XRef Not Used + + { + // XnInit+0x31 : push 0x3554454E + { 0x31, 0x68 }, // (Offset,Value)-Pair #1 + { 0x32, 0x4E }, // (Offset,Value)-Pair #2 + { 0x33, 0x45 }, // (Offset,Value)-Pair #3 + { 0x34, 0x54 }, // (Offset,Value)-Pair #4 + { 0x35, 0x35 }, // (Offset,Value)-Pair #5 + + // XnInit+0xA4 : inc dword ptr [eax+0x2B4] + { 0xA4, 0xFF }, // (Offset,Value)-Pair #6 + { 0xA5, 0x80 }, // (Offset,Value)-Pair #7 + { 0xA6, 0xB4 }, // (Offset,Value)-Pair #8 + { 0xA7, 0x02 }, // (Offset,Value)-Pair #9 + + // XnInit+0xBD : retn 0x08 + { 0xBD, 0xC2 }, // (Offset,Value)-Pair #10 + { 0xBE, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * XNetGetEthernetLinkStatus +// ****************************************************************** +SOOVPA<8> XNetGetEthernetLinkStatus_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // XNetGetEthernetLinkStatus+0x12 : cmpxchg [ecx], edx + { 0x12, 0x0F }, // (Offset,Value)-Pair #1 + { 0x13, 0xB1 }, // (Offset,Value)-Pair #2 + { 0x14, 0x11 }, // (Offset,Value)-Pair #3 + + // XNetStartup+0x17 : jz +0x08 + { 0x17, 0x74 }, // (Offset,Value)-Pair #4 + { 0x18, 0x08 }, // (Offset,Value)-Pair #5 + + // XNetStartup+0x1F : jmp +0xE2 + { 0x1F, 0xEB }, // (Offset,Value)-Pair #6 + { 0x20, 0xE2 }, // (Offset,Value)-Pair #7 + + // XNetStartup+0x3F : retn + { 0x3F, 0xC3 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * XNet_1_0_3911 +// ****************************************************************** +OOVPATable XNet_1_0_3911[] = +{ + // XNetStartup + { + (OOVPA*)&XNetStartup_1_0_3911, + + XTL::EmuXNetStartup, + + #ifdef _DEBUG_TRACE + "EmuXNetStartup" + #endif + }, + // WSAStartup + { + (OOVPA*)&WSAStartup_1_0_3911, + + XTL::EmuWSAStartup, + + #ifdef _DEBUG_TRACE + "EmuWSAStartup" + #endif + }, + // XnInit (XREF) + { + (OOVPA*)&XnInit_1_0_3911, 0, + + #ifdef _DEBUG_TRACE + "XnInit (XRef)" + #endif + }, + // XNetGetEthernetLinkStatus + { + (OOVPA*)&XNetGetEthernetLinkStatus_1_0_3911, + + XTL::EmuXNetGetEthernetLinkStatus, + + #ifdef _DEBUG_TRACE + "EmuXNetGetEthernetLinkStatus" + #endif + }, +}; + +// ****************************************************************** +// * XNet_1_0_3911_SIZE +// ****************************************************************** +uint32 XNet_1_0_3911_SIZE = sizeof(XNet_1_0_3911); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4361.h b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4361.h new file mode 100644 index 000000000..bfb5d9059 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4361.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.4361.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_1_0_4361_H +#define XONLINE_1_0_4361_H + +#include "OOVPA.h" + +extern OOVPATable XOnline_1_0_4361[]; +extern uint32 XOnline_1_0_4361_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4361.inl b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4361.inl new file mode 100644 index 000000000..1eee0c2ca --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4361.inl @@ -0,0 +1,330 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4361.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XNetStartup +// ****************************************************************** +SOOVPA<8> XNetStartup_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + // XNetStartup+0x0F : call [XnInit] + { 0x10, XREF_XNINIT }, // (Offset,Value)-Pair #1 + + // XNetStartup+0x00 : xor eax, eax + { 0x00, 0x33 }, // (Offset,Value)-Pair #2 + { 0x01, 0xC0 }, // (Offset,Value)-Pair #3 + + // XNetStartup+0x02 : push eax + { 0x02, 0x50 }, // (Offset,Value)-Pair #4 + + // XNetStartup+0x03 : push eax + { 0x03, 0x50 }, // (Offset,Value)-Pair #5 + + // XNetStartup+0x04 : push eax + { 0x04, 0x50 }, // (Offset,Value)-Pair #6 + + // XNetStartup+0x14 : retn 0x04 + { 0x14, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x15, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * WSAStartup +// ****************************************************************** +SOOVPA<9> WSAStartup_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // XRef Is Used + + { + // WSAStartup+0x0F : call [XnInit] + { 0x14, XREF_XNINIT }, // (Offset,Value)-Pair #1 + + // WSAStartup+0x00 : push [esp+0x08] + { 0x00, 0xFF }, // (Offset,Value)-Pair #2 + { 0x01, 0x74 }, // (Offset,Value)-Pair #3 + { 0x02, 0x24 }, // (Offset,Value)-Pair #4 + { 0x03, 0x08 }, // (Offset,Value)-Pair #5 + + // WSAStartup+0x04 : push [esp+0x08] + { 0x04, 0xFF }, // (Offset,Value)-Pair #6 + { 0x05, 0x74 }, // (Offset,Value)-Pair #7 + { 0x06, 0x24 }, // (Offset,Value)-Pair #8 + { 0x07, 0x08 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * XnInit +// ****************************************************************** +SOOVPA<10> XnInit_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_XNINIT, // XRef Is Saved + 0, // XRef Not Used + + { + // XnInit+0x03 : sub esp, 0x0214 + { 0x03, 0x81 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x14 }, // (Offset,Value)-Pair #3 + { 0x06, 0x02 }, // (Offset,Value)-Pair #4 + + // XnInit+0x19 : cmpxchg [ecx], edx + { 0x19, 0x0F }, // (Offset,Value)-Pair #5 + { 0x1A, 0xB1 }, // (Offset,Value)-Pair #6 + { 0x1B, 0x11 }, // (Offset,Value)-Pair #7 + + // XnInit+0xBC : push 0x01EC + { 0xBC, 0x68 }, // (Offset,Value)-Pair #8 + { 0xBD, 0xEC }, // (Offset,Value)-Pair #9 + { 0xBE, 0x01 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * socket +// ****************************************************************** +SOOVPA<9> socket_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // socket+0x10 : push 0x276D + { 0x10, 0x68 }, // (Offset,Value)-Pair #1 + { 0x11, 0x6D }, // (Offset,Value)-Pair #2 + { 0x12, 0x27 }, // (Offset,Value)-Pair #3 + + // socket+0x52 : cmp eax, 0x11 + { 0x52, 0x83 }, // (Offset,Value)-Pair #4 + { 0x53, 0xF8 }, // (Offset,Value)-Pair #5 + { 0x54, 0x11 }, // (Offset,Value)-Pair #6 + + // socket+0xD9 : mov [esi+4], ecx + { 0xD9, 0x89 }, // (Offset,Value)-Pair #7 + { 0xDA, 0x4E }, // (Offset,Value)-Pair #8 + { 0xDB, 0x04 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * bind +// ****************************************************************** +SOOVPA<10> bind_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // bind+0x11 : push 0x276D + { 0x11, 0x68 }, // (Offset,Value)-Pair #1 + { 0x12, 0x6D }, // (Offset,Value)-Pair #2 + { 0x13, 0x27 }, // (Offset,Value)-Pair #3 + + // bind+0x4C : mov [eax], cx + { 0x4C, 0x66 }, // (Offset,Value)-Pair #4 + { 0x4D, 0x89 }, // (Offset,Value)-Pair #5 + { 0x4E, 0x08 }, // (Offset,Value)-Pair #6 + + // bind+0x5B : xor eax, eax + { 0x5B, 0x33 }, // (Offset,Value)-Pair #7 + { 0x5C, 0xC0 }, // (Offset,Value)-Pair #8 + + // bind+0x80 : retn 0x0C + { 0x80, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x81, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * listen +// ****************************************************************** +SOOVPA<9> listen_1_0_4361 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // listen+0x10 : push 0x276D + { 0x10, 0x68 }, // (Offset,Value)-Pair #1 + { 0x11, 0x6D }, // (Offset,Value)-Pair #2 + { 0x12, 0x27 }, // (Offset,Value)-Pair #3 + + // listen+0x42 : test al, 0x10 + { 0x42, 0xA8 }, // (Offset,Value)-Pair #4 + { 0x43, 0x10 }, // (Offset,Value)-Pair #5 + + // listen+0x51 : mov ecx, edi + { 0x51, 0x8B }, // (Offset,Value)-Pair #6 + { 0x52, 0xCF }, // (Offset,Value)-Pair #7 + + // listen+0x7F : retn 0x08 + { 0x7F, 0xC2 }, // (Offset,Value)-Pair #8 + { 0x80, 0x08 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * ioctlsocket +// ****************************************************************** +SOOVPA<10> ioctlsocket_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // ioctlsocket+0x12 : push 0x276D + { 0x12, 0x68 }, // (Offset,Value)-Pair #1 + { 0x13, 0x6D }, // (Offset,Value)-Pair #2 + { 0x14, 0x27 }, // (Offset,Value)-Pair #3 + + // ioctlsocket+0x61 : lea edx, [esi+0x24] + { 0x61, 0x8D }, // (Offset,Value)-Pair #4 + { 0x62, 0x56 }, // (Offset,Value)-Pair #5 + { 0x63, 0x24 }, // (Offset,Value)-Pair #6 + + // ioctlsocket+0x80 : mov cl, al + { 0x80, 0x8A }, // (Offset,Value)-Pair #7 + { 0x81, 0xC8 }, // (Offset,Value)-Pair #8 + + // ioctlsocket+0xC5 : retn 0x0C + { 0xC5, 0xC2 }, // (Offset,Value)-Pair #9 + { 0xC6, 0x0C }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XOnline_1_0_4361 +// ****************************************************************** +OOVPATable XOnline_1_0_4361[] = +{ + // XNetStartup + { + (OOVPA*)&XNetStartup_1_0_4361, + + XTL::EmuXNetStartup, + + #ifdef _DEBUG_TRACE + "EmuXNetStartup" + #endif + }, + // WSAStartup + { + (OOVPA*)&WSAStartup_1_0_4361, + + XTL::EmuWSAStartup, + + #ifdef _DEBUG_TRACE + "EmuWSAStartup" + #endif + }, + // XnInit (XREF) + { + (OOVPA*)&XnInit_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "XnInit (XRef)" + #endif + }, + // socket + { + (OOVPA*)&socket_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emusocket), + + #ifdef _DEBUG_TRACE + "Emusocket" + #endif + }, + // bind + { + (OOVPA*)&bind_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emubind), + + #ifdef _DEBUG_TRACE + "Emubind" + #endif + }, + // listen + { + (OOVPA*)&listen_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emulisten), + + #ifdef _DEBUG_TRACE + "Emulisten" + #endif + }, + // ioctlsocket + { + (OOVPA*)&ioctlsocket_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emuioctlsocket), + + #ifdef _DEBUG_TRACE + "Emuioctlsocket" + #endif + }, +}; + +// ****************************************************************** +// * XOnline_1_0_4361_SIZE +// ****************************************************************** +uint32 XOnline_1_0_4361_SIZE = sizeof(XOnline_1_0_4361); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4627.h b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4627.h new file mode 100644 index 000000000..61a8966ce --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4627.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.4627.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_1_0_4627_H +#define XONLINE_1_0_4627_H + +#include "OOVPA.h" + +extern OOVPATable XOnline_1_0_4627[]; +extern uint32 XOnline_1_0_4627_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4627.inl new file mode 100644 index 000000000..f4a8d8a85 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.4627.inl @@ -0,0 +1,208 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4627.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XnInit +// ****************************************************************** +SOOVPA<12> XnInit_1_0_4627 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XREF_XNINIT, // XRef Is Saved + 0, // XRef Not Used + + { + // XnInit+0x03 : sub esp, 0x0218 + { 0x03, 0x81 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x18 }, // (Offset,Value)-Pair #3 + { 0x06, 0x02 }, // (Offset,Value)-Pair #4 + + // XnInit+0x19 : cmpxchg [ecx], edx + { 0x19, 0x0F }, // (Offset,Value)-Pair #5 + { 0x1A, 0xB1 }, // (Offset,Value)-Pair #6 + { 0x1B, 0x11 }, // (Offset,Value)-Pair #7 + + // XnInit+0x3C : push 0x4454454E + { 0x3C, 0x68 }, // (Offset,Value)-Pair #8 + { 0x3D, 0x4E }, // (Offset,Value)-Pair #9 + { 0x3E, 0x45 }, // (Offset,Value)-Pair #10 + { 0x3F, 0x54 }, // (Offset,Value)-Pair #11 + { 0x40, 0x44 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XNetGetEthernetLinkStatus +// ****************************************************************** +SOOVPA<8> XNetGetEthernetLinkStatus_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x33 }, + { 0x10, 0x8A }, + { 0x19, 0x00 }, + { 0x22, 0x56 }, + { 0x2B, 0xFF }, + { 0x34, 0xF0 }, + { 0x3D, 0x24 }, + { 0x46, 0x5B }, + } +}; + +// ****************************************************************** +// * XoUpdateLaunchNewImageInternal +// ****************************************************************** +SOOVPA<8> XoUpdateLaunchNewImageInternal_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_XoUpdateLaunchNewImageInternal, // Xref Is Saved + XRefNotUsed, + + { + { 0x1E, 0xDB }, + { 0x3E, 0x1B }, + { 0x5E, 0xF6 }, + { 0x81, 0x83 }, + { 0x9E, 0xE8 }, + { 0xBE, 0x50 }, + { 0xDE, 0xE8 }, + { 0xFE, 0x15 }, + } +}; + +// ****************************************************************** +// * XOnline_1_0_4627 +// ****************************************************************** +OOVPATable XOnline_1_0_4627[] = +{ + // XNetStartup (* unchanged since 4361 *) + { + (OOVPA*)&XNetStartup_1_0_4361, + + XTL::EmuXNetStartup, + + #ifdef _DEBUG_TRACE + "EmuXNetStartup" + #endif + }, + // WSAStartup + { + (OOVPA*)&WSAStartup_1_0_4361, + + XTL::EmuWSAStartup, + + #ifdef _DEBUG_TRACE + "EmuWSAStartup" + #endif + }, + // XnInit (XREF) + { + (OOVPA*)&XnInit_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "XnInit (XRef)" + #endif + }, + // socket + { + (OOVPA*)&socket_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emusocket), + + #ifdef _DEBUG_TRACE + "Emusocket" + #endif + }, + // bind (* unchanged since 4361 *) + { + (OOVPA*)&bind_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emubind), + + #ifdef _DEBUG_TRACE + "Emubind" + #endif + }, + // listen + { + (OOVPA*)&listen_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emulisten), + + #ifdef _DEBUG_TRACE + "Emulisten" + #endif + }, + // ioctlsocket (* unchanged since 4361 *) + { + (OOVPA*)&ioctlsocket_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emuioctlsocket), + + #ifdef _DEBUG_TRACE + "Emuioctlsocket" + #endif + }, + // XNetGetEthernetLinkStatus + { + (OOVPA*)&XNetGetEthernetLinkStatus_1_0_4627, + XTL::EmuXNetGetEthernetLinkStatus, + + #ifdef _DEBUG_TRACE + "XNetGetEthernetLinkStatus" + #endif + }, + // XoUpdateLaunchNewImageInternal (XREF) + { + (OOVPA*)&XoUpdateLaunchNewImageInternal_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "XoUpdateLaunchNewImageInternal (XREF)" + #endif + }, +}; + +// ****************************************************************** +// * XOnline_1_0_4627_SIZE +// ****************************************************************** +uint32 XOnline_1_0_4627_SIZE = sizeof(XOnline_1_0_4627); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5233.h b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5233.h new file mode 100644 index 000000000..8f45f37e7 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5233.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.5233.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_1_0_5233_H +#define XONLINE_1_0_5233_H + +#include "OOVPA.h" + +extern OOVPATable XOnline_1_0_5233[]; +extern uint32 XOnline_1_0_5233_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5233.inl new file mode 100644 index 000000000..d23af66df --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5233.inl @@ -0,0 +1,233 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4627.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XNetStartup +// ****************************************************************** +SOOVPA<8> XNetStartup_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0xC0 }, + { 0x04, 0x50 }, + { 0x07, 0x24 }, + { 0x0A, 0x68 }, + { 0x0F, 0xE8 }, + { 0x14, 0xC2 }, + { 0x15, 0x04 }, + { 0x16, 0x00 }, + } +}; + +// ****************************************************************** +// * XNetGetEthernetLinkStatus +// ****************************************************************** +SOOVPA<8> XNetGetEthernetLinkStatus_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x33 }, + { 0x10, 0x8A }, + { 0x19, 0x00 }, + { 0x22, 0x56 }, + { 0x2B, 0xFF }, + { 0x34, 0xF0 }, + { 0x3D, 0x24 }, + { 0x46, 0x5B }, + } +}; + +// ****************************************************************** +// * CXo::XOnlineLogon +// ****************************************************************** +SOOVPA<8> CXo_XOnlineLogon_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_CXo_XOnlineLogon, // Xref Is Saved + XRefNotUsed, + + { + { 0x21, 0xA8 }, + { 0x3E, 0x80 }, + { 0x5E, 0x00 }, + { 0x7E, 0x04 }, + { 0xA2, 0x85 }, + { 0xBE, 0xEC }, + { 0xDE, 0xF9 }, + { 0xFE, 0x33 }, + } +}; + +// ****************************************************************** +// * XOnlineLogon +// ****************************************************************** +SOOVPA<8> XOnlineLogon_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x0B, XREF_CXo_XOnlineLogon }, + + { 0x00, 0x55 }, + { 0x01, 0x8B }, + { 0x02, 0xEC }, + { 0x03, 0x5D }, + { 0x04, 0x8B }, + { 0x05, 0x0D }, + { 0x0A, 0xE9 }, + } +}; + +// ****************************************************************** +// * XOnline_1_0_4627 +// ****************************************************************** +OOVPATable XOnline_1_0_5233[] = +{ + // XNetStartup + { + (OOVPA*)&XNetStartup_1_0_5344, + + XTL::EmuXNetStartup, + + #ifdef _DEBUG_TRACE + "EmuXNetStartup" + #endif + }, + // WSAStartup (* unchanged since 4361 *) + { + (OOVPA*)&WSAStartup_1_0_4361, + + XTL::EmuWSAStartup, + + #ifdef _DEBUG_TRACE + "EmuWSAStartup" + #endif + }, + // XnInit (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&XnInit_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "XnInit (XRef)" + #endif + }, + // socket + /*{ + (OOVPA*)&socket_1_0_4361, + + MFPtoFP(XTL::EmuThis::Emusocket), + + #ifdef _DEBUG_TRACE + "Emusocket" + #endif + },*/ + // bind (* unchanged since 4361 *) + { + (OOVPA*)&bind_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emubind), + + #ifdef _DEBUG_TRACE + "Emubind" + #endif + }, + // listen + /*{ + (OOVPA*)&listen_1_0_4361, + + MFPtoFP(XTL::EmuThis::Emulisten), + + #ifdef _DEBUG_TRACE + "Emulisten" + #endif + },*/ + // ioctlsocket (* unchanged since 4361 *) + { + (OOVPA*)&ioctlsocket_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emuioctlsocket), + + #ifdef _DEBUG_TRACE + "Emuioctlsocket" + #endif + }, + // XNetGetEthernetLinkStatus + { + (OOVPA*)&XNetGetEthernetLinkStatus_1_0_5344, + XTL::EmuXNetGetEthernetLinkStatus, + + #ifdef _DEBUG_TRACE + "EmuXNetGetEthernetLinkStatus" + #endif + }, + // CXo::XOnlineLogon (XREF) + { + (OOVPA*)&CXo_XOnlineLogon_1_0_5344, + 0, + + #ifdef _DEBUG_TRACE + "CXo::XOnlineLogon (XREF) (5344)" + #endif + }, + // XOnlineLogon + { + (OOVPA*)&XOnlineLogon_1_0_5344, + XTL::EmuXOnlineLogon, + + #ifdef _DEBUG_TRACE + "EmuXOnlineLogon (5344)" + #endif + }, +}; + +// ****************************************************************** +// * XOnline_1_0_5233_SIZE +// ****************************************************************** +uint32 XOnline_1_0_5233_SIZE = sizeof(XOnline_1_0_5233); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5558.h b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5558.h new file mode 100644 index 000000000..2bf1a5a7a --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5558.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.5558.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_1_0_5558_H +#define XONLINE_1_0_5558_H + +#include "OOVPA.h" + +extern OOVPATable XOnline_1_0_5558[]; +extern uint32 XOnline_1_0_5558_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5558.inl new file mode 100644 index 000000000..151b63733 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5558.inl @@ -0,0 +1,241 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5558.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 +// * +// ****************************************************************** + +#if 0 +// ****************************************************************** +// * XNetStartup +// ****************************************************************** +SOOVPA<8> XNetStartup_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0xC0 }, + { 0x04, 0x50 }, + { 0x07, 0x24 }, + { 0x0A, 0x68 }, + { 0x0F, 0xE8 }, + { 0x14, 0xC2 }, + { 0x15, 0x04 }, + { 0x16, 0x00 }, + } +}; + +// ****************************************************************** +// * XNetGetEthernetLinkStatus +// ****************************************************************** +SOOVPA<8> XNetGetEthernetLinkStatus_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x33 }, + { 0x10, 0x8A }, + { 0x19, 0x00 }, + { 0x22, 0x56 }, + { 0x2B, 0xFF }, + { 0x34, 0xF0 }, + { 0x3D, 0x24 }, + { 0x46, 0x5B }, + } +}; + +// ****************************************************************** +// * CXo::XOnlineLogon +// ****************************************************************** +SOOVPA<8> CXo_XOnlineLogon_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_CXo_XOnlineLogon, // Xref Is Saved + XRefNotUsed, + + { + { 0x21, 0xA8 }, + { 0x3E, 0x80 }, + { 0x5E, 0x00 }, + { 0x7E, 0x04 }, + { 0xA2, 0x85 }, + { 0xBE, 0xEC }, + { 0xDE, 0xF9 }, + { 0xFE, 0x33 }, + } +}; + +// ****************************************************************** +// * XOnlineLogon +// ****************************************************************** +SOOVPA<8> XOnlineLogon_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x0B, XREF_CXo_XOnlineLogon }, + + { 0x00, 0x55 }, + { 0x01, 0x8B }, + { 0x02, 0xEC }, + { 0x03, 0x5D }, + { 0x04, 0x8B }, + { 0x05, 0x0D }, + { 0x0A, 0xE9 }, + } +}; +#endif + +// ****************************************************************** +// * WSAStartup +// ****************************************************************** +SOOVPA<7> WSAStartup_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x6A }, + { 0x0E, 0x68 }, + { 0x13, 0xE8 }, + { 0x18, 0xC2 }, + { 0x1A, 0x00 }, + } +}; + +// ****************************************************************** +// * XOnline_1_0_5558 +// ****************************************************************** +// * TODO: Verify all of these +// ****************************************************************** +OOVPATable XOnline_1_0_5558[] = +{ + // XNetStartup + { + (OOVPA*)&XNetStartup_1_0_5344, + + XTL::EmuXNetStartup, + + #ifdef _DEBUG_TRACE + "EmuXNetStartup (5344)" + #endif + }, + // WSAStartup + { + (OOVPA*)&WSAStartup_1_0_5558, + + XTL::EmuWSAStartup, + + #ifdef _DEBUG_TRACE + "EmuWSAStartup" + #endif + }, + // XnInit (XREF) (* unchanged since 4627 *) + { + (OOVPA*)&XnInit_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "XnInit (XRef)" + #endif + }, + // socket + /*{ + (OOVPA*)&socket_1_0_4361, + + MFPtoFP(XTL::EmuThis::Emusocket), + + #ifdef _DEBUG_TRACE + "Emusocket" + #endif + },*/ + // bind (* unchanged since 4361 *) + { + (OOVPA*)&bind_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emubind), + + #ifdef _DEBUG_TRACE + "Emubind" + #endif + }, + // listen + /*{ + (OOVPA*)&listen_1_0_4361, + + MFPtoFP(XTL::EmuThis::Emulisten), + + #ifdef _DEBUG_TRACE + "Emulisten" + #endif + },*/ + // ioctlsocket (* unchanged since 4361 *) + { + (OOVPA*)&ioctlsocket_1_0_4361, + + MFPtoFP(&XTL::EmuThis::Emuioctlsocket), + + #ifdef _DEBUG_TRACE + "Emuioctlsocket" + #endif + }, + // XNetGetEthernetLinkStatus + { + (OOVPA*)&XNetGetEthernetLinkStatus_1_0_5344, + XTL::EmuXNetGetEthernetLinkStatus, + + #ifdef _DEBUG_TRACE + "EmuXNetGetEthernetLinkStatus (5344)" + #endif + }, +}; + +// ****************************************************************** +// * XOnline_1_0_5558_SIZE +// ****************************************************************** +uint32 XOnline_1_0_5558_SIZE = sizeof(XOnline_1_0_5558); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5849.h b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5849.h new file mode 100644 index 000000000..282e018db --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5849.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.5849.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_1_0_5849_H +#define XONLINE_1_0_5849_H + +#include "OOVPA.h" + +extern OOVPATable XOnline_1_0_5849[]; +extern uint32 XOnline_1_0_5849_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5849.inl b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5849.inl new file mode 100644 index 000000000..fafbefb71 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XOnline.1.0.5849.inl @@ -0,0 +1,173 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5849.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XnInit +// ****************************************************************** +SOOVPA<8> XnInit_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_XNINIT, // Xref Is Saved + XRefNotUsed, + + { + { 0x1E, 0x3B }, + { 0x3E, 0x45 }, + { 0x5E, 0x00 }, + { 0x81, 0x57 }, + { 0xA2, 0x57 }, + { 0xC0, 0x33 }, + { 0xDE, 0xFE }, + { 0xFE, 0x48 }, + } +}; + +// ****************************************************************** +// * XNetStartup +// ****************************************************************** +SOOVPA<8> XNetStartup_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0xC0 }, + { 0x04, 0x50 }, + { 0x07, 0x24 }, + { 0x0A, 0x68 }, + { 0x0F, 0xE8 }, + { 0x14, 0xC2 }, + { 0x15, 0x04 }, + { 0x16, 0x00 }, + } +}; + +// ****************************************************************** +// * WSAStartup +// ****************************************************************** +SOOVPA<7> WSAStartup_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x6A }, + { 0x0E, 0x68 }, + { 0x13, 0xE8 }, + { 0x18, 0xC2 }, + { 0x1A, 0x00 }, + } +}; + +// ****************************************************************** +// * XNetGetEthernetLinkStatus +// ****************************************************************** +SOOVPA<8> XNetGetEthernetLinkStatus_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x33 }, + { 0x10, 0x8A }, + { 0x19, 0x00 }, + { 0x22, 0x56 }, + { 0x2B, 0xFF }, + { 0x34, 0xF0 }, + { 0x3D, 0x24 }, + { 0x46, 0x5B }, + } +}; + +// ****************************************************************** +// * XOnline_1_0_5849 +// ****************************************************************** +OOVPATable XOnline_1_0_5849[] = +{ + // XNetStartup + { + (OOVPA*)&XNetStartup_1_0_5849, + + XTL::EmuXNetStartup, + + #ifdef _DEBUG_TRACE + "EmuXNetStartup" + #endif + }, + // WSAStartup + { + (OOVPA*)&WSAStartup_1_0_5849, + + XTL::EmuWSAStartup, + + #ifdef _DEBUG_TRACE + "EmuWSAStartup" + #endif + }, + // XnInit (XREF) + { + (OOVPA*)&XnInit_1_0_5849, 0, + + #ifdef _DEBUG_TRACE + "XnInit (XRef)" + #endif + }, + // XNetGetEthernetLinkStatus + { + (OOVPA*)&XNetGetEthernetLinkStatus_1_0_5849, + XTL::EmuXNetGetEthernetLinkStatus, + + #ifdef _DEBUG_TRACE + "EmuXNetGetEthernetLinkStatus" + #endif + }, +}; + +// ****************************************************************** +// * XOnline_1_0_5849_SIZE +// ****************************************************************** +uint32 XOnline_1_0_5849_SIZE = sizeof(XOnline_1_0_5849); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XactEng.1.0.4627.h b/src/CxbxKrnl/HLEDataBase - Copy/XactEng.1.0.4627.h new file mode 100644 index 000000000..041106a13 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XactEng.1.0.4627.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->XactEng.1.0.4627.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 XACTENG_1_0_4627_H +#define XACTENG_1_0_4627_H + +#include "OOVPA.h" + +extern OOVPATable XactEng_1_0_4627[]; +extern uint32 XactEng_1_0_4627_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/XactEng.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase - Copy/XactEng.1.0.4627.inl new file mode 100644 index 000000000..a3d30820a --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/XactEng.1.0.4627.inl @@ -0,0 +1,1006 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ Y$$$P $$""""Y$$ Y$$$P +// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, +// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, +// * +// * Cxbx->Win32->CxbxKrnl->XactEng.1.0.4627.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XACTEngineCreate +// ****************************************************************** +SOOVPA<11> XACTEngineCreate_1_0_4627 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // XACTEngineCreate+0x0C : movzx ebx, al + { 0x0C, 0x0F }, + { 0x0D, 0xB6 }, + { 0x0E, 0xD8 }, + + // XACTEngineCreate+0x30 : push edi + { 0x30, 0x57 }, + + // XACTEngineCreate+0x31 : push 0x108 + { 0x31, 0x68 }, + { 0x32, 0x08 }, + { 0x33, 0x01 }, + { 0x34, 0x00 }, + { 0x35, 0x00 }, + + // XACTEngineCreate+0x9A : retn 0x8 + { 0x9A, 0xC2 }, + { 0x9B, 0x08 }, + } +}; + +// ****************************************************************** +// * XACTEngineCreate +// ****************************************************************** +SOOVPA<11> XACTEngineCreate_1_0_4928 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // XACTEngineCreate+0x09 : movzx ebx, al + { 0x09, 0x0F }, + { 0x0A, 0xB6 }, + { 0x0B, 0xD8 }, + + // XACTEngineCreate+0x2B : push edi + { 0x2B, 0x57 }, + + // XACTEngineCreate+0x2C : push 0x120 + { 0x2C, 0x68 }, + { 0x2D, 0x20 }, + { 0x2E, 0x01 }, + { 0x2F, 0x00 }, + { 0x30, 0x00 }, + + // XACTEngineCreate+0x9E : retn 0x8 + { 0x9E, 0xC2 }, + { 0x9F, 0x08 }, + } +}; + +// ****************************************************************** +// * XACT::CEngine::RegisterWaveBank +// ****************************************************************** +SOOVPA<7> XACT_CEngine_RegisterWaveBank_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_XACT_CEngine_RegisterWaveBank, // Xref Is Saved + XRefNotUsed, + + { + { 0x11, 0x33 }, + { 0x24, 0xC6 }, + { 0x37, 0xE7 }, + { 0x4A, 0x75 }, + { 0x5D, 0x83 }, + { 0x70, 0x33 }, + { 0x84, 0xFF }, + } +}; + +// ****************************************************************** +// * IXACTEngine_RegisterWaveBank +// ****************************************************************** +SOOVPA<8> IXACTEngine_RegisterWaveBank_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x1D, XREF_XACT_CEngine_RegisterWaveBank }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * XACTEngineDoWork +// ****************************************************************** +SOOVPA<7> XACTEngineDoWork_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0D, 0x85 }, + { 0x13, 0x0C }, + { 0x1A, 0xCE }, + { 0x21, 0xFF }, + { 0x29, 0xFF }, + { 0x2F, 0x5F }, + } +}; + +// ****************************************************************** +// * XACT::CEngine::RegisterStreamedWaveBank +// ****************************************************************** +SOOVPA<8> XACT_CEngine_RegisterStreamedWaveBank_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_XACT_CEngine_RegisterStreamedWaveBank, // Xref Is Saved + XRefNotUsed, + + { + { 0x10, 0x01 }, + { 0x23, 0x3B }, + { 0x34, 0x1B }, + { 0x46, 0x0C }, + { 0x58, 0x46 }, + { 0x6A, 0x41 }, + { 0x7C, 0x68 }, + { 0x8E, 0x0C }, + } +}; + +// ****************************************************************** +// * XACT::CEngine::RegisterStreamedWaveBank +// ****************************************************************** +SOOVPA<13> XACT_CEngine_RegisterStreamedWaveBank_1_0_4928 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XREF_XACT_CEngine_RegisterStreamedWaveBank, // Xref Is Saved + XRefNotUsed, + + { + // XACT_CEngine_RegisterStreamedWaveBank+0x07 : push 0x7C + { 0x07, 0x6A }, // (Offset,Value)-Pair #1 + { 0x08, 0x7C }, // (Offset,Value)-Pair #2 + // XACT_CEngine_RegisterStreamedWaveBank+0x30 : add esi, 0x8007000E + { 0x30, 0x81 }, // (Offset,Value)-Pair #3 + { 0x31, 0xC7 }, // (Offset,Value)-Pair #4 + { 0x32, 0x0E }, // (Offset,Value)-Pair #5 + { 0x33, 0x00 }, // (Offset,Value)-Pair #6 + { 0x34, 0x07 }, // (Offset,Value)-Pair #7 + { 0x35, 0x80 }, // (Offset,Value)-Pair #8 + // XACT_CEngine_RegisterStreamedWaveBank+0x50 : add ecx, 0x44 + { 0x50, 0x83 }, // (Offset,Value)-Pair #9 + { 0x51, 0xC1 }, // (Offset,Value)-Pair #10 + { 0x52, 0x44 }, // (Offset,Value)-Pair #11 + // XACT_CEngine_RegisterStreamedWaveBank+0x71 : retn 0x0C + { 0x71, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x72, 0x0C }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IXACTEngine_RegisterStreamedWaveBank +// ****************************************************************** +SOOVPA<9> IXACTEngine_RegisterStreamedWaveBank_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x19, XREF_XACT_CEngine_RegisterStreamedWaveBank }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * IXACTEngine_RegisterStreamedWaveBank +// ****************************************************************** +SOOVPA<10> IXACTEngine_RegisterStreamedWaveBank_1_0_4928 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, + + { + // IXACTEngine_RegisterStreamedWaveBank+0x22 : call XACT::CEngine::RegisterStreamedWaveBank + { 0x23, XREF_XACT_CEngine_RegisterStreamedWaveBank }, + + // IXACTEngine_RegisterStreamedWaveBank+0x0B : movzx esi, al + { 0x0B, 0x0F }, + { 0x0C, 0xB6 }, + { 0x0D, 0xF0 }, + // IXACTEngine_RegisterStreamedWaveBank+0x0E : mov eax, [esp+0x0C+4] + { 0x0E, 0x8B }, + { 0x0F, 0x44 }, + { 0x10, 0x24 }, + { 0x11, 0x10 }, + // IXACTEngine_RegisterStreamedWaveBank+0x3C : retn 0x0C + { 0x3C, 0xC2 }, + { 0x3D, 0x0C }, + } +}; + +// ****************************************************************** +// * XACT::CEngine::CreateSoundBank +// ****************************************************************** +SOOVPA<8> XACT_CEngine_CreateSoundBank_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_XACT_CEngine_CreateSoundBank, // Xref Is Saved + XRefNotUsed, + + { + { 0x0E, 0xA0 }, + { 0x1E, 0x8B }, + { 0x2E, 0xE6 }, + { 0x3E, 0x18 }, + { 0x4E, 0x7C }, + { 0x5E, 0xC7 }, + { 0x72, 0xFF }, + { 0x7E, 0x10 }, + } +}; + +// ****************************************************************** +// * XACT::CEngine::CreateSoundBank +// ****************************************************************** +SOOVPA<13> XACT_CEngine_CreateSoundBank_1_0_4928 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XREF_XACT_CEngine_CreateSoundBank, // Xref Is Saved + XRefNotUsed, + + { + // XACT::CEngine::CreateSoundBank+0x02 : push 0x34 + { 0x02, 0x6A }, // (Offset,Value)-Pair #1 + { 0x03, 0x34 }, // (Offset,Value)-Pair #2 + // XACT::CEngine::CreateSoundBank+0x2B : add edi, 0x8007000E + { 0x2B, 0x81 }, // (Offset,Value)-Pair #3 + { 0x2C, 0xC7 }, // (Offset,Value)-Pair #4 + { 0x2D, 0x0E }, // (Offset,Value)-Pair #5 + { 0x2E, 0x00 }, // (Offset,Value)-Pair #6 + { 0x2F, 0x07 }, // (Offset,Value)-Pair #7 + { 0x30, 0x80 }, // (Offset,Value)-Pair #8 + // XACT::CEngine::CreateSoundBank+0x4F : add ecx, 0x4C + { 0x4F, 0x83 }, // (Offset,Value)-Pair #9 + { 0x50, 0xC1 }, // (Offset,Value)-Pair #10 + { 0x51, 0x4C }, // (Offset,Value)-Pair #11 + // XACT::CEngine::CreateSoundBank+0x73 : retn 0x10 + { 0x73, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x74, 0x10 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * IXACTEngine_CreateSoundBank +// ****************************************************************** +SOOVPA<8> IXACTEngine_CreateSoundBank_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x1D, XREF_XACT_CEngine_CreateSoundBank }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, + { 0x0D, 0xC8 }, + { 0x12, 0x83 }, + { 0x17, 0x1B }, + { 0x1C, 0xE8 }, + { 0x21, 0xC2 }, + } +}; + +// ****************************************************************** +// * IXACTEngine_CreateSoundBank +// ****************************************************************** +SOOVPA<10> IXACTEngine_CreateSoundBank_1_0_4928 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 1, + + { + { 0x27, XREF_XACT_CEngine_CreateSoundBank }, + + // IXACTEngine_CreateSoundBank+0x07 : push [ebp+8+0x10] + { 0x07, 0xFF }, + { 0x08, 0x74 }, + { 0x09, 0x24 }, + { 0x0A, 0x18 }, + // IXACTEngine_CreateSoundBank+0x0B : movzx esi, al + { 0x0B, 0x0F }, + { 0x0C, 0xB6 }, + { 0x0D, 0xF0 }, + // IXACTEngine_CreateSoundBank+0x40 : retn 0x10 + { 0x40, 0xC2 }, + { 0x41, 0x10 }, + } +}; + +// ****************************************************************** +// * XACT::CEngine::DownloadEffectsImage +// ****************************************************************** +SOOVPA<7> XACT_CEngine_DownloadEffectsImage_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_XACT_CEngine_DownloadEffectsImage, // Xref Is Saved + XRefNotUsed, + + { + { 0x0B, 0x8B }, + { 0x12, 0xFF }, + { 0x1C, 0x46 }, + { 0x27, 0x85 }, + { 0x30, 0x89 }, + { 0x3A, 0x68 }, + { 0x45, 0x8B }, + } +}; + +// ****************************************************************** +// * IXACTEngine_DownloadEffectsImage +// ****************************************************************** +SOOVPA<9> IXACTEngine_DownloadEffectsImage_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x1F, XREF_XACT_CEngine_DownloadEffectsImage }, + + { 0x03, 0xFF }, + { 0x08, 0x08 }, + { 0x0D, 0xC8 }, + { 0x12, 0xC0 }, + { 0x17, 0xF7 }, + { 0x1C, 0xC8 }, + { 0x23, 0x5D }, + { 0x26, 0x00 }, + } +}; + +// ****************************************************************** +// * XACT::CEngine::CreateSoundSource +// ****************************************************************** +SOOVPA<8> XACT_CEngine_CreateSoundSource_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_XACT_CEngine_CreateSoundSource, // Xref Is Saved + XRefNotUsed, + + { + { 0x0A, 0x0F }, + { 0x14, 0x8B }, + { 0x1F, 0x50 }, + { 0x2A, 0x85 }, + { 0x35, 0x08 }, + { 0x40, 0x08 }, + { 0x4B, 0x15 }, + { 0x56, 0x0C }, + } +}; + +// ****************************************************************** +// * IXACTEngine_CreateSoundSource +// ****************************************************************** +SOOVPA<9> IXACTEngine_CreateSoundSource_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x19, XREF_XACT_CEngine_CreateSoundSource }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * XACT::CSoundBank::GetSoundCueIndexFromFriendlyName +// ****************************************************************** +SOOVPA<7> XACT_CSoundBank_GetSoundCueIndexFromFriendlyName_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_XACT_CSoundBank_GetSoundCueIndexFromFriendlyName, // Xref Is Saved + XRefNotUsed, + + { + { 0x12, 0x8B }, + { 0x22, 0x46 }, + { 0x34, 0x68 }, + { 0x46, 0x0C }, + { 0x58, 0x39 }, + { 0x6A, 0x45 }, + { 0x7E, 0xFF }, + } +}; + +// ****************************************************************** +// * IXACTSoundBank_GetSoundCueIndexFromFriendlyName +// ****************************************************************** +SOOVPA<9> IXACTSoundBank_GetSoundCueIndexFromFriendlyName_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x19, XREF_XACT_CSoundBank_GetSoundCueIndexFromFriendlyName }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * IXACTSoundBank_Play +// ****************************************************************** +SOOVPA<8> IXACTSoundBank_Play_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0xFF }, + { 0x08, 0x08 }, + { 0x0D, 0xC8 }, + { 0x12, 0xC0 }, + { 0x17, 0xF7 }, + { 0x1C, 0xC8 }, + { 0x23, 0x5D }, + { 0x26, 0x00 }, + } +}; + +// ****************************************************************** +// * XACT::CEngine::RegisterNotification +// ****************************************************************** +SOOVPA<7> XACT_CEngine_RegisterNotification_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_XACT_CEngine_RegisterNotification, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x0C, 0x01 }, + { 0x13, 0xF0 }, + { 0x1A, 0xF6 }, + { 0x24, 0xFF }, + { 0x2A, 0x8B }, + { 0x2F, 0x08 }, + } +}; + +// ****************************************************************** +// * IXACTEngine_RegisterNotification +// ****************************************************************** +SOOVPA<8> IXACTEngine_RegisterNotification_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_XACT_CEngine_RegisterNotification }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * XACT::CEngine::GetNotification +// ****************************************************************** +SOOVPA<8> XACT_CEngine_GetNotification_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_XACT_CEngine_GetNotification, // Xref Is Saved + XRefNotUsed, + + { + { 0x11, 0x8D }, + { 0x24, 0x5A }, + { 0x37, 0xC0 }, + { 0x4A, 0x8B }, + { 0x5D, 0x04 }, + { 0x74, 0x8B }, + { 0x83, 0x40 }, + { 0x96, 0x0C }, + } +}; + +// ****************************************************************** +// * IXACTEngine_GetNotification +// ****************************************************************** +SOOVPA<9> IXACTEngine_GetNotification_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, + + { + { 0x19, XREF_XACT_CEngine_GetNotification }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * XACT::CEngine::UnRegisterWaveBank +// ****************************************************************** +SOOVPA<8> XACT_CEngine_UnRegisterWaveBank_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_XACT_CEngine_UnRegisterWaveBank, // Xref Is Saved + XRefNotUsed, + + { + { 0x07, 0x8B }, + { 0x10, 0x58 }, + { 0x19, 0x8B }, + { 0x22, 0x89 }, + { 0x2C, 0x8B }, + { 0x34, 0x5F }, + { 0x3D, 0xFF }, + { 0x46, 0x08 }, + } +}; + +// ****************************************************************** +// * XACT::CEngine::UnRegisterWaveBank +// ****************************************************************** +SOOVPA<8> XACT_CEngine_UnRegisterWaveBank_1_0_4928 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XREF_XACT_CEngine_UnRegisterWaveBank, // Xref Is Saved + XRefNotUsed, + + { + // XACT_CEngine_UnRegisterWaveBank+0x06 : lea eax, [ecx+0x58] + { 0x06, 0x8D }, + { 0x07, 0x41 }, + { 0x08, 0x58 }, + // XACT_CEngine_UnRegisterWaveBank+0x28 : lea edi, [ebx+0x4C] + { 0x28, 0x8D }, + { 0x29, 0x7B }, + { 0x2A, 0x4C }, + // XACT_CEngine_UnRegisterWaveBank+0xBF : retn 0x8 + { 0xBF, 0xC2 }, + { 0xC0, 0x08 }, + } +}; + + +// ****************************************************************** +// * IXACTEngine_UnRegisterWaveBank +// ****************************************************************** +SOOVPA<8> IXACTEngine_UnRegisterWaveBank_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + { 0x15, XREF_XACT_CEngine_UnRegisterWaveBank }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0x83 }, + { 0x0E, 0xD9 }, + { 0x12, 0xC8 }, + { 0x19, 0xC2 }, + { 0x1A, 0x08 }, + } +}; + +// ****************************************************************** +// * IXACTEngine_UnRegisterWaveBank +// ****************************************************************** +SOOVPA<8> IXACTEngine_UnRegisterWaveBank_1_0_4928 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + // IXACTEngine_UnRegisterWaveBank+0x1E : call XACT::CEngine::UnRegisterWaveBank + { 0x1F, XREF_XACT_CEngine_UnRegisterWaveBank }, + + { 0x07, 0xFF }, + { 0x0E, 0x8B }, + { 0x16, 0xF8 }, + { 0x1E, 0xE8 }, + { 0x26, 0xF8 }, + { 0x2E, 0xFF }, + { 0x36, 0x5F }, + } +}; + +// ****************************************************************** +// * XactEng_1_0_4627 +// ****************************************************************** +OOVPATable XactEng_1_0_4627[] = +{ + // XACTEngineCreate + { + (OOVPA*) &XACTEngineCreate_1_0_4627, + + XTL::EmuXACTEngineCreate, + + #ifdef _DEBUG_TRACE + "EmuXACTEngineCreate" + #endif + }, + // XACTEngineCreate + { + (OOVPA*) &XACTEngineCreate_1_0_4928, + + XTL::EmuXACTEngineCreate, + + #ifdef _DEBUG_TRACE + "EmuXACTEngineCreate_4928" + #endif + }, + // XACTEngineDoWork + { + (OOVPA*) &XACTEngineDoWork_1_0_4627, + + XTL::EmuXACTEngineDoWork, + + #ifdef _DEBUG_TRACE + "EmuXACTEngineDoWork" + #endif + }, + // XACT_CEngine_RegisterWaveBank + { + (OOVPA*)&XACT_CEngine_RegisterWaveBank_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "XACT::CEngine::RegisterWaveBank (XREF)" + #endif + }, + // IXACTEngine_RegisterWaveBank + { + (OOVPA*)&IXACTEngine_RegisterWaveBank_1_0_4627, + + XTL::EmuIXACTEngine_RegisterWaveBank, + + #ifdef _DEBUG_TRACE + "EmuIXACTEngine_ResiterWaveBank" + #endif + }, + // XACT::CEngine::RegisterStreamedWaveBank (XREF) + { + (OOVPA*)&XACT_CEngine_RegisterStreamedWaveBank_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "XACT::CEngine::RegisterStreamedWaveBank (XREF)" + #endif + }, + // XACT::CEngine::RegisterStreamedWaveBank (XREF) + { + (OOVPA*)&XACT_CEngine_RegisterStreamedWaveBank_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "XACT::CEngine::RegisterStreamedWaveBank_4928 (XREF)" + #endif + }, + // IXACTEngine_RegisterStreamedWaveBank + { + (OOVPA*)&IXACTEngine_RegisterStreamedWaveBank_1_0_4627, + XTL::EmuIXACTEngine_RegisterStreamedWaveBank, + + #ifdef _DEBUG_TRACE + "EmuIXACTEngine_RegisterStreamedWaveBank" + #endif + }, + // IXACTEngine_RegisterStreamedWaveBank + { + (OOVPA*)&IXACTEngine_RegisterStreamedWaveBank_1_0_4928, + XTL::EmuIXACTEngine_RegisterStreamedWaveBank, + + #ifdef _DEBUG_TRACE + "EmuIXACTEngine_RegisterStreamedWaveBank_4928" + #endif + }, + // XACT::CEngine::CreateSoundBank (XREF) + { + (OOVPA*)&XACT_CEngine_CreateSoundBank_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "XACT::CEngine::CreateSoundBank (XREF)" + #endif + }, + // XACT::CEngine::CreateSoundBank (XREF) + { + (OOVPA*)&XACT_CEngine_CreateSoundBank_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "XACT::CEngine::CreateSoundBank_4928 (XREF)" + #endif + }, + // IXACTEngine_CreateSoundBank + { + (OOVPA*)&IXACTEngine_CreateSoundBank_1_0_4627, + XTL::EmuIXACTEngine_CreateSoundBank, + + #ifdef _DEBUG_TRACE + "EmuIXACTEngine_CreateSoundBank" + #endif + }, + // IXACTEngine_CreateSoundBank + { + (OOVPA*)&IXACTEngine_CreateSoundBank_1_0_4928, + XTL::EmuIXACTEngine_CreateSoundBank, + + #ifdef _DEBUG_TRACE + "EmuIXACTEngine_CreateSoundBank_4928" + #endif + }, + // XACT::CEngine::DownloadEffectsImage (XREF) + { + (OOVPA*)&XACT_CEngine_DownloadEffectsImage_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "XACT::CEngine::DownloadEffectsImage (XREF)" + #endif + }, + // IXACTEngine_DownloadEffectsImage + { + (OOVPA*)&IXACTEngine_DownloadEffectsImage_1_0_4627, + XTL::EmuIXACTEngine_DownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "EmuIXACTEngine_DownloadEffectsImage" + #endif + }, + // XACT::CEngine::CreateSoundSource (XREF) + { + (OOVPA*)&XACT_CEngine_CreateSoundSource_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "XACT::CEngine::CreateSoundSource (XREF)" + #endif + }, + // IXACTEngine_CreateSoundSource + { + (OOVPA*)&IXACTEngine_CreateSoundSource_1_0_4627, + XTL::EmuIXACTEngine_CreateSoundSource, + + #ifdef _DEBUG_TRACE + "EmuIXACTEngine_CreateSoundSource" + #endif + }, + // XACT::CSoundBank::GetSoundCueIndexFromFriendlyName (XREF) + { + (OOVPA*)&XACT_CSoundBank_GetSoundCueIndexFromFriendlyName_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "XACT::CSoundBank::GetSoundCueIndexFromFriendlyName (XREF)" + #endif + }, + // IXACTSoundBank_GetSoundCueIndexFromFriendlyName + { + (OOVPA*)&IXACTSoundBank_GetSoundCueIndexFromFriendlyName_1_0_4627, + XTL::EmuIXACTSoundBank_GetSoundCueIndexFromFriendlyName, + + #ifdef _DEBUG_TRACE + "EmuIXACTSoundBank_GetSoundCueIndexFromFriendlyName" + #endif + }, + // IXACTSoundBank_Play + { + (OOVPA*)&IXACTSoundBank_Play_1_0_4627, + XTL::EmuIXACTSoundBank_Play, + + #ifdef _DEBUG_TRACE + "EmuIXACTSoundBank_Play" + #endif + }, + // XACT::CEngine::RegisterNotification + { + (OOVPA*)&XACT_CEngine_RegisterNotification_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "XACT::CEngine::RegisterNotification (XREF)" + #endif + }, + // IXACTEngine_RegisterNotification + { + (OOVPA*)&IXACTEngine_RegisterNotification_1_0_4627, + + XTL::EmuIXACTEngine_RegisterNotification, + + #ifdef _DEBUG_TRACE + "EmuIXACTEngine_RegisterNotification (XREF)" + #endif + }, + // XACT::CEngine::GetNotification + { + (OOVPA*)&XACT_CEngine_GetNotification_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "XACT::CEngine::GetNotification (XREF)" + #endif + }, + // IXACTEngine_GetNotification + { + (OOVPA*)&IXACTEngine_GetNotification_1_0_4627, + XTL::EmuIXACTEngine_GetNotification, + + #ifdef _DEBUG_TRACE + "EmuIXACTEngine_GetNotification" + #endif + }, + // XACT::CEngine::UnRegisterWaveBank (XREF) + { + (OOVPA*)&XACT_CEngine_UnRegisterWaveBank_1_0_4627, + 0, + + #ifdef _DEBUG_TRACE + "XACT::CEngine::UnRegisterWaveBank (XREF)" + #endif + }, + // XACT::CEngine::UnRegisterWaveBank (XREF) + { + (OOVPA*)&XACT_CEngine_UnRegisterWaveBank_1_0_4928, + 0, + + #ifdef _DEBUG_TRACE + "XACT::CEngine::UnRegisterWaveBank_4928 (XREF)" + #endif + }, + // IXACTEngine_UnRegisterWaveBank + { + (OOVPA*)&IXACTEngine_UnRegisterWaveBank_1_0_4627, + XTL::EmuIXACTEngine_UnRegisterWaveBank, + + #ifdef _DEBUG_TRACE + "IXACTEngine_UnRegisterWaveBank" + #endif + }, + // IXACTEngine_UnRegisterWaveBank + { + (OOVPA*)&IXACTEngine_UnRegisterWaveBank_1_0_4928, + XTL::EmuIXACTEngine_UnRegisterWaveBank, + + #ifdef _DEBUG_TRACE + "IXACTEngine_UnRegisterWaveBank_4928" + #endif + }, +}; + +// ****************************************************************** +// * XACTENG_1_0_4627_SIZE +// ****************************************************************** +uint32 XactEng_1_0_4627_SIZE = sizeof(XactEng_1_0_4627); \ No newline at end of file diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.3911.h b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.3911.h new file mode 100644 index 000000000..696ebc956 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.3911.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.3911.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_1_0_3911_H +#define XAPI_1_0_3911_H + +#include "OOVPA.h" + +extern OOVPATable XAPI_1_0_3911[]; +extern uint32 XAPI_1_0_3911_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.3911.inl b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.3911.inl new file mode 100644 index 000000000..128b6fc60 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.3911.inl @@ -0,0 +1,2020 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.3911.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * GetExitCodeThread +// ****************************************************************** +SOOVPA<11> GetExitCodeThread_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // GetExitCodeThread+0x03 : lea eax, [ebp+0x08] + { 0x03, 0x8D }, // (Offset,Value)-Pair #1 + { 0x04, 0x45 }, // (Offset,Value)-Pair #2 + { 0x05, 0x08 }, // (Offset,Value)-Pair #3 + + // GetExitCodeThread+0x1A : mov ecx, dword ptr [ebp+0x08] + { 0x1A, 0x8B }, // (Offset,Value)-Pair #4 + { 0x1B, 0x4D }, // (Offset,Value)-Pair #5 + { 0x1C, 0x08 }, // (Offset,Value)-Pair #6 + + // GetExitCodeThread+0x2B : mov eax, 0x0103 + { 0x2B, 0xB8 }, // (Offset,Value)-Pair #7 + { 0x2C, 0x03 }, // (Offset,Value)-Pair #8 + { 0x2D, 0x01 }, // (Offset,Value)-Pair #9 + + // GetExitCodeThread+0x49 : retn 0x08 + { 0x49, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x4A, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * RtlCreateHeap +// ****************************************************************** +SOOVPA<10> RtlCreateHeap_1_0_3911 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // RtlCreateHeap+0x13 : push 0x0C + { 0x13, 0x6A }, // (Offset,Value)-Pair #1 + { 0x14, 0x0C }, // (Offset,Value)-Pair #2 + + // RtlCreateHeap+0x1B : rep stosd + { 0x1B, 0xF3 }, // (Offset,Value)-Pair #3 + { 0x1C, 0xAB }, // (Offset,Value)-Pair #4 + + // RtlCreateHeap+0x4E : retn + { 0x4E, 0xC3 }, // (Offset,Value)-Pair #5 + + // RtlCreateHeap+0x8D : jnz +0x08 + { 0x8D, 0x75 }, // (Offset,Value)-Pair #6 + { 0x8E, 0x08 }, // (Offset,Value)-Pair #7 + + // RtlCreateHeap+0xA4 : cmp [ebp-38h], esi + { 0xA4, 0x39 }, // (Offset,Value)-Pair #8 + { 0xA5, 0x75 }, // (Offset,Value)-Pair #9 + { 0xA6, 0xC8 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * RtlAllocateHeap +// ****************************************************************** +SOOVPA<11> RtlAllocateHeap_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // RtlAllocateHeap+0x1E : or ecx, [esi+0x18] + { 0x1E, 0x0B }, // (Offset,Value)-Pair #1 + { 0x1F, 0x4E }, // (Offset,Value)-Pair #2 + { 0x20, 0x18 }, // (Offset,Value)-Pair #3 + + // RtlAllocateHeap+0x29 : jnz +0x01 + { 0x29, 0x75 }, // (Offset,Value)-Pair #4 + { 0x2A, 0x01 }, // (Offset,Value)-Pair #5 + + // RtlAllocateHeap+0x2B : inc eax + { 0x2B, 0x40 }, // (Offset,Value)-Pair #6 + + // RtlAllocateHeap+0x73 : sub eax, 0x08 + { 0x73, 0x83 }, // (Offset,Value)-Pair #7 + { 0x74, 0xE8 }, // (Offset,Value)-Pair #8 + { 0x75, 0x08 }, // (Offset,Value)-Pair #9 + + // RtlAllocateHeap+0xA5 : shl edi, cl + { 0xA5, 0xD3 }, // (Offset,Value)-Pair #10 + { 0xA6, 0xE7 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * RtlFreeHeap +// ****************************************************************** +SOOVPA<10> RtlFreeHeap_1_0_3911 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // RtlFreeHeap+0x1F : test ecx, ecx + { 0x1F, 0x85 }, // (Offset,Value)-Pair #1 + { 0x20, 0xC9 }, // (Offset,Value)-Pair #2 + + // RtlFreeHeap+0x23 : mov al, 1 + { 0x23, 0xB0 }, // (Offset,Value)-Pair #3 + { 0x24, 0x01 }, // (Offset,Value)-Pair #4 + + // RtlFreeHeap+0x30 : lea edi, [ecx-0x10] + { 0x30, 0x8D }, // (Offset,Value)-Pair #5 + { 0x31, 0x79 }, // (Offset,Value)-Pair #6 + { 0x32, 0xF0 }, // (Offset,Value)-Pair #7 + + // RtlFreeHeap+0x7B : and ecx, 0x10 + { 0x7B, 0x83 }, // (Offset,Value)-Pair #8 + { 0x7C, 0xE1 }, // (Offset,Value)-Pair #9 + { 0x7D, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * RtlReAllocateHeap +// ****************************************************************** +SOOVPA<10> RtlReAllocateHeap_1_0_3911 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // RtlReAllocateHeap+0x1C : test esi, esi + { 0x1C, 0x85 }, // (Offset,Value)-Pair #1 + { 0x1D, 0xF6 }, // (Offset,Value)-Pair #2 + + // RtlReAllocateHeap+0x26 : mov edx, [ebp+0x14] + { 0x26, 0x8B }, // (Offset,Value)-Pair #3 + { 0x27, 0x55 }, // (Offset,Value)-Pair #4 + { 0x28, 0x14 }, // (Offset,Value)-Pair #5 + + // RtlReAllocateHeap+0x5E : jz +0x06; add ecx, 0x10 + { 0x5E, 0x74 }, // (Offset,Value)-Pair #6 + { 0x5F, 0x06 }, // (Offset,Value)-Pair #7 + { 0x60, 0x83 }, // (Offset,Value)-Pair #8 + { 0x61, 0xC1 }, // (Offset,Value)-Pair #9 + { 0x62, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * RtlSizeHeap +// ****************************************************************** +SOOVPA<11> RtlSizeHeap_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // RtlSizeHeap+0x04 : mov al, [ecx-0x0B] + { 0x04, 0x8A }, // (Offset,Value)-Pair #1 + { 0x05, 0x41 }, // (Offset,Value)-Pair #2 + { 0x06, 0xF5 }, // (Offset,Value)-Pair #3 + + // RtlSizeHeap+0x07 : test al, 1 + { 0x07, 0xA8 }, // (Offset,Value)-Pair #4 + { 0x08, 0x01 }, // (Offset,Value)-Pair #5 + + // RtlSizeHeap+0x14 : movzx edx, word ptr [ecx-0x10] + { 0x14, 0x0F }, // (Offset,Value)-Pair #6 + { 0x15, 0xB7 }, // (Offset,Value)-Pair #7 + { 0x16, 0x51 }, // (Offset,Value)-Pair #8 + { 0x17, 0xF0 }, // (Offset,Value)-Pair #9 + + // RtlSizeHeap+0x2A : sub eax, ecx + { 0x2A, 0x2B }, // (Offset,Value)-Pair #10 + { 0x2B, 0xC1 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * XInitDevices +// ****************************************************************** +// * NOTE: We are actually intercepting USBD_Init, because +// * XInitDevices Simply redirects to that function +// ****************************************************************** +SOOVPA<10> XInitDevices_1_0_3911 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // XInitDevices+0x03 : push 0xB4 + { 0x03, 0x68 }, // (Offset,Value)-Pair #1 + { 0x04, 0xB4 }, // (Offset,Value)-Pair #2 + + // XInitDevices+0x10 : jmp +0x13 + { 0x10, 0x74 }, // (Offset,Value)-Pair #3 + { 0x11, 0x13 }, // (Offset,Value)-Pair #4 + + // XInitDevices+0x5B : movzx eax, byte ptr [esi+0xA1] + { 0x5B, 0x0F }, // (Offset,Value)-Pair #5 + { 0x5C, 0xB6 }, // (Offset,Value)-Pair #6 + { 0x5D, 0x86 }, // (Offset,Value)-Pair #7 + { 0x5E, 0xA1 }, // (Offset,Value)-Pair #8 + + // XInitDevices+0x8B : retn 8 + { 0x8B, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x8C, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * CreateMutex +// ****************************************************************** +SOOVPA<13> CreateMutex_1_0_3911 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // CreateMutex+0x03 : sub esp, 0x14 + { 0x03, 0x83 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x14 }, // (Offset,Value)-Pair #3 + + // CreateMutex+0x32 : cmp eax, 0x40000000 + { 0x32, 0x3D }, // (Offset,Value)-Pair #4 + { 0x33, 0x00 }, // (Offset,Value)-Pair #5 + { 0x34, 0x00 }, // (Offset,Value)-Pair #6 + { 0x35, 0x00 }, // (Offset,Value)-Pair #7 + { 0x36, 0x40 }, // (Offset,Value)-Pair #8 + + // CreateMutex+0x39 : push 0xB7 + { 0x39, 0x68 }, // (Offset,Value)-Pair #9 + { 0x3A, 0xB7 }, // (Offset,Value)-Pair #10 + + // CreateMutex+0x47 : mov eax, [ebp+0x10] + { 0x47, 0x8B }, // (Offset,Value)-Pair #11 + { 0x48, 0x45 }, // (Offset,Value)-Pair #12 + { 0x49, 0x10 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * CreateThread +// ****************************************************************** +SOOVPA<8> CreateThread_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // CreateThread+0x0A : mov eax, ds:10130h + { 0x0A, 0xA1 }, // (Offset,Value)-Pair #1 + { 0x0B, 0x30 }, // (Offset,Value)-Pair #2 + { 0x0C, 0x01 }, // (Offset,Value)-Pair #3 + + // CreateThread+0x1C : and ecx, 0xFFFFFF01 + { 0x1C, 0x81 }, // (Offset,Value)-Pair #4 + { 0x1D, 0xE1 }, // (Offset,Value)-Pair #5 + { 0x1E, 0x01 }, // (Offset,Value)-Pair #6 + + // CreateThread+0x51 : retn 0x18 + { 0x51, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x52, 0x18 } // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * SetThreadPriority +// ****************************************************************** +SOOVPA<10> SetThreadPriority_1_0_3911 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // SetThreadPriority+0x0D : push [ebp+0x08] + { 0x0D, 0xFF }, // (Offset,Value)-Pair #1 + { 0x0E, 0x75 }, // (Offset,Value)-Pair #2 + { 0x0F, 0x08 }, // (Offset,Value)-Pair #3 + + // SetThreadPriority+0x18 : jl +0x2C + { 0x18, 0x7C }, // (Offset,Value)-Pair #4 + { 0x19, 0x2C }, // (Offset,Value)-Pair #5 + + // SetThreadPriority+0x22 : push 0x10 + { 0x22, 0x6A }, // (Offset,Value)-Pair #6 + { 0x23, 0x10 }, // (Offset,Value)-Pair #7 + + // SetThreadPriority+0x26 : cmp eax, 0xFFFFFFF1 + { 0x26, 0x83 }, // (Offset,Value)-Pair #8 + { 0x27, 0xF8 }, // (Offset,Value)-Pair #9 + { 0x28, 0xF1 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XapiInitProcess +// ****************************************************************** +SOOVPA<7> XapiInitProcess_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + // XapiInitProcess+0x03 : sub esp, 30h + { 0x05, 0x30 }, // (Offset,Value)-Pair #1 + + // XapiInitProcess+0x0F : push 0x0C + { 0x0F, 0x6A }, // (Offset,Value)-Pair #2 + { 0x10, 0x0C }, // (Offset,Value)-Pair #3 + + // XapiInitProcess+0x17 : repe stosd + { 0x17, 0xF3 }, // (Offset,Value)-Pair #4 + { 0x18, 0xAB }, // (Offset,Value)-Pair #5 + + // XapiInitProcess+0x42 : jnz +0x0A + { 0x42, 0x75 }, // (Offset,Value)-Pair #6 + { 0x43, 0x0A }, // (Offset,Value)-Pair #7 + } +}; + +// ****************************************************************** +// * XapiInitProcess +// ****************************************************************** +SOOVPA<7> XapiInitProcess_1_0_3950 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + // XapiInitProcess+0x03 : sub esp, 30h + { 0x05, 0x30 }, // (Offset,Value)-Pair #1 + + // XapiInitProcess+0x0F : push 0x0C + { 0x10, 0x6A }, // (Offset,Value)-Pair #2 + { 0x11, 0x0C }, // (Offset,Value)-Pair #3 + + // XapiInitProcess+0x17 : repe stosd + { 0x18, 0xF3 }, // (Offset,Value)-Pair #4 + { 0x19, 0xAB }, // (Offset,Value)-Pair #5 + + // XapiInitProcess+0x42 : jnz +0x0A + { 0x43, 0x75 }, // (Offset,Value)-Pair #6 + { 0x44, 0x0A }, // (Offset,Value)-Pair #7 + } +}; + +// ****************************************************************** +// * XapiBootDash +// ****************************************************************** +SOOVPA<11> XapiBootDash_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // XapiBootDash+0x03 : sub esp, 0x0C00 + { 0x03, 0x81 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x06, 0x0C }, // (Offset,Value)-Pair #3 + + // XapiBootDash+0x09 : mov eax, ds:0x10118 + { 0x09, 0xA1 }, // (Offset,Value)-Pair #4 + { 0x0A, 0x18 }, // (Offset,Value)-Pair #5 + { 0x0B, 0x01 }, // (Offset,Value)-Pair #6 + { 0x0C, 0x01 }, // (Offset,Value)-Pair #7 + + // XapiBootDash+0x25 : repe stosd + { 0x25, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x26, 0xAB }, // (Offset,Value)-Pair #9 + + // XapiBootDash+0x59 : retn 0x0C + { 0x59, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x5A, 0x0C }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * XRegisterThreadNotifyRoutine +// ****************************************************************** +SOOVPA<11> XRegisterThreadNotifyRoutine_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // XRegisterThreadNotifyRoutine+0x0D : cmp [esp+0x0C], 0 + { 0x0D, 0x83 }, // (Offset,Value)-Pair #1 + { 0x0E, 0x7C }, // (Offset,Value)-Pair #2 + { 0x0F, 0x24 }, // (Offset,Value)-Pair #3 + { 0x10, 0x0C }, // (Offset,Value)-Pair #4 + + // XRegisterThreadNotifyRoutine+0x12 : jz +0x1C + { 0x12, 0x74 }, // (Offset,Value)-Pair #5 + { 0x13, 0x1C }, // (Offset,Value)-Pair #6 + + // XRegisterThreadNotifyRoutine+0x24 : mov [eax+4], ecx + { 0x24, 0x89 }, // (Offset,Value)-Pair #7 + { 0x25, 0x48 }, // (Offset,Value)-Pair #8 + { 0x26, 0x04 }, // (Offset,Value)-Pair #9 + + // XRegisterThreadNotifyRoutine+0x46 : retn 0x08 + { 0x46, 0xC2 }, // (Offset,Value)-Pair #10 + { 0x47, 0x08 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * GetTimeZoneInformation +// ****************************************************************** +SOOVPA<7> GetTimeZoneInformation_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x28 }, + { 0x2E, 0x28 }, + { 0x4F, 0x59 }, + { 0x56, 0xAB }, + { 0x8C, 0xC0 }, + { 0xB9, 0x80 }, + { 0xF7, 0x99 }, + } +}; + +/* not necessary? +// ****************************************************************** +// * XCalculateSignatureBegin +// ****************************************************************** +SOOVPA<10> XCalculateSignatureBegin_1_0_3911 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // XCalculateSignatureBegin+0x01 : push 0x7C; push 0 + { 0x01, 0x6A }, // (Offset,Value)-Pair #1 + { 0x02, 0x7C }, // (Offset,Value)-Pair #2 + { 0x03, 0x6A }, // (Offset,Value)-Pair #3 + { 0x04, 0x00 }, // (Offset,Value)-Pair #4 + + // XCalculateSignatureBegin+0x10 : push 0x08 + { 0x10, 0x6A }, // (Offset,Value)-Pair #5 + { 0x11, 0x08 }, // (Offset,Value)-Pair #6 + + // XCalculateSignatureBegin+0x2E : push 0x10 + { 0x2E, 0x6A }, // (Offset,Value)-Pair #7 + { 0x2F, 0x10 }, // (Offset,Value)-Pair #8 + + // XCalculateSignatureBegin+0x3B : retn 0x04 + { 0x3B, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x3C, 0x04 }, // (Offset,Value)-Pair #10 + } +}; +*/ + +// ****************************************************************** +// * XGetDevices +// ****************************************************************** +SOOVPA<14> XGetDevices_1_0_3911 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // XGetDevices+0x07 : mov edx, [esp+arg_0] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x54 }, // (Offset,Value)-Pair #2 + { 0x09, 0x24 }, // (Offset,Value)-Pair #3 + { 0x0A, 0x08 }, // (Offset,Value)-Pair #4 + + // XGetDevices+0x0D : and [edx+4], 0 + { 0x0D, 0x83 }, // (Offset,Value)-Pair #5 + { 0x0E, 0x62 }, // (Offset,Value)-Pair #6 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #7 + { 0x10, 0x00 }, // (Offset,Value)-Pair #8 + + // XGetDevices+0x11 : mov cl, al + { 0x11, 0x8A }, // (Offset,Value)-Pair #9 + { 0x12, 0xC8 }, // (Offset,Value)-Pair #10 + + // XGetDevices+0x16 : call KfLowerIrql + { 0x16, 0xFF }, // (Offset,Value)-Pair #11 + { 0x17, 0x15 }, // (Offset,Value)-Pair #12 + + // XGetDevices+0x1F : retn 4 + { 0x1F, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x20, 0x04 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * XGetDeviceChanges +// ****************************************************************** +SOOVPA<8> XGetDeviceChanges_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // XGetDeviceChanges+0x07 : xor eax, eax + { 0x07, 0x33 }, // (Offset,Value)-Pair #1 + { 0x08, 0xC0 }, // (Offset,Value)-Pair #2 + + // XGetDeviceChanges+0x33 : not edx + { 0x33, 0xF7 }, // (Offset,Value)-Pair #3 + { 0x34, 0xD2 }, // (Offset,Value)-Pair #4 + + // XGetDeviceChanges+0x42 : or edx, edi + { 0x42, 0x0B }, // (Offset,Value)-Pair #5 + { 0x43, 0xD7 }, // (Offset,Value)-Pair #6 + + // XGetDeviceChanges+0x51 : mov cl, al + { 0x51, 0x8A }, // (Offset,Value)-Pair #7 + { 0x52, 0xC8 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * XInputOpen +// ****************************************************************** +SOOVPA<11> XInputOpen_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputOpen+0x20 : jmp +0x0B + { 0x20, 0xEB }, // (Offset,Value)-Pair #1 + { 0x21, 0x0B }, // (Offset,Value)-Pair #2 + + // XInputOpen+0x29 : jnz +0x3D + { 0x29, 0x75 }, // (Offset,Value)-Pair #3 + { 0x2A, 0x3D }, // (Offset,Value)-Pair #4 + + // XInputOpen+0x4A : add edx, 0x10 + { 0x4A, 0x83 }, // (Offset,Value)-Pair #5 + { 0x4B, 0xC2 }, // (Offset,Value)-Pair #6 + { 0x4C, 0x10 }, // (Offset,Value)-Pair #7 + + // XInputOpen+0x66 : jmp +0x09 + { 0x66, 0xEB }, // (Offset,Value)-Pair #8 + { 0x67, 0x09 }, // (Offset,Value)-Pair #9 + + // XInputOpen+0x68 : push 0x57 + { 0x68, 0x6A }, // (Offset,Value)-Pair #10 + { 0x69, 0x57 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * XID_fCloseDevice +// ****************************************************************** +SOOVPA<10> XID_fCloseDevice_1_0_3911 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XREF_FCLOSEDEVICE, // XRef Is Saved + 0, // XRef Not Used + + { + // XID_fCloseDevice+0x19 : jz +0x5C + { 0x19, 0x74 }, // (Offset,Value)-Pair #1 + { 0x1A, 0x5C }, // (Offset,Value)-Pair #2 + + // XID_fCloseDevice+0x1B : cmp [esi+0x00A3], 1 + { 0x1B, 0x80 }, // (Offset,Value)-Pair #3 + { 0x1D, 0xA3 }, // (Offset,Value)-Pair #4 + { 0x21, 0x01 }, // (Offset,Value)-Pair #5 + + // XID_fCloseDevice+0x91 : mov [esi+0x00A4], eax + { 0x95, 0x89 }, // (Offset,Value)-Pair #6 + { 0x96, 0x86 }, // (Offset,Value)-Pair #7 + { 0x97, 0xA4 }, // (Offset,Value)-Pair #8 + + // XID_fCloseDevice+0xA3 : leave; retn + { 0xA3, 0xC9 }, // (Offset,Value)-Pair #9 + { 0xA4, 0xC3 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XInputClose +// ****************************************************************** +SOOVPA<8> XInputClose_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, + + { + // XInputClose+0x05 : call [fCloseDevice] + { 0x05, XREF_FCLOSEDEVICE }, // (Offset,Value)-Pair #1 + + // XInputClose+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 + + // XInputClose+0x04 : call [fCloseDevice] + { 0x04, 0xE8 }, // (Offset,Value)-Pair #6 + + // XInputClose+0x09 : retn 0x04 + { 0x09, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities +// ****************************************************************** +SOOVPA<14> XInputGetCapabilities_1_0_3911 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputGetCapabilities+0x03 : sub esp, 0x48 + { 0x03, 0x83 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x48 }, // (Offset,Value)-Pair #3 + + // XInputGetCapabilities+0x24 : test byte ptr [esi+4], 2 + { 0x24, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x25, 0x46 }, // (Offset,Value)-Pair #5 + { 0x26, 0x04 }, // (Offset,Value)-Pair #6 + { 0x27, 0x02 }, // (Offset,Value)-Pair #7 + + // XInputGetCapabilities+0x3A : stosb + { 0x3A, 0xAA }, // (Offset,Value)-Pair #8 + + // XInputGetCapabilities+0x8A : mov [ebp+var_48], 0x30 + { 0x8A, 0xC6 }, // (Offset,Value)-Pair #9 + { 0x8B, 0x45 }, // (Offset,Value)-Pair #10 + { 0x8C, 0xB8 }, // (Offset,Value)-Pair #11 + { 0x8D, 0x30 }, // (Offset,Value)-Pair #12 + + // XInputGetCapabilities+0xFB : cmp [eax], ebx + { 0xFB, 0x39 }, // (Offset,Value)-Pair #13 + { 0xFC, 0x18 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * XInputGetState +// ****************************************************************** +SOOVPA<13> XInputGetState_1_0_3911 = +{ + 0, // Large == 0 + 13, // Count == 13 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputGetState+0x0E : cmp byte ptr [edx+0x0A3], 1 + { 0x0E, 0x80 }, // (Offset,Value)-Pair #1 + { 0x0F, 0xBA }, // (Offset,Value)-Pair #2 + { 0x10, 0xA3 }, // (Offset,Value)-Pair #3 + { 0x14, 0x01 }, // (Offset,Value)-Pair #4 + + // XInputGetState+0x17 : push 0x57 + { 0x17, 0x6A }, // (Offset,Value)-Pair #5 + { 0x18, 0x57 }, // (Offset,Value)-Pair #6 + + // XInputGetState+0x1A : jmp +0x46 + { 0x1A, 0xEB }, // (Offset,Value)-Pair #7 + { 0x1B, 0x46 }, // (Offset,Value)-Pair #8 + + // XInputGetState+0x28 : mov ebx, 0x048F + { 0x28, 0xBB }, // (Offset,Value)-Pair #9 + { 0x29, 0x8F }, // (Offset,Value)-Pair #10 + { 0x2A, 0x04 }, // (Offset,Value)-Pair #11 + + // XInputGetState+0x6E : retn 8 + { 0x6E, 0xC2 }, // (Offset,Value)-Pair #12 + { 0x6F, 0x08 }, // (Offset,Value)-Pair #13 + } +}; + +// ****************************************************************** +// * XInputSetState +// ****************************************************************** +SOOVPA<12> XInputSetState_1_0_3911 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputSetState+0x04 : lea eax, [ecx+0x0A3] + { 0x04, 0x8D }, // (Offset,Value)-Pair #1 + { 0x05, 0x81 }, // (Offset,Value)-Pair #2 + { 0x06, 0xA3 }, // (Offset,Value)-Pair #3 + + // XInputSetState+0x0F : push 0x57 + { 0x0F, 0x6A }, // (Offset,Value)-Pair #4 + { 0x10, 0x57 }, // (Offset,Value)-Pair #5 + + // XInputSetState+0x12 : jmp +0x21 + { 0x12, 0xEB }, // (Offset,Value)-Pair #6 + { 0x13, 0x21 }, // (Offset,Value)-Pair #7 + + // XInputSetState+0x2D : mov [edx+0x41], al + { 0x2D, 0x88 }, // (Offset,Value)-Pair #8 + { 0x2E, 0x42 }, // (Offset,Value)-Pair #9 + { 0x2F, 0x41 }, // (Offset,Value)-Pair #10 + + // XInputSetState+0x35 : retn 0x08 + { 0x35, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x36, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * SetThreadPriorityBoost +// ****************************************************************** +SOOVPA<10> SetThreadPriorityBoost_1_0_3911 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // SetThreadPriorityBoost+0x0D : push [ebp+0x08] + { 0x0D, 0xFF }, // (Offset,Value)-Pair #1 + { 0x0E, 0x75 }, // (Offset,Value)-Pair #2 + { 0x0F, 0x08 }, // (Offset,Value)-Pair #3 + + // SetThreadPriorityBoost+0x18 : jl +0x20 + { 0x18, 0x7C }, // (Offset,Value)-Pair #4 + { 0x19, 0x20 }, // (Offset,Value)-Pair #5 + + // SetThreadPriorityBoost+0x1F : setnz al + { 0x1F, 0x0F }, // (Offset,Value)-Pair #6 + { 0x20, 0x95 }, // (Offset,Value)-Pair #7 + { 0x21, 0xC0 }, // (Offset,Value)-Pair #8 + + // SetThreadPriorityBoost+0x2C : mov ecx, [ebp+0x08] + { 0x2C, 0x8B }, // (Offset,Value)-Pair #9 + { 0x2D, 0x4D }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * GetThreadPriority +// ****************************************************************** +SOOVPA<10> GetThreadPriority_1_0_3911 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // GetThreadPriority+0x0D : push [ebp+0x08] + { 0x0D, 0xFF }, // (Offset,Value)-Pair #1 + { 0x0E, 0x75 }, // (Offset,Value)-Pair #2 + { 0x0F, 0x08 }, // (Offset,Value)-Pair #3 + + // GetThreadPriority+0x18 : jl +0x2B + { 0x18, 0x7C }, // (Offset,Value)-Pair #4 + { 0x19, 0x2B }, // (Offset,Value)-Pair #5 + + // GetThreadPriority+0x2F : cmp esi, 0xFFFFFFF0 + { 0x2F, 0x83 }, // (Offset,Value)-Pair #6 + { 0x30, 0xFE }, // (Offset,Value)-Pair #7 + { 0x31, 0xF0 }, // (Offset,Value)-Pair #8 + + // GetThreadPriority+0x37 : mov ecx, [ebp+0x08] + { 0x37, 0x8B }, // (Offset,Value)-Pair #9 + { 0x38, 0x4D }, // (Offset,Value)-Pair #10 + } +}; + +//// ****************************************************************** +//// * XGetDevices +//// ****************************************************************** +//SOOVPA<14> XGetDevices_1_0_3911 = +//{ +// 0, // Large == 0 +// 14, // Count == 14 +// +// XRefNotSaved, +// XRefNotUsed, +// +// { +// // XGetDevices+0x07 : mov edx, [esp+arg_0] +// { 0x07, 0x8B }, // (Offset,Value)-Pair #1 +// { 0x08, 0x54 }, // (Offset,Value)-Pair #2 +// { 0x09, 0x24 }, // (Offset,Value)-Pair #3 +// { 0x0A, 0x08 }, // (Offset,Value)-Pair #4 +// +// // XGetDevices+0x0D : and [edx+4], 0 +// { 0x0D, 0x83 }, // (Offset,Value)-Pair #5 +// { 0x0E, 0x62 }, // (Offset,Value)-Pair #6 +// { 0x0F, 0x04 }, // (Offset,Value)-Pair #7 +// { 0x10, 0x00 }, // (Offset,Value)-Pair #8 +// +// // XGetDevices+0x11 : mov cl, al +// { 0x11, 0x8A }, // (Offset,Value)-Pair #9 +// { 0x12, 0xC8 }, // (Offset,Value)-Pair #10 +// +// // XGetDevices+0x16 : call KfLowerIrql +// { 0x16, 0xFF }, // (Offset,Value)-Pair #11 +// { 0x17, 0x15 }, // (Offset,Value)-Pair #12 +// +// // XGetDevices+0x1F : retn 4 +// { 0x1F, 0xC2 }, // (Offset,Value)-Pair #13 +// { 0x20, 0x04 }, // (Offset,Value)-Pair #14 +// } +//}; + +// ****************************************************************** +// * CreateFiber +// ****************************************************************** +SOOVPA<11> CreateFiber_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // CreateFiber+0x11 : mov ecx, 0x3000 + { 0x11, 0xB9 }, + { 0x12, 0x00 }, + { 0x13, 0x30 }, + { 0x14, 0x00 }, + { 0x15, 0x00 }, + + // CreateFiber+0x2A : call ds:MmCreateKernelStack + { 0x2A, 0xFF }, + { 0x2B, 0x15 }, + { 0x2C, 0xF8 }, + { 0x2D, 0xD1 }, + { 0x2E, 0x1E }, + { 0x2F, 0x00 } + } +}; + +// ****************************************************************** +// * DeleteFiber +// ****************************************************************** +SOOVPA<9> DeleteFiber_1_0_3911 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // DeleteFiber+0x0A : call ds:MmDeleteKernelStack + { 0x0A, 0xFF }, + { 0x0B, 0x15 }, + { 0x0C, 0xFC }, + { 0x0D, 0xD1 }, + { 0x0E, 0x1E }, + { 0x0F, 0x00 }, + + // DeleteFiber+0x10 : retn 4 + { 0x10, 0xC2 }, + { 0x11, 0x04 }, + { 0x12, 0x00 }, + } +}; + +// ****************************************************************** +// * SwitchToFiber +// ****************************************************************** +SOOVPA<8> SwitchToFiber_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0x64 }, + { 0x0E, 0x44 }, + { 0x16, 0xFF }, + { 0x1E, 0x91 }, + { 0x26, 0x61 }, + { 0x31, 0x64 }, + { 0x36, 0x00 }, + { 0x3E, 0x00 }, + } +}; + +// ****************************************************************** +// * ConvertThreadToFiber +// ****************************************************************** +SOOVPA<7> ConvertThreadToFiber_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x64 }, + { 0x0C, 0x8B }, + { 0x13, 0x8D }, + { 0x1A, 0x01 }, + { 0x21, 0x8B }, + { 0x28, 0x89 }, + { 0x31, 0x8B }, + } +}; + +//// ****************************************************************** +//// * XInputGetCapabilities +//// ****************************************************************** +//SOOVPA<14> XInputGetCapabilities_1_0_3911 = +//{ +// 0, // Large == 0 +// 14, // Count == 14 +// +// XRefNotSaved, +// XRefNotUsed, +// +// { +// // XInputGetCapabilities+0x03 : sub esp, 0x48 +// { 0x03, 0x83 }, // (Offset,Value)-Pair #1 +// { 0x04, 0xEC }, // (Offset,Value)-Pair #2 +// { 0x05, 0x48 }, // (Offset,Value)-Pair #3 +// +// // XInputGetCapabilities+0x24 : test byte ptr [esi+4], 2 +// { 0x24, 0xF6 }, // (Offset,Value)-Pair #4 +// { 0x25, 0x46 }, // (Offset,Value)-Pair #5 +// { 0x26, 0x04 }, // (Offset,Value)-Pair #6 +// { 0x27, 0x02 }, // (Offset,Value)-Pair #7 +// +// // XInputGetCapabilities+0x3A : stosb +// { 0x3A, 0xAA }, // (Offset,Value)-Pair #8 +// +// // XInputGetCapabilities+0x8A : mov [ebp+var_48], 0x30 +// { 0x8A, 0xC6 }, // (Offset,Value)-Pair #9 +// { 0x8B, 0x45 }, // (Offset,Value)-Pair #10 +// { 0x8C, 0xB8 }, // (Offset,Value)-Pair #11 +// { 0x8D, 0x30 }, // (Offset,Value)-Pair #12 +// +// // XInputGetCapabilities+0xFB : cmp [eax], ebx +// { 0xFB, 0x39 }, // (Offset,Value)-Pair #13 +// { 0xFC, 0x18 }, // (Offset,Value)-Pair #14 +// } +//}; + + +// ****************************************************************** +// * SignalObjectAndWait +// ****************************************************************** +SOOVPA<8> SignalObjectAndWait_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x75 }, + { 0x12, 0x8B }, + { 0x19, 0x01 }, + { 0x26, 0x85 }, + { 0x2B, 0x7D }, + { 0x34, 0x00 }, + { 0x3F, 0x83 }, + { 0x46, 0x00 }, + } +}; + +// ****************************************************************** +// * PulseEvent +// ****************************************************************** +SOOVPA<11> PulseEvent_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // PulseEvent+0x00 : push 0 + { 0x00, 0x6A }, + { 0x01, 0x00 }, + // PulseEvent+0x02 : push [esp+8] + { 0x02, 0xFF }, + { 0x03, 0x74 }, + { 0x04, 0x24 }, + { 0x05, 0x08 }, + // PulseEvent+0x06 : call ds:NtPulseEvent + { 0x06, 0xFF }, + { 0x07, 0x15 }, + { 0x08, 0x54 }, + // PulseEvent+0x12 : test eax, eax + { 0x0C, 0x85 }, + { 0x0D, 0xC0 }, + } +}; + +// ****************************************************************** +// * QueueUserAPC +// ****************************************************************** +SOOVPA<7> QueueUserAPC_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x74 }, + { 0x08, 0x24 }, + { 0x0F, 0xFF }, + { 0x12, 0x18 }, + { 0x19, 0x33 }, + { 0x1C, 0xC0 }, + { 0x21, 0xC1 }, + } +}; + +// ****************************************************************** +// * lstrcmpiW +// ****************************************************************** +SOOVPA<8> lstrcmpiW_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x56 }, + { 0x0F, 0x01 }, + { 0x10, 0xE8 }, + { 0x19, 0x39 }, + { 0x22, 0x0E }, + { 0x2D, 0x59 }, + { 0x34, 0xEB }, + { 0x3D, 0x03 }, + } +}; + +// ****************************************************************** +// * XMountAlternateTitleA +// ****************************************************************** +SOOVPA<7> XMountAlternateTitleA_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x0F }, + { 0x3E, 0x56 }, + { 0x5E, 0xFF }, + { 0x7E, 0x8D }, + { 0x9E, 0x50 }, + { 0xBE, 0x66 }, + { 0xDE, 0xF0 }, + } +}; + +// ****************************************************************** +// * XUnmountAlternateTitleA +// ****************************************************************** +SOOVPA<7> XUnmountAlternateTitleA_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0x65 }, + { 0x16, 0xFF }, + { 0x23, 0x83 }, + { 0x2E, 0x45 }, + { 0x3A, 0x50 }, + { 0x46, 0x0B }, + { 0x52, 0x50 }, + } +}; + +// ****************************************************************** +// * XMountMUA +// ****************************************************************** +SOOVPA<7> XMountMUA_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x0C }, + { 0x3E, 0x66 }, + { 0x61, 0x85 }, + { 0x7E, 0x8D }, + { 0xA2, 0x0F }, + { 0xBE, 0x50 }, + { 0xDE, 0x74 }, + } +}; + +// ****************************************************************** +// * CloseHandle +// ****************************************************************** +SOOVPA<8> CloseHandle_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x24 }, + { 0x03, 0x04 }, + { 0x0A, 0x85 }, + { 0x0B, 0xC0 }, + { 0x0E, 0x33 }, + { 0x12, 0x08 }, + { 0x19, 0x33 }, + { 0x1A, 0xC0 }, + } +}; + +// ****************************************************************** +// * ExitThread +// ****************************************************************** +SOOVPA<5> ExitThread_1_0_3911 = +{ + 0, // Large == 0 + 5, // Count == 5 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x00 }, + { 0x07, 0xFF }, + { 0x08, 0x74 }, + { 0x0A, 0x04 }, + { 0x11, 0xCC }, + } +}; + +// ****************************************************************** +// * VirtualAlloc +// ****************************************************************** +SOOVPA<7> VirtualAlloc_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x75 }, + { 0x0A, 0x75 }, + { 0x10, 0x45 }, + { 0x19, 0x85 }, + { 0x1C, 0x05 }, + { 0x22, 0x50 }, + { 0x28, 0x33 }, + } +}; + +// ****************************************************************** +// * VirtualFree +// ****************************************************************** +SOOVPA<7> VirtualFree_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0x80 }, + { 0x0E, 0x07 }, + { 0x16, 0xFF }, + { 0x1E, 0x45 }, + { 0x27, 0x85 }, + { 0x2E, 0xEB }, + { 0x36, 0x33 }, + } +}; + +// ****************************************************************** +// * XLaunchNewImageA +// ****************************************************************** +SOOVPA<8> XLaunchNewImageA_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x80 }, + { 0x3E, 0xC0 }, + { 0x5E, 0xFF }, + { 0x7E, 0xFC }, + { 0x9E, 0x08 }, + { 0xBE, 0x50 }, + { 0xDE, 0x05 }, + { 0xFE, 0x85 }, + } +}; + +// ****************************************************************** +// * XGetLaunchInfo +// ****************************************************************** +SOOVPA<7> XGetLaunchInfo_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, + { 0x18, 0x15 }, + { 0x25, 0x8B }, + { 0x32, 0x30 }, + { 0x3F, 0x00 }, + { 0x4C, 0x83 }, + { 0x59, 0x5E }, + } +}; + +// ****************************************************************** +// * XGetSectionHandleA +// 558BEC83EC10538B1D........5657FF75088D45F050FFD38B351C0101008B3D +// ****************************************************************** +SOOVPA<12> XGetSectionHandleA_1_0_3911 = +{ + 0, // Large == 0 + 12, // Count == 0 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x55 }, + { 0x01, 0x8B }, + { 0x02, 0xEC }, + { 0x03, 0x83 }, + { 0x04, 0xEC }, + { 0x05, 0x10 }, + { 0x06, 0x53 }, + { 0x07, 0x8B }, + { 0x08, 0x1D }, + + { 0x0D, 0x56 }, + { 0x0E, 0x57 }, + { 0x0F, 0xFF } + } +}; + +// ****************************************************************** +// * XLoadSectionByHandle +// 568B74240856FF15........85C07D0A50E8........33C0EB038B46045EC204 +// ****************************************************************** +SOOVPA<11> XLoadSectionByHandle_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // XLoadSectionByHandle+0x01 : mov esi, [esp+4+arg_0] + { 0x01, 0x8B }, + { 0x02, 0x74 }, + { 0x03, 0x24 }, + { 0x04, 0x08 }, + + // XLoadSectionByHandle+0x0C : test eax, eax + { 0x0C, 0x85 }, + { 0x0D, 0xC0 }, + + // XLoadSectionByHandle+0x1A : mov eax, [esi+4] + { 0x1A, 0x8B }, + { 0x1B, 0x46 }, + { 0x1C, 0x04 }, + + // XLoadSectionByHandle+0x1E : retn 4 + { 0x1E, 0xC2 }, + { 0x1F, 0x04 } + } +}; + +// ****************************************************************** +// * XFreeSectionByHandle +// FF742404FF15........85C07D0A50E8........33C0EB0333C040C20400.... +// ****************************************************************** +SOOVPA<11> XFreeSectionByHandle_1_0_3911 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XRefNotSaved, + XRefNotUsed, + + { + // XFreeSectionByHandle+0x00 : push esp + { 0x00, 0xFF }, + { 0x01, 0x74 }, + { 0x02, 0x24 }, + { 0x03, 0x04 }, + + // XFreeSectionByHandle+0x0A : test eax, eax + { 0x0A, 0x85 }, + { 0x0B, 0xC0 }, + + // XFreeSectionByHandle+0x18 : xor eax, eax + { 0x18, 0x33 }, + { 0x19, 0xC0 }, + + // XFreeSectionByHandle+0x1A : inc eax + { 0x1A, 0x40 }, + + // XFreeSectionByHandle+0x1B : retn 4 + { 0x1B, 0xC2 }, + { 0x1C, 0x04 } + } +}; + +// ****************************************************************** +// * XAutoPowerDownResetTimer +// ****************************************************************** +SOOVPA<6> XAutoPowerDownResetTimer_1_0_3911 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x02, 0x59 }, + { 0x08, 0x51 }, + { 0x0A, 0x00 }, + { 0x0E, 0x50 }, + { 0x14, 0xFF }, + { 0x1A, 0xC3 }, + } +}; + +// ****************************************************************** +// * XMountMURootA +// ****************************************************************** +SOOVPA<7> XMountMURootA_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x0C }, + { 0x3E, 0x00 }, + { 0x61, 0x8B }, + { 0x7E, 0x00 }, + { 0x9E, 0x00 }, + { 0xBE, 0xFF }, + { 0xDE, 0xFF }, + } +}; + +// ****************************************************************** +// * XMountUtilityDrive +// ****************************************************************** +SOOVPA<7> XMountUtilityDrive_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1C, 0x85 }, + { 0x3A, 0x8D }, + { 0x58, 0x10 }, + { 0x76, 0xF8 }, + { 0x94, 0xF8 }, + { 0xB3, 0x8B }, + { 0xD0, 0xC0 }, + } +}; + +// ****************************************************************** +// * GetFileAttributesA +// ****************************************************************** +SOOVPA<7> GetFileAttributesA_1_0_3911 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x08 }, + { 0x13, 0x8D }, + { 0x1C, 0x50 }, + { 0x26, 0xFF }, + { 0x30, 0x15 }, + { 0x3A, 0x45 }, + { 0x44, 0x83 }, + } +}; + +// ****************************************************************** +// * ReadFileEx@20 +// ****************************************************************** +SOOVPA<8> ReadFileEx_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x48 }, + { 0x14, 0x8D }, + { 0x1F, 0xFF }, + { 0x2A, 0xFF }, + { 0x2F, 0x00 }, + { 0x35, 0x00 }, + { 0x40, 0x50 }, + { 0x4B, 0xC0 }, + } +}; + +// ****************************************************************** +// * WriteFileEx +// ****************************************************************** +SOOVPA<8> WriteFileEx_1_0_3911 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x48 }, + { 0x14, 0x8D }, + { 0x1F, 0xFF }, + { 0x2A, 0xFF }, + { 0x2F, 0xFC }, + { 0x35, 0x00 }, + { 0x40, 0x50 }, + { 0x4B, 0xC0 }, + } +}; + +// ****************************************************************** +// * XAPI_1_0_3911 +// ****************************************************************** +OOVPATable XAPI_1_0_3911[] = +{ + // GetExitCodeThread + { + (OOVPA*)&GetExitCodeThread_1_0_3911, + + XTL::EmuGetExitCodeThread, + + #ifdef _DEBUG_TRACE + "EmuGetExitCodeThread" + #endif + }, + //*/ + // XInitDevices + { + (OOVPA*)&XInitDevices_1_0_3911, + + XTL::EmuXInitDevices, + + #ifdef _DEBUG_TRACE + "EmuXInitDevices" + #endif + }, + /* Too High Level + // CreateMutex + { + (OOVPA*)&CreateMutex_1_0_3911, + + XTL::EmuCreateMutex, + + #ifdef _DEBUG_TRACE + "EmuCreateMutex" + #endif + }, + //*/ + /* Too High Level */ + // CreateThread + /* { + (OOVPA*)&CreateThread_1_0_3911, + + XTL::EmuCreateThread, + + #ifdef _DEBUG_TRACE + "EmuCreateThread" + #endif + },*/ + // SetThreadPriority + { + (OOVPA*)&SetThreadPriority_1_0_3911, + + XTL::EmuSetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriority" + #endif + }, + //*/ + // GetTimeZoneInformation + { + (OOVPA*)&GetTimeZoneInformation_1_0_3911, + + XTL::EmuGetTimeZoneInformation, + + #ifdef _DEBUG_TRACE + "GetTimeZoneInformation" + #endif + }, + // XRegisterThreadNotifyRoutine + { + (OOVPA*)&XRegisterThreadNotifyRoutine_1_0_3911, + + XTL::EmuXRegisterThreadNotifyRoutine, + + #ifdef _DEBUG_TRACE + "EmuXRegisterThreadNotifyRoutine" + #endif + }, + /* + // XCalculateSignatureBegin + { + (OOVPA*)&XCalculateSignatureBegin_1_0_3911, + + XTL::EmuXCalculateSignatureBegin, + + #ifdef _DEBUG_TRACE + "EmuXCalculateSignatureBegin" + #endif + }, + */ + // XGetDevices + { + (OOVPA*)&XGetDevices_1_0_3911, + + XTL::EmuXGetDevices, + + #ifdef _DEBUG_TRACE + "EmuXGetDevices" + #endif + }, + // XGetDeviceChanges + { + (OOVPA*)&XGetDeviceChanges_1_0_3911, + + XTL::EmuXGetDeviceChanges, + + #ifdef _DEBUG_TRACE + "EmuXGetDeviceChanges" + #endif + }, + // XInputOpen + { + (OOVPA*)&XInputOpen_1_0_3911, + + XTL::EmuXInputOpen, + + #ifdef _DEBUG_TRACE + "EmuXInputOpen" + #endif + }, + // XID_fCloseDevice + { + (OOVPA*)&XID_fCloseDevice_1_0_3911, 0, + + #ifdef _DEBUG_TRACE + "XID_fCloseDevice (XREF)" + #endif + }, + // XInputClose + { + (OOVPA*)&XInputClose_1_0_3911, + + XTL::EmuXInputClose, + + #ifdef _DEBUG_TRACE + "EmuXInputClose" + #endif + }, + // XInputGetCapabilities + { + (OOVPA*)&XInputGetCapabilities_1_0_3911, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // XInputGetState + { + (OOVPA*)&XInputGetState_1_0_3911, + + XTL::EmuXInputGetState, + + #ifdef _DEBUG_TRACE + "EmuXInputGetState" + #endif + }, + // XInputSetState + { + (OOVPA*)&XInputSetState_1_0_3911, + + XTL::EmuXInputSetState, + + #ifdef _DEBUG_TRACE + "EmuXInputSetState" + #endif + }, + // SetThreadPriorityBoost + { + (OOVPA*)&SetThreadPriorityBoost_1_0_3911, + + XTL::EmuSetThreadPriorityBoost, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriorityBoost" + #endif + }, + // GetThreadPriority + { + (OOVPA*)&GetThreadPriority_1_0_3911, + + XTL::EmuGetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuGetThreadPriority" + #endif + }, + // XGetDevices + { + (OOVPA*)&XGetDevices_1_0_3911, + + XTL::EmuXGetDevices, + + #ifdef _DEBUG_TRACE + "EmuXGetDevices" + #endif + }, + // CreateFiber + { + (OOVPA*)&CreateFiber_1_0_3911, + + XTL::EmuCreateFiber, + + #ifdef _DEBUG_TRACE + "EmuCreateFiber" + #endif + }, + // DeleteFiber + { + (OOVPA*)&DeleteFiber_1_0_3911, + + XTL::EmuDeleteFiber, + + #ifdef _DEBUG_TRACE + "EmuDeleteFiber" + #endif + }, + // SwitchToFiber + { + (OOVPA*)&SwitchToFiber_1_0_3911, + + XTL::EmuSwitchToFiber, + + #ifdef _DEBUG_TRACE + "EmuSwitchToFiber" + #endif + }, + // ConvertThreadToFiber + { + (OOVPA*)&ConvertThreadToFiber_1_0_3911, + + XTL::EmuConvertThreadToFiber, + + #ifdef _DEBUG_TRACE + "EmuConvertThreadToFiber" + #endif + }, + // XInputGetCapabilities + { + (OOVPA*)&XInputGetCapabilities_1_0_3911, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // SignalObjectAndWait + { + (OOVPA*)&SignalObjectAndWait_1_0_3911, + + XTL::EmuSignalObjectAndWait, + + #ifdef _DEBUG_TRACE + "EmuSignalObjectAndWait" + #endif + }, + // PulseEvent + { + (OOVPA*)&PulseEvent_1_0_3911, + + XTL::EmuPulseEvent, + + #ifdef _DEBUG_TRACE + "EmuPulseEvent" + #endif + }, + // QueueUserAPC + { + (OOVPA*)&QueueUserAPC_1_0_3911, + + XTL::EmuQueueUserAPC, + + #ifdef _DEBUG_TRACE + "EmuQueueUserAPC" + #endif + }, + // lstrcmpiW + /*{ + (OOVPA*)&lstrcmpiW_1_0_3911, + + XTL::EmulstrcmpiW, + + #ifdef _DEBUG_TRACE + "EmulstrcmpiW" + #endif + },*/ + // XMountAlternateTitleA + { + (OOVPA*)&XMountAlternateTitleA_1_0_3911, + XTL::EmuXMountAlternateTitle, + + #ifdef _DEBUG_TRACE + "XMountAlternateTitleA" + #endif + }, + // XUnmountAlternateTitleA + { + (OOVPA*)&XUnmountAlternateTitleA_1_0_3911, + XTL::EmuXUnmountAlternateTitle, + + #ifdef _DEBUG_TRACE + "XUnmountAlternateTitleA" + #endif + }, + // XMountMUA + { + (OOVPA*)&XMountMUA_1_0_3911, + XTL::EmuXMountMUA, + + #ifdef _DEBUG_TRACE + "EmuXMountMUA" + #endif + }, + // XLaunchNewImageA + { + (OOVPA*)&XLaunchNewImageA_1_0_3911, + XTL::EmuXLaunchNewImage, + + #ifdef _DEBUG_TRACE + "EmuXLaunchNewImageA" + #endif + }, + // XGetLaunchInfo + { + (OOVPA*)&XGetLaunchInfo_1_0_3911, + XTL::EmuXGetLaunchInfo, + + #ifdef _DEBUG_TRACE + "EmuXGetLaunchInfo" + #endif + }, + // XAutoPowerDownResetTimer + { + (OOVPA*)&XAutoPowerDownResetTimer_1_0_3911, + + XTL::EmuXAutoPowerDownResetTimer, + + #ifdef _DEBUG_TRACE + "EmuXAutoPowerDownResetTimer" + #endif + }, + // XMountMURootA + { + (OOVPA*)&XMountMURootA_1_0_3911, + XTL::EmuXMountMURootA, + + #ifdef _DEBUG_TRACE + "EmuXMountMURootA" + #endif + }, + // XMountUtilityDrive + { + (OOVPA*)&XMountUtilityDrive_1_0_3911, + + XTL::EmuXMountUtilityDrive, + + #ifdef _DEBUG_TRACE + "EmuXMountUtilityDrive" + #endif + }, + // GetFileAttributesA + { + (OOVPA*)&GetFileAttributesA_1_0_3911, + XTL::EmuGetFileAttributesA, + + #ifdef _DEBUG_TRACE + "EmuGetFileAttributesA" + #endif + }, + // ReadFileEx + /*{ + (OOVPA*)&ReadFileEx_1_0_3911, + XTL::EmuReadFileEx, + + #ifdef _DEBUG_TRACE + "EmuReadFileEx" + #endif + }, + // WriteFileEx + { + (OOVPA*)&WriteFileEx_1_0_3911, + XTL::EmuWriteFileEx, + + #ifdef _DEBUG_TRACE + "EmuWriteFileEx" + #endif + },*/ + // CloseHandle + /*{ + (OOVPA*)&CloseHandle_1_0_3911, + XTL::EmuCloseHandle, + + #ifdef _DEBUG_TRACE + "CloseHandle" + #endif + },*/ + // ExitThread + /*{ + (OOVPA*)&ExitThread_1_0_3911, + XTL::EmuExitThread, + + #ifdef _DEBUG_TRACE + "ExitThread" + #endif + },*/ + // VirtualAlloc@16 + //{ + // (OOVPA*)&VirtualAlloc_1_0_3911, + // XTL::EmuVirtualAlloc, + + // #ifdef _DEBUG_TRACE + // "EmuVirtualAlloc" + // #endif + //}, + //// VirtualFree@12 + //{ + // (OOVPA*)&VirtualFree_1_0_3911, + // XTL::EmuVirtualFree, + + // #ifdef _DEBUG_TRACE + // "EmuVirtualFree" + // #endif + //}, +}; + +// ****************************************************************** +// * XAPI_1_0_3911_SIZE +// ****************************************************************** +uint32 XAPI_1_0_3911_SIZE = sizeof(XAPI_1_0_3911); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4034.h b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4034.h new file mode 100644 index 000000000..359eeef03 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4034.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.4034.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_1_0_4034_H +#define XAPI_1_0_4034_H + +#include "OOVPA.h" + +extern OOVPATable XAPI_1_0_4034[]; +extern uint32 XAPI_1_0_4034_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4034.inl b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4034.inl new file mode 100644 index 000000000..80f6c5aa5 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4034.inl @@ -0,0 +1,437 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4034.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 +// * +// ****************************************************************** + +/* + +// ****************************************************************** +// * XInputGetCapabilities +// ****************************************************************** +SOOVPA<14> XInputGetCapabilities_1_0_4361 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputGetCapabilities+0x03 : sub esp, 0x48 + { 0x03, 0x83 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x48 }, // (Offset,Value)-Pair #3 + + // XInputGetCapabilities+0x24 : test byte ptr [esi+4], 2 + { 0x24, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x25, 0x46 }, // (Offset,Value)-Pair #5 + { 0x26, 0x04 }, // (Offset,Value)-Pair #6 + { 0x27, 0x02 }, // (Offset,Value)-Pair #7 + + // XInputGetCapabilities+0x3A : stosb + { 0x3A, 0xAA }, // (Offset,Value)-Pair #8 + + // XInputGetCapabilities+0x7D : mov [ebp+var_48], 0x30 + { 0x7D, 0xC6 }, // (Offset,Value)-Pair #9 + { 0x7E, 0x45 }, // (Offset,Value)-Pair #10 + { 0x7F, 0xB8 }, // (Offset,Value)-Pair #11 + { 0x80, 0x30 }, // (Offset,Value)-Pair #12 + + // XInputGetCapabilities+0xEE : cmp [eax], ebx + { 0xEE, 0x39 }, // (Offset,Value)-Pair #13 + { 0xEF, 0x18 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * XInputGetState +// ****************************************************************** +SOOVPA<12> XInputGetState_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputGetState+0x0E : mov ecx, [edx+0x0A3] + { 0x0E, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0F, 0x8A }, // (Offset,Value)-Pair #2 + { 0x10, 0xA3 }, // (Offset,Value)-Pair #3 + + // XInputGetState+0x1D : push 0x57 + { 0x1D, 0x6A }, // (Offset,Value)-Pair #4 + { 0x1E, 0x57 }, // (Offset,Value)-Pair #5 + + // XInputGetState+0x20 : jmp +0x3E + { 0x20, 0xEB }, // (Offset,Value)-Pair #6 + { 0x21, 0x3E }, // (Offset,Value)-Pair #7 + + // XInputGetState+0x2E : mov ebx, 0x048F + { 0x2E, 0xBB }, // (Offset,Value)-Pair #8 + { 0x2F, 0x8F }, // (Offset,Value)-Pair #9 + { 0x30, 0x04 }, // (Offset,Value)-Pair #10 + + // XInputGetState+0x6C : retn 8 + { 0x6C, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x6D, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CreateThread +// ****************************************************************** +SOOVPA<8> CreateThread_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // CreateThread+0x0A : mov eax, ds:10130h + { 0x0A, 0xA1 }, // (Offset,Value)-Pair #1 + { 0x0B, 0x30 }, // (Offset,Value)-Pair #2 + { 0x0C, 0x01 }, // (Offset,Value)-Pair #3 + + // CreateThread+0x1C : and ecx, 0xFFFFFF01 + { 0x1C, 0x81 }, // (Offset,Value)-Pair #4 + { 0x1D, 0xE1 }, // (Offset,Value)-Pair #5 + { 0x1E, 0x01 }, // (Offset,Value)-Pair #6 + + // CreateThread+0x6B : retn 0x18 + { 0x6B, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x6C, 0x18 } // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * CloseHandle +// ****************************************************************** +SOOVPA<10> CloseHandle_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // CloseHandle+0x00 : push [esp+4] + { 0x00, 0xFF }, // (Offset,Value)-Pair #1 + { 0x01, 0x74 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // CloseHandle+0x04 : call ds:[addr] + { 0x04, 0xFF }, // (Offset,Value)-Pair #5 + { 0x05, 0x15 }, // (Offset,Value)-Pair #6 + + // CloseHandle+0x11 : jmp +0x08 + { 0x11, 0xEB }, // (Offset,Value)-Pair #7 + { 0x12, 0x08 }, // (Offset,Value)-Pair #8 + + // CloseHandle+0x1B : retn 4 + { 0x1B, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1C, 0x04 } // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XapiInitProcess +// ****************************************************************** +SOOVPA<7> XapiInitProcess_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + // XapiInitProcess+0x00 : sub esp, 30h + { 0x05, 0x30 }, // (Offset,Value)-Pair #1 + + // XapiInitProcess+0x0F : push 0x0C + { 0x0F, 0x6A }, // (Offset,Value)-Pair #2 + { 0x10, 0x0C }, // (Offset,Value)-Pair #3 + + // XapiInitProcess+0x17 : repe stosd + { 0x17, 0xF3 }, // (Offset,Value)-Pair #4 + { 0x18, 0xAB }, // (Offset,Value)-Pair #5 + + // XapiInitProcess+0x42 : jnz +0x0B + { 0x42, 0x75 }, // (Offset,Value)-Pair #6 + { 0x43, 0x0B }, // (Offset,Value)-Pair #7 + } +}; +*/ + +// ****************************************************************** +// * XAPI_1_0_4034 +// ****************************************************************** +OOVPATable XAPI_1_0_4034[] = +{ + // XInitDevices (* unchanged since 3911 *) + { + (OOVPA*)&XInitDevices_1_0_3911, + + XTL::EmuXInitDevices, + + #ifdef _DEBUG_TRACE + "EmuXInitDevices" + #endif + }, + // XGetDevices (* unchanged since 3911 *) + { + (OOVPA*)&XGetDevices_1_0_3911, + + XTL::EmuXGetDevices, + + #ifdef _DEBUG_TRACE + "EmuXGetDevices" + #endif + }, +/* These functions havent been rev'd yet (may be same as new/old) + // XInputOpen + { + (OOVPA*)&XInputOpen_1_0_4034, + + XTL::EmuXInputOpen, + + #ifdef _DEBUG_TRACE + "EmuXInputOpen" + #endif + }, + // XInputGetCapabilities + { + (OOVPA*)&XInputGetCapabilities_1_0_4361, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // XInputGetState + { + (OOVPA*)&XInputGetState_1_0_4361, + + XTL::EmuXInputGetState, + + #ifdef _DEBUG_TRACE + "EmuXInputGetState" + #endif + }, + */ + /* Too High Level + // CreateThread (* unchanged since 1.0.3911 *) + { + (OOVPA*)&CreateThread_1_0_3911, + + XTL::EmuCreateThread, + + #ifdef _DEBUG_TRACE + "EmuCreateThread" + #endif + }, + */ + /* + // CloseHandle (*???*) + { + (OOVPA*)&CloseHandle_1_0_(???), + + XTL::EmuCloseHandle, + + #ifdef _DEBUG_TRACE + "EmuCloseHandle" + #endif + }, + */ + //*/ + // CreateFiber (* unchanged since 3911 *) + { + (OOVPA*)&CreateFiber_1_0_3911, + + XTL::EmuCreateFiber, + + #ifdef _DEBUG_TRACE + "EmuCreateFiber" + #endif + }, + // DeleteFiber (* unchanged since 3911 *) + { + (OOVPA*)&DeleteFiber_1_0_3911, + + XTL::EmuDeleteFiber, + + #ifdef _DEBUG_TRACE + "EmuDeleteFiber" + #endif + }, + // GetTimeZoneInformation (* unchanged since 3911 *) + { + (OOVPA*)&GetTimeZoneInformation_1_0_3911, + + XTL::EmuGetTimeZoneInformation, + + #ifdef _DEBUG_TRACE + "GetTimeZoneInformation" + #endif + }, + // SetThreadPriority (* unchanged since 3911 *) + { + (OOVPA*)&SetThreadPriority_1_0_3911, + + XTL::EmuSetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriority" + #endif + }, + // SignalObjectAndWait (* unchanged since 3911 *) + { + (OOVPA*)&SignalObjectAndWait_1_0_3911, + + XTL::EmuSignalObjectAndWait, + + #ifdef _DEBUG_TRACE + "EmuSignalObjectAndWait" + #endif + }, + // QueueUserAPC (* unchanged since 3911 *) + { + (OOVPA*)&QueueUserAPC_1_0_3911, + + XTL::EmuQueueUserAPC, + + #ifdef _DEBUG_TRACE + "EmuQueueUserAPC" + #endif + }, + // XInputSetState (* unchanged since 3911 *) + { + (OOVPA*)&XInputSetState_1_0_3911, + + XTL::EmuXInputSetState, + + #ifdef _DEBUG_TRACE + "EmuXInputSetState" + #endif + }, + + // XRegisterThreadNotifyRoutine (* unchanged since 3911 *) + { + (OOVPA*)&XRegisterThreadNotifyRoutine_1_0_3911, + + XTL::EmuXRegisterThreadNotifyRoutine, + + #ifdef _DEBUG_TRACE + "EmuXRegisterThreadNotifyRoutine" + #endif + }, + // XGetDeviceChanges (* unchanged since 3911 *) + { + (OOVPA*)&XGetDeviceChanges_1_0_3911, + + XTL::EmuXGetDeviceChanges, + + #ifdef _DEBUG_TRACE + "EmuXGetDeviceChanges" + #endif + }, + // XID_fCloseDevice (* unchanged since 3911 *) + { + (OOVPA*)&XID_fCloseDevice_1_0_3911, 0, + + #ifdef _DEBUG_TRACE + "XID_fCloseDevice (XREF)" + #endif + }, + // XInputClose (* unchanged since 3911 *) + { + (OOVPA*)&XInputClose_1_0_3911, + + XTL::EmuXInputClose, + + #ifdef _DEBUG_TRACE + "EmuXInputClose" + #endif + }, + // XInputGetCapabilities (* unchanged since 3911 *) + { + (OOVPA*)&XInputGetCapabilities_1_0_3911, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // GetThreadPriority (* unchanged since 3911 *) + { + (OOVPA*)&GetThreadPriority_1_0_3911, + + XTL::EmuGetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuGetThreadPriority" + #endif + }, + // XInputOpen (* unchanged since 3911 *) + { + (OOVPA*)&XInputOpen_1_0_3911, + + XTL::EmuXInputOpen, + + #ifdef _DEBUG_TRACE + "EmuXInputOpen" + #endif + }, + // XInputGetState (* unchanged since 3911 *) + { + (OOVPA*)&XInputGetState_1_0_3911, + + XTL::EmuXInputGetState, + + #ifdef _DEBUG_TRACE + "EmuXInputGetState" + #endif + }, +}; + +// ****************************************************************** +// * XAPI_1_0_4034_SIZE +// ****************************************************************** +uint32 XAPI_1_0_4034_SIZE = sizeof(XAPI_1_0_4034); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4134.h b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4134.h new file mode 100644 index 000000000..a46cb8dfe --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4134.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.4134.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_1_0_4134_H +#define XAPI_1_0_4134_H + +#include "OOVPA.h" + +extern OOVPATable XAPI_1_0_4134[]; +extern uint32 XAPI_1_0_4134_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4134.inl b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4134.inl new file mode 100644 index 000000000..7131bbf6c --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4134.inl @@ -0,0 +1,678 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4134.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XGetDevices +// ****************************************************************** +SOOVPA<14> XGetDevices_1_0_4134 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // XGetDevices+0x07 : mov edx, [esp+arg_0] + { 0x07, 0x8B }, // (Offset,Value)-Pair #1 + { 0x08, 0x54 }, // (Offset,Value)-Pair #2 + { 0x09, 0x24 }, // (Offset,Value)-Pair #3 + { 0x0A, 0x08 }, // (Offset,Value)-Pair #4 + + // XGetDevices+0x0D : and [edx+4], 0 + { 0x0D, 0x83 }, // (Offset,Value)-Pair #5 + { 0x0E, 0x62 }, // (Offset,Value)-Pair #6 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #7 + { 0x10, 0x00 }, // (Offset,Value)-Pair #8 + + // XGetDevices+0x11 : mov cl, al + { 0x11, 0x8A }, // (Offset,Value)-Pair #9 + { 0x12, 0xC8 }, // (Offset,Value)-Pair #10 + + // XGetDevices+0x16 : call KfLowerIrql + { 0x16, 0xFF }, // (Offset,Value)-Pair #11 + { 0x17, 0x15 }, // (Offset,Value)-Pair #12 + + // XGetDevices+0x1F : retn 4 + { 0x1F, 0xC2 }, // (Offset,Value)-Pair #13 + { 0x20, 0x04 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * XInputOpen +// ****************************************************************** +SOOVPA<12> XInputOpen_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputOpen+0x13 : jmp +0x18 + { 0x13, 0xEB }, // (Offset,Value)-Pair #1 + { 0x14, 0x18 }, // (Offset,Value)-Pair #2 + + // XInputOpen+0x4A : add edx, 0x10 + { 0x4A, 0x83 }, // (Offset,Value)-Pair #3 + { 0x4B, 0xC2 }, // (Offset,Value)-Pair #4 + { 0x4C, 0x10 }, // (Offset,Value)-Pair #5 + + // XInputOpen+0x5B : jnz +0x06 + { 0x5B, 0x75 }, // (Offset,Value)-Pair #6 + { 0x5C, 0x06 }, // (Offset,Value)-Pair #7 + + // XInputOpen+0x68 : push 0x57 + { 0x68, 0x6A }, // (Offset,Value)-Pair #8 + { 0x69, 0x57 }, // (Offset,Value)-Pair #9 + + // XInputOpen+0x71 : leave + { 0x71, 0xC9 }, // (Offset,Value)-Pair #10 + + // XInputOpen+0x72 : retn 0x10 + { 0x72, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x73, 0x10 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetState +// ****************************************************************** +SOOVPA<12> XInputGetState_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputGetState+0x0E : cmp byte ptr [edx+0xA3], 1 + { 0x0E, 0x80 }, // (Offset,Value)-Pair #1 + { 0x0F, 0xBA }, // (Offset,Value)-Pair #2 + { 0x10, 0xA3 }, // (Offset,Value)-Pair #3 + + // XInputGetState+0x17 : push 0x57 + { 0x17, 0x6A }, // (Offset,Value)-Pair #4 + { 0x18, 0x57 }, // (Offset,Value)-Pair #5 + + // XInputGetState+0x1A : jmp +0x46 + { 0x1A, 0xEB }, // (Offset,Value)-Pair #6 + { 0x1B, 0x46 }, // (Offset,Value)-Pair #7 + + // XInputGetState+0x28 : mov ebx, 0x048F + { 0x28, 0xBB }, // (Offset,Value)-Pair #8 + { 0x29, 0x8F }, // (Offset,Value)-Pair #9 + { 0x2A, 0x04 }, // (Offset,Value)-Pair #10 + + // XInputGetState+0x6E : retn 8 + { 0x6E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x6F, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XMountUtilityDrive +// ****************************************************************** +SOOVPA<10> XMountUtilityDrive_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // XMountUtilityDrive+0x03 : sub esp, 0x0114 + { 0x03, 0x81 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x14 }, // (Offset,Value)-Pair #3 + { 0x06, 0x01 }, // (Offset,Value)-Pair #4 + + // XMountUtilityDrive+0x45 : push 0x0104 + { 0x45, 0x68 }, // (Offset,Value)-Pair #5 + { 0x46, 0x04 }, // (Offset,Value)-Pair #6 + { 0x47, 0x01 }, // (Offset,Value)-Pair #7 + + // XMountUtilityDrive+0xAA : lea eax, [ebp-0x10] + { 0xAA, 0x8D }, // (Offset,Value)-Pair #8 + { 0xAB, 0x45 }, // (Offset,Value)-Pair #9 + { 0xAC, 0xF0 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * QueryPerformanceCounter +// ****************************************************************** +SOOVPA<12> QueryPerformanceCounter_1_0_4134 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // QueryPerformanceCounter+0x04 : rdtsc + { 0x04, 0x0F }, // (Offset,Value)-Pair #1 + { 0x05, 0x31 }, // (Offset,Value)-Pair #2 + + // QueryPerformanceCounter+0x06 : mov [ecx], eax + { 0x06, 0x89 }, // (Offset,Value)-Pair #3 + { 0x07, 0x01 }, // (Offset,Value)-Pair #4 + + // QueryPerformanceCounter+0x08 : mov [ecx+4], eax + { 0x08, 0x89 }, // (Offset,Value)-Pair #5 + { 0x09, 0x51 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #7 + + // QueryPerformanceCounter+0x0B : xor eax, eax + { 0x0B, 0x33 }, // (Offset,Value)-Pair #8 + { 0x0C, 0xC0 }, // (Offset,Value)-Pair #9 + + // QueryPerformanceCounter+0x0D : inc eax + { 0x0D, 0x40 }, // (Offset,Value)-Pair #10 + + // QueryPerformanceCounter+0x0E : retn 0x04 + { 0x0E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * QueryPerformanceFrequency +// ****************************************************************** +SOOVPA<15> QueryPerformanceFrequency_1_0_4134 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XRefNotSaved, + XRefNotUsed, + + { + // QueryPerformanceFrequency+0x04 : and dword ptr [eax+4], 0 + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0x60 }, // (Offset,Value)-Pair #2 + { 0x06, 0x04 }, // (Offset,Value)-Pair #3 + { 0x07, 0x00 }, // (Offset,Value)-Pair #4 + + // QueryPerformanceFrequency+0x06 : mov dword ptr [eax], 0x2BB5C755 + { 0x08, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x09, 0x00 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x55 }, // (Offset,Value)-Pair #7 + { 0x0B, 0xC7 }, // (Offset,Value)-Pair #8 + { 0x0C, 0xB5 }, // (Offset,Value)-Pair #9 + { 0x0D, 0x2B }, // (Offset,Value)-Pair #10 + + // QueryPerformanceFrequency+0x0E : xor eax, eax + { 0x0E, 0x33 }, // (Offset,Value)-Pair #11 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #12 + + // QueryPerformanceFrequency+0x10 : inc eax + { 0x10, 0x40 }, // (Offset,Value)-Pair #13 + + // QueryPerformanceFrequency+0x11 : retn 0x04 + { 0x11, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x12, 0x04 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * XInputPoll +// ****************************************************************** +SOOVPA<10> XInputPoll_1_0_4134 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + 0, // XRef Is Used + + { + { 0x16, 0xF6 }, // (Offset,Value)-Pair #1 + { 0x17, 0x41 }, // (Offset,Value)-Pair #2 + { 0x18, 0x04 }, // (Offset,Value)-Pair #3 + { 0x19, 0x02 }, // (Offset,Value)-Pair #4 + + { 0x25, 0x39 }, // (Offset,Value)-Pair #5 + { 0x26, 0x70 }, // (Offset,Value)-Pair #6 + { 0x27, 0x04 }, // (Offset,Value)-Pair #7 + + { 0x3A, 0x83 }, // (Offset,Value)-Pair #8 + { 0x3B, 0xC0 }, // (Offset,Value)-Pair #9 + { 0x3C, 0x52 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * RtlDestroyHeap +// ****************************************************************** +SOOVPA<8> RtlDestroyHeap_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x10, 0x56 }, + { 0x22, 0x75 }, + { 0x34, 0xE0 }, + { 0x46, 0x67 }, + { 0x58, 0x75 }, + { 0x6A, 0xE0 }, + { 0x7C, 0x06 }, + { 0x8E, 0x00 }, + } +}; + +// ****************************************************************** +// * XMountMUA +// ****************************************************************** +SOOVPA<8> XMountMUA_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x22, 0x8A }, + { 0x3E, 0x89 }, + { 0x5E, 0x5C }, + { 0x7E, 0xF4 }, + { 0x9E, 0x50 }, + { 0xBE, 0xF8 }, + { 0xDE, 0x8D }, + { 0xFE, 0x09 }, + } +}; + +// ****************************************************************** +// * GetFileAttributesA +// ****************************************************************** +SOOVPA<7> GetFileAttributesA_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x08 }, + { 0x13, 0x8D }, + { 0x1C, 0x50 }, + { 0x26, 0xFF }, + { 0x30, 0x15 }, + { 0x3A, 0x45 }, + { 0x44, 0x83 }, + } +}; + +// ****************************************************************** +// * timeSetEvent +// ****************************************************************** +SOOVPA<7> timeSetEvent_1_0_4134 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x8D }, + { 0x3E, 0x89 }, + { 0x5E, 0x15 }, + { 0x7E, 0x3F }, + { 0x9E, 0x03 }, + { 0xBE, 0x32 }, + { 0xDE, 0x89 }, + } +}; + +// ****************************************************************** +// * timeKillEvent +// ****************************************************************** +SOOVPA<8> timeKillEvent_1_0_4134 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0E, 0x8B }, + { 0x1A, 0xC2 }, + { 0x28, 0x8D }, + { 0x36, 0x56 }, + { 0x44, 0x00 }, + { 0x52, 0x00 }, + { 0x60, 0x5E }, + { 0x6E, 0x00 }, + } +}; + +// ****************************************************************** +// * XAPI_1_0_4134 +// ****************************************************************** +OOVPATable XAPI_1_0_4134[] = +{ + // XInitDevices (* unchanged since 3911 *) + { + (OOVPA*)&XInitDevices_1_0_3911, + + XTL::EmuXInitDevices, + + #ifdef _DEBUG_TRACE + "EmuXInitDevices" + #endif + }, + //*/ + // SetThreadPriority (* unchanged since 3911 *) + { + (OOVPA*)&SetThreadPriority_1_0_3911, + + XTL::EmuSetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriority" + #endif + }, + // GetExitCodeThread (* unchanged since 3911 *) + { + (OOVPA*)&GetExitCodeThread_1_0_3911, + + XTL::EmuGetExitCodeThread, + + #ifdef _DEBUG_TRACE + "EmuGetExitCodeThread" + #endif + }, + // XGetDevices + { + (OOVPA*)&XGetDevices_1_0_4134, + + XTL::EmuXGetDevices, + + #ifdef _DEBUG_TRACE + "EmuXGetDevices" + #endif + }, + // XInputOpen + { + (OOVPA*)&XInputOpen_1_0_4134, + + XTL::EmuXInputOpen, + + #ifdef _DEBUG_TRACE + "EmuXInputOpen" + #endif + }, + // XInputGetState + { + (OOVPA*)&XInputGetState_1_0_4134, + + XTL::EmuXInputGetState, + + #ifdef _DEBUG_TRACE + "EmuXInputGetState" + #endif + }, + // XInputSetState (* unchanged since 3911 *) + { + (OOVPA*)&XInputSetState_1_0_3911, + + XTL::EmuXInputSetState, + + #ifdef _DEBUG_TRACE + "EmuXInputSetState" + #endif + }, + // XMountUtilityDrive + { + (OOVPA*)&XMountUtilityDrive_1_0_4134, + + XTL::EmuXMountUtilityDrive, + + #ifdef _DEBUG_TRACE + "EmuXMountUtilityDrive" + #endif + }, + // CreateFiber (* unchanged since 3911 *) + { + (OOVPA*)&CreateFiber_1_0_3911, + + XTL::EmuCreateFiber, + + #ifdef _DEBUG_TRACE + "EmuCreateFiber" + #endif + }, + // DeleteFiber (* unchanged since 3911 *) + { + (OOVPA*)&DeleteFiber_1_0_3911, + + XTL::EmuDeleteFiber, + + #ifdef _DEBUG_TRACE + "EmuDeleteFiber" + #endif + }, + // GetTimeZoneInformation (* unchanged since 3911 *) + { + (OOVPA*)&GetTimeZoneInformation_1_0_3911, + + XTL::EmuGetTimeZoneInformation, + + #ifdef _DEBUG_TRACE + "GetTimeZoneInformation" + #endif + }, + // XRegisterThreadNotifyRoutine (* unchanged since 3911 *) + { + (OOVPA*)&XRegisterThreadNotifyRoutine_1_0_3911, + + XTL::EmuXRegisterThreadNotifyRoutine, + + #ifdef _DEBUG_TRACE + "EmuXRegisterThreadNotifyRoutine" + #endif + }, + // XGetDeviceChanges (* unchanged since 3911 *) + { + (OOVPA*)&XGetDeviceChanges_1_0_3911, + + XTL::EmuXGetDeviceChanges, + + #ifdef _DEBUG_TRACE + "EmuXGetDeviceChanges" + #endif + }, + // XID_fCloseDevice (* unchanged since 3911 *) + { + (OOVPA*)&XID_fCloseDevice_1_0_3911, 0, + + #ifdef _DEBUG_TRACE + "XID_fCloseDevice (XREF)" + #endif + }, + // XInputClose (* unchanged since 3911 *) + { + (OOVPA*)&XInputClose_1_0_3911, + + XTL::EmuXInputClose, + + #ifdef _DEBUG_TRACE + "EmuXInputClose" + #endif + }, + // XInputGetCapabilities (* unchanged since 3911 *) + { + (OOVPA*)&XInputGetCapabilities_1_0_3911, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // GetThreadPriority (* unchanged since 3911 *) + { + (OOVPA*)&GetThreadPriority_1_0_3911, + + XTL::EmuGetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuGetThreadPriority" + #endif + }, + // QueryPerformanceCounter + { + (OOVPA*)&QueryPerformanceCounter_1_0_4134, + + XTL::EmuQueryPerformanceCounter, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceCounter" + #endif + }, + // QueryPerformanceFrequency + { + (OOVPA*)&QueryPerformanceFrequency_1_0_4134, + + XTL::EmuQueryPerformanceFrequency, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceFrequency" + #endif + }, + // XInputPoll + { + (OOVPA*)&XInputPoll_1_0_4134, + + XTL::EmuXInputPoll, + + #ifdef _DEBUG_TRACE + "EmuXInputPoll" + #endif + }, + // SetThreadPriorityBoost (* unchanged since 3911 *) + { + (OOVPA*)&SetThreadPriorityBoost_1_0_3911, + + XTL::EmuSetThreadPriorityBoost, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriorityBoost" + #endif + }, + // SignalObjectAndWait (* unchanged since 3911 *) + { + (OOVPA*)&SignalObjectAndWait_1_0_3911, + + XTL::EmuSignalObjectAndWait, + + #ifdef _DEBUG_TRACE + "EmuSignalObjectAndWait" + #endif + }, + // QueueUserAPC (* unchanged since 3911 *) + { + (OOVPA*)&QueueUserAPC_1_0_3911, + + XTL::EmuQueueUserAPC, + + #ifdef _DEBUG_TRACE + "EmuQueueUserAPC" + #endif + }, + // XMountMUA + { + (OOVPA*)&XMountMUA_1_0_4134, + XTL::EmuXMountMUA, + + #ifdef _DEBUG_TRACE + "EmuXMountMUA" + #endif + }, + // GetFileAttributesA + { + (OOVPA*)&GetFileAttributesA_1_0_4134, + XTL::EmuGetFileAttributesA, + + #ifdef _DEBUG_TRACE + "EmuGetFileAttributesA" + #endif + }, + // timeSetEvent + { + (OOVPA*)&timeSetEvent_1_0_4134, + XTL::EmutimeSetEvent, + + #ifdef _DEBUG_TRACE + "EmutimeSetEvent" + #endif + }, + // timeKillEvent + { + (OOVPA*)&timeKillEvent_1_0_4134, + XTL::EmutimeKillEvent, + + #ifdef _DEBUG_TRACE + "EmutimeKillEvent" + #endif + }, + // XLaunchNewImageA + { + (OOVPA*)&XLaunchNewImageA_1_0_3911, + XTL::EmuXLaunchNewImage, + + #ifdef _DEBUG_TRACE + "EmuXLaunchNewImageA" + #endif + }, +}; + +// ****************************************************************** +// * XAPI_1_0_4134_SIZE +// ****************************************************************** +uint32 XAPI_1_0_4134_SIZE = sizeof(XAPI_1_0_4134); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4361.h b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4361.h new file mode 100644 index 000000000..944c78bbe --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4361.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.4361.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_1_0_4361_H +#define XAPI_1_0_4361_H + +#include "OOVPA.h" + +extern OOVPATable XAPI_1_0_4361[]; +extern uint32 XAPI_1_0_4361_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4361.inl b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4361.inl new file mode 100644 index 000000000..56fb14e2f --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4361.inl @@ -0,0 +1,846 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4361.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * RtlFreeHeap +// ****************************************************************** +SOOVPA<12> RtlFreeHeap_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // RtlFreeHeap+0x1F : test ecx, ecx + { 0x1F, 0x85 }, // (Offset,Value)-Pair #1 + { 0x20, 0xC9 }, // (Offset,Value)-Pair #2 + + // RtlFreeHeap+0x4B : test byte ptr [edi+5], 0x08 + { 0x4B, 0xF6 }, // (Offset,Value)-Pair #3 + { 0x4C, 0x47 }, // (Offset,Value)-Pair #4 + { 0x4D, 0x05 }, // (Offset,Value)-Pair #5 + { 0x4E, 0x08 }, // (Offset,Value)-Pair #6 + + // RtlFreeHeap+0x5B : push 0 + { 0x5B, 0x6A }, // (Offset,Value)-Pair #7 + { 0x5C, 0x00 }, // (Offset,Value)-Pair #8 + + // RtlFreeHeap+0x8F : cmp [edx], edx + { 0x8F, 0x39 }, // (Offset,Value)-Pair #9 + { 0x90, 0x12 }, // (Offset,Value)-Pair #10 + + // RtlFreeHeap+0xA4 : shl ebx, cl + { 0xA4, 0xD3 }, // (Offset,Value)-Pair #11 + { 0xA5, 0xE3 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * QueryPerformanceCounter +// ****************************************************************** +SOOVPA<12> QueryPerformanceCounter_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // QueryPerformanceCounter+0x04 : rdtsc + { 0x04, 0x0F }, // (Offset,Value)-Pair #1 + { 0x05, 0x31 }, // (Offset,Value)-Pair #2 + + // QueryPerformanceCounter+0x06 : mov [ecx], eax + { 0x06, 0x89 }, // (Offset,Value)-Pair #3 + { 0x07, 0x01 }, // (Offset,Value)-Pair #4 + + // QueryPerformanceCounter+0x08 : mov [ecx+4], eax + { 0x08, 0x89 }, // (Offset,Value)-Pair #5 + { 0x09, 0x51 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #7 + + // QueryPerformanceCounter+0x0B : xor eax, eax + { 0x0B, 0x33 }, // (Offset,Value)-Pair #8 + { 0x0C, 0xC0 }, // (Offset,Value)-Pair #9 + + // QueryPerformanceCounter+0x0D : inc eax + { 0x0D, 0x40 }, // (Offset,Value)-Pair #10 + + // QueryPerformanceCounter+0x0E : retn 0x04 + { 0x0E, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x0F, 0x04 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * QueryPerformanceFrequency +// ****************************************************************** +SOOVPA<15> QueryPerformanceFrequency_1_0_4361 = +{ + 0, // Large == 0 + 15, // Count == 15 + + XRefNotSaved, + XRefNotUsed, + + { + // QueryPerformanceFrequency+0x04 : and dword ptr [eax+4], 0 + { 0x04, 0x83 }, // (Offset,Value)-Pair #1 + { 0x05, 0x60 }, // (Offset,Value)-Pair #2 + { 0x06, 0x04 }, // (Offset,Value)-Pair #3 + { 0x07, 0x00 }, // (Offset,Value)-Pair #4 + + // QueryPerformanceFrequency+0x06 : mov dword ptr [eax], 0x2BB5C755 + { 0x08, 0xC7 }, // (Offset,Value)-Pair #5 + { 0x09, 0x00 }, // (Offset,Value)-Pair #6 + { 0x0A, 0x55 }, // (Offset,Value)-Pair #7 + { 0x0B, 0xC7 }, // (Offset,Value)-Pair #8 + { 0x0C, 0xB5 }, // (Offset,Value)-Pair #9 + { 0x0D, 0x2B }, // (Offset,Value)-Pair #10 + + // QueryPerformanceFrequency+0x0E : xor eax, eax + { 0x0E, 0x33 }, // (Offset,Value)-Pair #11 + { 0x0F, 0xC0 }, // (Offset,Value)-Pair #12 + + // QueryPerformanceFrequency+0x10 : inc eax + { 0x10, 0x40 }, // (Offset,Value)-Pair #13 + + // QueryPerformanceFrequency+0x11 : retn 0x04 + { 0x11, 0xC2 }, // (Offset,Value)-Pair #14 + { 0x12, 0x04 }, // (Offset,Value)-Pair #15 + } +}; + +// ****************************************************************** +// * XInputOpen +// ****************************************************************** +SOOVPA<12> XInputOpen_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputOpen+0x14 : push 0x57 + { 0x14, 0x6A }, // (Offset,Value)-Pair #1 + { 0x15, 0x57 }, // (Offset,Value)-Pair #2 + + // XInputOpen+0x1D : jmp +0x33 + { 0x1D, 0xEB }, // (Offset,Value)-Pair #3 + { 0x1E, 0x33 }, // (Offset,Value)-Pair #4 + + // XInputOpen+0x33 : add edx, 0x10 + { 0x33, 0x83 }, // (Offset,Value)-Pair #5 + { 0x34, 0xC2 }, // (Offset,Value)-Pair #6 + { 0x35, 0x10 }, // (Offset,Value)-Pair #7 + + // XInputOpen+0x47 : jmp +0x06 + { 0x47, 0x75 }, // (Offset,Value)-Pair #8 + { 0x48, 0x06 }, // (Offset,Value)-Pair #9 + + // XInputOpen+0x52 : leave + { 0x52, 0xC9 }, // (Offset,Value)-Pair #10 + + // XInputOpen+0x53 : retn 0x10 + { 0x53, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x54, 0x10 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XID_fCloseDevice +// ****************************************************************** +SOOVPA<11> XID_fCloseDevice_1_0_4361 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_FCLOSEDEVICE, // XRef Is Saved + 0, // XRef Not Used + + { + // XID_fCloseDevice+0x1B : mov eax, [esi+0x00A3] + { 0x1B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x1C, 0x86 }, // (Offset,Value)-Pair #2 + { 0x1D, 0xA3 }, // (Offset,Value)-Pair #3 + + // XID_fCloseDevice+0x91 : mov [esi+0x00A7], eax + { 0x91, 0x89 }, // (Offset,Value)-Pair #4 + { 0x92, 0x86 }, // (Offset,Value)-Pair #5 + { 0x93, 0xA7 }, // (Offset,Value)-Pair #6 + + // XID_fCloseDevice+0x91 : mov [esi+0x00A7], eax // FIXME: Same instruction repeated. + { 0x91, 0x89 }, // (Offset,Value)-Pair #7 + { 0x92, 0x86 }, // (Offset,Value)-Pair #8 + { 0x93, 0xA7 }, // (Offset,Value)-Pair #9 + + // XID_fCloseDevice+0x9F : leave; retn + { 0x9F, 0xC9 }, // (Offset,Value)-Pair #10 + { 0xA0, 0xC3 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities +// ****************************************************************** +SOOVPA<14> XInputGetCapabilities_1_0_4361 = +{ + 0, // Large == 0 + 14, // Count == 14 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputGetCapabilities+0x03 : sub esp, 0x48 + { 0x03, 0x83 }, // (Offset,Value)-Pair #1 + { 0x04, 0xEC }, // (Offset,Value)-Pair #2 + { 0x05, 0x48 }, // (Offset,Value)-Pair #3 + + // XInputGetCapabilities+0x24 : test byte ptr [esi+4], 2 + { 0x24, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x25, 0x46 }, // (Offset,Value)-Pair #5 + { 0x26, 0x04 }, // (Offset,Value)-Pair #6 + { 0x27, 0x02 }, // (Offset,Value)-Pair #7 + + // XInputGetCapabilities+0x3A : stosb + { 0x3A, 0xAA }, // (Offset,Value)-Pair #8 + + // XInputGetCapabilities+0x7D : mov [ebp+var_48], 0x30 + { 0x7D, 0xC6 }, // (Offset,Value)-Pair #9 + { 0x7E, 0x45 }, // (Offset,Value)-Pair #10 + { 0x7F, 0xB8 }, // (Offset,Value)-Pair #11 + { 0x80, 0x30 }, // (Offset,Value)-Pair #12 + + // XInputGetCapabilities+0xEE : cmp [eax], ebx + { 0xEE, 0x39 }, // (Offset,Value)-Pair #13 + { 0xEF, 0x18 }, // (Offset,Value)-Pair #14 + } +}; + +// ****************************************************************** +// * XInputGetState +// ****************************************************************** +SOOVPA<12> XInputGetState_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputGetState+0x0E : mov ecx, [edx+0x0A3] + { 0x0E, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0F, 0x8A }, // (Offset,Value)-Pair #2 + { 0x10, 0xA3 }, // (Offset,Value)-Pair #3 + + // XInputGetState+0x1D : push 0x57 + { 0x1D, 0x6A }, // (Offset,Value)-Pair #4 + { 0x1E, 0x57 }, // (Offset,Value)-Pair #5 + + // XInputGetState+0x20 : jmp +0x3E + { 0x20, 0xEB }, // (Offset,Value)-Pair #6 + { 0x21, 0x3E }, // (Offset,Value)-Pair #7 + + // XInputGetState+0x2E : mov ebx, 0x048F + { 0x2E, 0xBB }, // (Offset,Value)-Pair #8 + { 0x2F, 0x8F }, // (Offset,Value)-Pair #9 + { 0x30, 0x04 }, // (Offset,Value)-Pair #10 + + // XInputGetState+0x6C : retn 8 + { 0x6C, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x6D, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputSetState +// ****************************************************************** +SOOVPA<12> XInputSetState_1_0_4361 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputSetState+0x04 : lea eax, [ecx+0x0A3] + { 0x04, 0x8D }, // (Offset,Value)-Pair #1 + { 0x05, 0x81 }, // (Offset,Value)-Pair #2 + { 0x06, 0xA3 }, // (Offset,Value)-Pair #3 + + // XInputSetState+0x15 : push 0x57 + { 0x15, 0x6A }, // (Offset,Value)-Pair #4 + { 0x16, 0x57 }, // (Offset,Value)-Pair #5 + + // XInputSetState+0x18 : jmp +0x19 + { 0x18, 0xEB }, // (Offset,Value)-Pair #6 + { 0x19, 0x19 }, // (Offset,Value)-Pair #7 + + // XInputSetState+0x2B : mov [edx+0x41], al + { 0x2B, 0x88 }, // (Offset,Value)-Pair #8 + { 0x2C, 0x42 }, // (Offset,Value)-Pair #9 + { 0x2D, 0x41 }, // (Offset,Value)-Pair #10 + + // XInputSetState+0x33 : retn 0x08 + { 0x33, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x34, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputSetState +// ****************************************************************** +SOOVPA<12> XInputSetState_1_0_4928 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // XInputSetState+0x04 : lea eax, [ecx+0x0A3] + { 0x04, 0x8D }, // (Offset,Value)-Pair #1 + { 0x05, 0x81 }, // (Offset,Value)-Pair #2 + { 0x06, 0xA3 }, // (Offset,Value)-Pair #3 + + // XInputSetState+0x12 : push 0x57 + { 0x12, 0x6A }, // (Offset,Value)-Pair #4 + { 0x13, 0x57 }, // (Offset,Value)-Pair #5 + + // XInputSetState+0x15 : jmp +0x19 + { 0x15, 0xEB }, // (Offset,Value)-Pair #6 + { 0x16, 0x19 }, // (Offset,Value)-Pair #7 + + // XInputSetState+0x28 : mov [edx+0x41], al + { 0x28, 0x88 }, // (Offset,Value)-Pair #8 + { 0x29, 0x42 }, // (Offset,Value)-Pair #9 + { 0x2A, 0x41 }, // (Offset,Value)-Pair #10 + + // XInputSetState+0x30 : retn 0x08 + { 0x30, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x31, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * CreateThread +// ****************************************************************** +SOOVPA<8> CreateThread_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // CreateThread+0x0A : mov eax, ds:10130h + { 0x0A, 0xA1 }, // (Offset,Value)-Pair #1 + { 0x0B, 0x30 }, // (Offset,Value)-Pair #2 + { 0x0C, 0x01 }, // (Offset,Value)-Pair #3 + + // CreateThread+0x1C : and ecx, 0xFFFFFF01 + { 0x1C, 0x81 }, // (Offset,Value)-Pair #4 + { 0x1D, 0xE1 }, // (Offset,Value)-Pair #5 + { 0x1E, 0x01 }, // (Offset,Value)-Pair #6 + + // CreateThread+0x6B : retn 0x18 + { 0x6B, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x6C, 0x18 } // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * CloseHandle +// ****************************************************************** +SOOVPA<10> CloseHandle_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // CloseHandle+0x00 : push [esp+4] + { 0x00, 0xFF }, // (Offset,Value)-Pair #1 + { 0x01, 0x74 }, // (Offset,Value)-Pair #2 + { 0x02, 0x24 }, // (Offset,Value)-Pair #3 + { 0x03, 0x04 }, // (Offset,Value)-Pair #4 + + // CloseHandle+0x04 : call ds:[addr] + { 0x04, 0xFF }, // (Offset,Value)-Pair #5 + { 0x05, 0x15 }, // (Offset,Value)-Pair #6 + + // CloseHandle+0x11 : jmp +0x08 + { 0x11, 0xEB }, // (Offset,Value)-Pair #7 + { 0x12, 0x08 }, // (Offset,Value)-Pair #8 + + // CloseHandle+0x1B : retn 4 + { 0x1B, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x1C, 0x04 } // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XapiInitProcess +// ****************************************************************** +SOOVPA<7> XapiInitProcess_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + // XapiInitProcess+0x03 : sub esp, 30h + { 0x05, 0x30 }, // (Offset,Value)-Pair #1 + + // XapiInitProcess+0x0F : push 0x0C + { 0x0F, 0x6A }, // (Offset,Value)-Pair #2 + { 0x10, 0x0C }, // (Offset,Value)-Pair #3 + + // XapiInitProcess+0x17 : repe stosd + { 0x17, 0xF3 }, // (Offset,Value)-Pair #4 + { 0x18, 0xAB }, // (Offset,Value)-Pair #5 + + // XapiInitProcess+0x42 : jnz +0x0B + { 0x42, 0x75 }, // (Offset,Value)-Pair #6 + { 0x43, 0x0B }, // (Offset,Value)-Pair #7 + } +}; + +// ****************************************************************** +// * XapiThreadStartup +// ****************************************************************** +SOOVPA<10> XapiThreadStartup_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // XapiThreadStartup+0x00 : push 0x18 + { 0x00, 0x6A }, // (Offset,Value)-Pair #1 + { 0x01, 0x18 }, // (Offset,Value)-Pair #2 + + // XapiThreadStartup+0x10 : mov eax, fs:[0x28] + { 0x10, 0x64 }, // (Offset,Value)-Pair #3 + { 0x11, 0xA1 }, // (Offset,Value)-Pair #4 + { 0x12, 0x28 }, // (Offset,Value)-Pair #5 + + // XapiThreadStartup+0x3F : repe movsd + { 0x3F, 0xF3 }, // (Offset,Value)-Pair #6 + { 0x40, 0xA5 }, // (Offset,Value)-Pair #7 + + // XapiThreadStartup+0x7C : jmp +0x0C + { 0x7C, 0xEB }, // (Offset,Value)-Pair #8 + { 0x7D, 0x0C }, // (Offset,Value)-Pair #9 + + // XapiThreadStartup+0x86 : retn + { 0x86, 0xC3 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XapiSetupPerTitleDriveLetters +// ****************************************************************** +SOOVPA<10> XapiSetupPerTitleDriveLetters_1_0_4361 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // XapiSetupPerTitleDriveLetters+0x09 : lea eax, [ebp-0x0C] + { 0x09, 0x8D }, // (Offset,Value)-Pair #1 + { 0x0A, 0x45 }, // (Offset,Value)-Pair #2 + { 0x0B, 0xF4 }, // (Offset,Value)-Pair #3 + + // XapiSetupPerTitleDriveLetters+0x17 : edd esp, 0x0C + { 0x17, 0x83 }, // (Offset,Value)-Pair #4 + { 0x18, 0xC4 }, // (Offset,Value)-Pair #5 + { 0x19, 0x0C }, // (Offset,Value)-Pair #6 + + // XapiSetupPerTitleDriveLetters+0x35 : jl 0x1A + { 0x35, 0x7C }, // (Offset,Value)-Pair #7 + { 0x36, 0x1A }, // (Offset,Value)-Pair #8 + + // XapiSetupPerTitleDriveLetters+0x52 : retn 0x08 + { 0x52, 0xC2 }, // (Offset,Value)-Pair #9 + { 0x53, 0x08 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XMountMUA +// ****************************************************************** +SOOVPA<8> XMountMUA_1_0_4361 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x22, 0x8A }, + { 0x3E, 0x89 }, + { 0x5E, 0x5C }, + { 0x7E, 0xF4 }, + { 0x9E, 0x50 }, + { 0xBE, 0xF8 }, + { 0xDE, 0x8D }, + { 0xFE, 0x09 }, + } +}; + +// ****************************************************************** +// * CreateWaitableTimerA +// ****************************************************************** +SOOVPA<7> CreateWaitableTimerA_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0x74 }, + { 0x16, 0x50 }, + { 0x22, 0x39 }, + { 0x2E, 0xFF }, + { 0x3A, 0x00 }, + { 0x46, 0x6A }, + { 0x52, 0x50 }, + } +}; + +// ****************************************************************** +// * SetWaitableTimer +// ****************************************************************** +SOOVPA<7> SetWaitableTimer_1_0_4361 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0x10 }, + { 0x10, 0xFF }, + { 0x19, 0xFF }, + { 0x22, 0x0A }, + { 0x2B, 0xEB }, + { 0x34, 0x6A }, + { 0x3F, 0x33 }, + } +}; + +// ****************************************************************** +// * XAPI_1_0_4361 +// ****************************************************************** +OOVPATable XAPI_1_0_4361[] = +{ + + // QueryPerformanceCounter + { + (OOVPA*)&QueryPerformanceCounter_1_0_4361, + + XTL::EmuQueryPerformanceCounter, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceCounter" + #endif + }, + // QueryPerformanceFrequency + { + (OOVPA*)&QueryPerformanceFrequency_1_0_4361, + + XTL::EmuQueryPerformanceFrequency, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceFrequency" + #endif + }, + // XInitDevices (* unchanged since 1.0.3911 *) + { + (OOVPA*)&XInitDevices_1_0_3911, + + XTL::EmuXInitDevices, + + #ifdef _DEBUG_TRACE + "EmuXInitDevices" + #endif + }, + // XGetDevices (* unchanged since 4134 *) + { + (OOVPA*)&XGetDevices_1_0_4134, + + XTL::EmuXGetDevices, + + #ifdef _DEBUG_TRACE + "EmuXGetDevices" + #endif + }, + // XGetDeviceChanges (* unchanged since 3911 *) + { + (OOVPA*)&XGetDeviceChanges_1_0_3911, + + XTL::EmuXGetDeviceChanges, + + #ifdef _DEBUG_TRACE + "EmuXGetDeviceChanges" + #endif + }, + // XInputOpen + { + (OOVPA*)&XInputOpen_1_0_4361, + + XTL::EmuXInputOpen, + + #ifdef _DEBUG_TRACE + "EmuXInputOpen" + #endif + }, + // XID_fCloseDevice + { + (OOVPA*)&XID_fCloseDevice_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "XID_fCloseDevice (XREF)" + #endif + }, + // XInputClose (* unchanged since 3911 *) + { + (OOVPA*)&XInputClose_1_0_3911, + + XTL::EmuXInputClose, + + #ifdef _DEBUG_TRACE + "EmuXInputClose" + #endif + }, + // XInputGetCapabilities + { + (OOVPA*)&XInputGetCapabilities_1_0_4361, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // XInputGetState + { + (OOVPA*)&XInputGetState_1_0_4361, + + XTL::EmuXInputGetState, + + #ifdef _DEBUG_TRACE + "EmuXInputGetState" + #endif + }, + // XInputSetState + { + (OOVPA*)&XInputSetState_1_0_4361, + + XTL::EmuXInputSetState, + + #ifdef _DEBUG_TRACE + "EmuXInputSetState" + #endif + }, + //*/ + /* + // XapiThreadStartup + { + (OOVPA*)&XapiThreadStartup_1_0_4361, + + XTL::EmuXapiThreadStartup, + + #ifdef _DEBUG_TRACE + "XapiThreadStartup" + #endif + }, + //*/ + // XMountUtilityDrive + // TODO: This needs to be verified on 4361, not just 4242! + { + (OOVPA*)&XMountUtilityDrive_1_0_4134, + + XTL::EmuXMountUtilityDrive, + + #ifdef _DEBUG_TRACE + "EmuXMountUtilityDrive_4242" + #endif + }, + // CreateFiber (* unchanged since 3911 *) + { + (OOVPA*)&CreateFiber_1_0_3911, + + XTL::EmuCreateFiber, + + #ifdef _DEBUG_TRACE + "EmuCreateFiber" + #endif + }, + // DeleteFiber (* unchanged since 3911 *) + { + (OOVPA*)&DeleteFiber_1_0_3911, + + XTL::EmuDeleteFiber, + + #ifdef _DEBUG_TRACE + "EmuDeleteFiber" + #endif + }, + // GetTimeZoneInformation (* unchanged since 3911 *) + { + (OOVPA*)&GetTimeZoneInformation_1_0_3911, + + XTL::EmuGetTimeZoneInformation, + + #ifdef _DEBUG_TRACE + "GetTimeZoneInformation" + #endif + }, + // SetThreadPriority (* unchanged since 3911 *) + { + (OOVPA*)&SetThreadPriority_1_0_3911, + + XTL::EmuSetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriority" + #endif + }, + // GetExitCodeThread (* unchanged since 3911 *) + { + (OOVPA*)&GetExitCodeThread_1_0_3911, + + XTL::EmuGetExitCodeThread, + + #ifdef _DEBUG_TRACE + "EmuGetExitCodeThread" + #endif + }, + // SetThreadPriorityBoost (* unchanged since 3911 *) + { + (OOVPA*)&SetThreadPriorityBoost_1_0_3911, + + XTL::EmuSetThreadPriorityBoost, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriorityBoost" + #endif + }, + // SignalObjectAndWait (* unchanged since 3911 *) + { + (OOVPA*)&SignalObjectAndWait_1_0_3911, + + XTL::EmuSignalObjectAndWait, + + #ifdef _DEBUG_TRACE + "EmuSignalObjectAndWait" + #endif + }, + // QueueUserAPC (* unchanged since 3911 *) + { + (OOVPA*)&QueueUserAPC_1_0_3911, + + XTL::EmuQueueUserAPC, + + #ifdef _DEBUG_TRACE + "EmuQueueUserAPC" + #endif + }, + // GetFileAttributesA (* unchanged since 4134 *) + { + (OOVPA*)&GetFileAttributesA_1_0_4134, + XTL::EmuGetFileAttributesA, + + #ifdef _DEBUG_TRACE + "EmuGetFileAttributesA" + #endif + }, + // XMountMUA + { + (OOVPA*)&XMountMUA_1_0_4361, + XTL::EmuXMountMUA, + + #ifdef _DEBUG_TRACE + "EmuXMountMUA" + #endif + }, + // CreateWaitableTimerA + { + (OOVPA*)&CreateWaitableTimerA_1_0_4361, + XTL::EmuCreateWaitableTimerA, + + #ifdef _DEBUG_TRACE + "EmuCreateWaitableTimerA" + #endif + }, + // SetWaitableTimer + { + (OOVPA*)&SetWaitableTimer_1_0_4361, + XTL::EmuSetWaitableTimer, + + #ifdef _DEBUG_TRACE + "EmuSetWaitableTimer" + #endif + }, +}; + +// ****************************************************************** +// * XAPI_1_0_4361_SIZE +// ****************************************************************** +uint32 XAPI_1_0_4361_SIZE = sizeof(XAPI_1_0_4361); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4432.h b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4432.h new file mode 100644 index 000000000..4b0bb192f --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4432.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.4432.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_1_0_4432_H +#define XAPI_1_0_4432_H + +#include "OOVPA.h" + +extern OOVPATable XAPI_1_0_4432[]; +extern uint32 XAPI_1_0_4432_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4432.inl b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4432.inl new file mode 100644 index 000000000..608bf07e4 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4432.inl @@ -0,0 +1,314 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4432.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * RtlFreeHeap +// ****************************************************************** +SOOVPA<9> RtlFreeHeap_1_0_4432 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // RtlFreeHeap+0x1F : test ecx, ecx + { 0x1F, 0x85 }, // (Offset,Value)-Pair #1 + { 0x20, 0xC9 }, // (Offset,Value)-Pair #2 + + // RtlFreeHeap+0x23 : mov al, 1 + { 0x23, 0xB0 }, // (Offset,Value)-Pair #3 + { 0x24, 0x01 }, // (Offset,Value)-Pair #4 + + // RtlFreeHeap+0x4B : test byte ptr [edi+5], 8 + { 0x4B, 0xF6 }, // (Offset,Value)-Pair #5 + { 0x4C, 0x47 }, // (Offset,Value)-Pair #6 + { 0x4D, 0x05 }, // (Offset,Value)-Pair #7 + + // RtlFreeHeap+0x6E : cmp ecx, 0x80 + { 0x6E, 0x81 }, // (Offset,Value)-Pair #8 + { 0x6F, 0xF9 }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * XMountUtilityDrive +// ****************************************************************** +SOOVPA<8> XMountUtilityDrive_1_0_4432 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + // XapiUnknownBad1+0x51 : push 0x0104 + { 0x51, 0x68 }, // (Offset,Value)-Pair #1 + { 0x52, 0x04 }, // (Offset,Value)-Pair #2 + { 0x53, 0x01 }, // (Offset,Value)-Pair #3 + + // XapiUnknownBad1+0xB3 : jnz +0x1A + { 0xB3, 0x75 }, // (Offset,Value)-Pair #4 + { 0xB4, 0x1A }, // (Offset,Value)-Pair #5 + + // XapiUnknownBad1+0xE8 : setnl al + { 0xE8, 0x0F }, // (Offset,Value)-Pair #6 + { 0xE9, 0x9D }, // (Offset,Value)-Pair #7 + { 0xEA, 0xC0 }, // (Offset,Value)-Pair #8 + + // TODO: Finish signature, toss out function call basically + } +}; + +// ****************************************************************** +// * XAPI_1_0_4432 +// ****************************************************************** +OOVPATable XAPI_1_0_4432[] = +{ + + // XMountUtilityDrive + { + (OOVPA*)&XMountUtilityDrive_1_0_4432, + + XTL::EmuXMountUtilityDrive, + + #ifdef _DEBUG_TRACE + "EmuXMountUtilityDrive" + #endif + }, + // XInitDevices (* unchanged since 1.0.3911 *) + { + (OOVPA*)&XInitDevices_1_0_3911, + + XTL::EmuXInitDevices, + + #ifdef _DEBUG_TRACE + "EmuXInitDevices" + #endif + }, + // XGetDevices (* unchanged since 1.0.4134 *) + { + (OOVPA*)&XGetDevices_1_0_4134, + + XTL::EmuXGetDevices, + + #ifdef _DEBUG_TRACE + "EmuXGetDevices" + #endif + }, + // XInputOpen (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XInputOpen_1_0_4361, + + XTL::EmuXInputOpen, + + #ifdef _DEBUG_TRACE + "EmuXInputOpen" + #endif + }, + // XID_fCloseDevice + { + (OOVPA*)&XID_fCloseDevice_1_0_4361, 0, + + #ifdef _DEBUG_TRACE + "XID_fCloseDevice (XREF)" + #endif + }, + // XInputClose (* unchanged since 1.0.3911 *) + { + (OOVPA*)&XInputClose_1_0_3911, + + XTL::EmuXInputClose, + + #ifdef _DEBUG_TRACE + "EmuXInputClose" + #endif + }, + // XInputGetCapabilities (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XInputGetCapabilities_1_0_4361, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // XInputGetState (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XInputGetState_1_0_4361, + + XTL::EmuXInputGetState, + + #ifdef _DEBUG_TRACE + "EmuXInputGetState" + #endif + }, + // XInputSetState (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XInputSetState_1_0_4361, + + XTL::EmuXInputSetState, + + #ifdef _DEBUG_TRACE + "EmuXInputSetState" + #endif + }, + /* + // XapiThreadStartup (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XapiThreadStartup_1_0_4361, + + XTL::EmuXapiThreadStartup, + + #ifdef _DEBUG_TRACE + "EmuXapiThreadStartup" + #endif + }, + //*/ + //*/ + // GetExitCodeThread (* unchanged since 3911 *) + { + (OOVPA*)&GetExitCodeThread_1_0_3911, + + XTL::EmuGetExitCodeThread, + + #ifdef _DEBUG_TRACE + "EmuGetExitCodeThread" + #endif + }, + // GetTimeZoneInformation (* unchanged since 3911 *) + { + (OOVPA*)&GetTimeZoneInformation_1_0_3911, + + XTL::EmuGetTimeZoneInformation, + + #ifdef _DEBUG_TRACE + "GetTimeZoneInformation" + #endif + }, + // SetThreadPriority (* unchanged since 3911 *) + { + (OOVPA*)&SetThreadPriority_1_0_3911, + + XTL::EmuSetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriority" + #endif + }, + // SignalObjectAndWait (* unchanged since 3911 *) + { + (OOVPA*)&SignalObjectAndWait_1_0_3911, + + XTL::EmuSignalObjectAndWait, + + #ifdef _DEBUG_TRACE + "EmuSignalObjectAndWait" + #endif + }, + // CreateFiber (* unchanged since 3911 *) + { + (OOVPA*)&CreateFiber_1_0_3911, + + XTL::EmuCreateFiber, + + #ifdef _DEBUG_TRACE + "EmuCreateFiber" + #endif + }, + // DeleteFiber (* unchanged since 3911 *) + { + (OOVPA*)&DeleteFiber_1_0_3911, + + XTL::EmuDeleteFiber, + + #ifdef _DEBUG_TRACE + "EmuDeleteFiber" + #endif + }, + // QueueUserAPC (* unchanged since 3911 *) + { + (OOVPA*)&QueueUserAPC_1_0_3911, + + XTL::EmuQueueUserAPC, + + #ifdef _DEBUG_TRACE + "EmuQueueUserAPC" + #endif + }, + // GetFileAttributesA (* unchanged since 4134 *) + { + (OOVPA*)&GetFileAttributesA_1_0_4134, + XTL::EmuGetFileAttributesA, + + #ifdef _DEBUG_TRACE + "EmuGetFileAttributesA" + #endif + }, + // timeSetEvent + { + (OOVPA*)&timeSetEvent_1_0_4134, + XTL::EmutimeSetEvent, + + #ifdef _DEBUG_TRACE + "EmutimeSetEvent" + #endif + }, + // timeKillEvent + { + (OOVPA*)&timeKillEvent_1_0_4134, + XTL::EmutimeKillEvent, + + #ifdef _DEBUG_TRACE + "EmutimeKillEvent" + #endif + }, + // XLaunchNewImageA + { + (OOVPA*)&XLaunchNewImageA_1_0_3911, + XTL::EmuXLaunchNewImage, + + #ifdef _DEBUG_TRACE + "EmuXLaunchNewImageA" + #endif + }, +}; + +// ****************************************************************** +// * XAPI_1_0_4432_SIZE +// ****************************************************************** +uint32 XAPI_1_0_4432_SIZE = sizeof(XAPI_1_0_4432); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4627.h b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4627.h new file mode 100644 index 000000000..f571aaba6 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4627.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.4627.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_1_0_4627_H +#define XAPI_1_0_4627_H + +#include "OOVPA.h" + +extern OOVPATable XAPI_1_0_4627[]; +extern uint32 XAPI_1_0_4627_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4627.inl new file mode 100644 index 000000000..14e355a70 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.4627.inl @@ -0,0 +1,1592 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.4627.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XFormatUtilityDrive +// ****************************************************************** +SOOVPA<7> XFormatUtilityDrive_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x10, 0x50 }, + { 0x23, 0xFF }, + { 0x34, 0xC0 }, + { 0x46, 0x45 }, + { 0x58, 0xFF }, + { 0x6D, 0x33 }, + { 0x7C, 0x40 }, + } +}; + +// ****************************************************************** +// * SetThreadPriorityBoost +// ****************************************************************** +SOOVPA<10> SetThreadPriorityBoost_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // SetThreadPriorityBoost+0x0D : push [ebp+0x08] + { 0x0D, 0xFF }, // (Offset,Value)-Pair #1 + { 0x0E, 0x75 }, // (Offset,Value)-Pair #2 + { 0x0F, 0x08 }, // (Offset,Value)-Pair #3 + + // SetThreadPriorityBoost+0x18 : jl +0x20 + { 0x18, 0x7C }, // (Offset,Value)-Pair #4 + { 0x19, 0x20 }, // (Offset,Value)-Pair #5 + + // SetThreadPriorityBoost+0x1F : setnz al + { 0x1F, 0x0F }, // (Offset,Value)-Pair #6 + { 0x20, 0x95 }, // (Offset,Value)-Pair #7 + { 0x21, 0xC0 }, // (Offset,Value)-Pair #8 + + // SetThreadPriorityBoost+0x2C : mov ecx, [ebp+0x08] + { 0x2C, 0x8B }, // (Offset,Value)-Pair #9 + { 0x2D, 0x4D }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * GetThreadPriority +// ****************************************************************** +SOOVPA<10> GetThreadPriority_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // GetThreadPriority+0x0D : push [ebp+0x08] + { 0x0D, 0xFF }, // (Offset,Value)-Pair #1 + { 0x0E, 0x75 }, // (Offset,Value)-Pair #2 + { 0x0F, 0x08 }, // (Offset,Value)-Pair #3 + + // GetThreadPriority+0x18 : jl +0x2B + { 0x18, 0x7C }, // (Offset,Value)-Pair #4 + { 0x19, 0x2B }, // (Offset,Value)-Pair #5 + + // GetThreadPriority+0x2F : cmp esi, 0xFFFFFFF0 + { 0x2F, 0x83 }, // (Offset,Value)-Pair #6 + { 0x30, 0xFE }, // (Offset,Value)-Pair #7 + { 0x31, 0xF0 }, // (Offset,Value)-Pair #8 + + // GetThreadPriority+0x37 : mov ecx, [ebp+0x08] + { 0x37, 0x8B }, // (Offset,Value)-Pair #9 + { 0x38, 0x4D }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * RtlFreeHeap +// ****************************************************************** +SOOVPA<9> RtlFreeHeap_1_0_4627 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + // RtlFreeHeap+0x1F : test edi, edi + { 0x1F, 0x85 }, // (Offset,Value)-Pair #1 + { 0x20, 0xFF }, // (Offset,Value)-Pair #2 + + // RtlFreeHeap+0x23 : mov al, 1 + { 0x23, 0xB0 }, // (Offset,Value)-Pair #3 + { 0x24, 0x01 }, // (Offset,Value)-Pair #4 + + // RtlFreeHeap+0x35 : mov eax, fs:[0x20] + { 0x35, 0x64 }, // (Offset,Value)-Pair #5 + { 0x36, 0xA1 }, // (Offset,Value)-Pair #6 + { 0x37, 0x20 }, // (Offset,Value)-Pair #7 + + // RtlFreeHeap+0x49 : push 0x0B + { 0x49, 0x6A }, // (Offset,Value)-Pair #8 + { 0x4A, 0x0B }, // (Offset,Value)-Pair #9 + } +}; + +// ****************************************************************** +// * RtlReAllocateHeap +// ****************************************************************** +SOOVPA<10> RtlReAllocateHeap_1_0_4627 = +{ + 0, // Large == 0 + 10, // Count == 10 + + XRefNotSaved, + XRefNotUsed, + + { + // RtlReAllocateHeap+0x1C : test esi, esi + { 0x1C, 0x85 }, // (Offset,Value)-Pair #1 + { 0x1D, 0xF6 }, // (Offset,Value)-Pair #2 + + // RtlReAllocateHeap+0x26 : or [ebp+0x0C], ecx + { 0x26, 0x09 }, // (Offset,Value)-Pair #3 + { 0x27, 0x4D }, // (Offset,Value)-Pair #4 + { 0x28, 0x0C }, // (Offset,Value)-Pair #5 + + // RtlReAllocateHeap+0x61 : jz +0x06; add ecx, 0x10 + { 0x61, 0x74 }, // (Offset,Value)-Pair #6 + { 0x62, 0x06 }, // (Offset,Value)-Pair #7 + { 0x63, 0x83 }, // (Offset,Value)-Pair #8 + { 0x64, 0xC1 }, // (Offset,Value)-Pair #9 + { 0x65, 0x10 }, // (Offset,Value)-Pair #10 + } +}; + +// ****************************************************************** +// * XID_fCloseDevice +// ****************************************************************** +SOOVPA<7> XID_fCloseDevice_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_FCLOSEDEVICE, // Xref Is Saved + XRefNotUsed, + + { + { 0x13, 0x1E }, + { 0x28, 0x75 }, + { 0x3D, 0x01 }, + { 0x52, 0xC6 }, + { 0x67, 0xFF }, + { 0x7C, 0x06 }, + { 0x91, 0x89 }, + } +}; + +// ****************************************************************** +// * XID_fCloseDevice +// ****************************************************************** +SOOVPA<11> XID_fCloseDevice_1_0_4928 = +{ + 0, // Large == 0 + 11, // Count == 11 + + XREF_FCLOSEDEVICE, // XRef Is Saved + 0, // XRef Not Used + + { + { 0x13, 0x8B }, // (Offset,Value)-Pair #1 + { 0x14, 0x86 }, // (Offset,Value)-Pair #2 + { 0x15, 0xA3 }, // (Offset,Value)-Pair #3 + + { 0x4C, 0x89 }, // (Offset,Value)-Pair #4 + { 0x4D, 0x86 }, // (Offset,Value)-Pair #5 + { 0x4E, 0x9E }, // (Offset,Value)-Pair #6 + + { 0x87, 0x89 }, // (Offset,Value)-Pair #7 + { 0x88, 0x86 }, // (Offset,Value)-Pair #8 + { 0x89, 0xA7 }, // (Offset,Value)-Pair #9 + + { 0x95, 0xC9 }, // (Offset,Value)-Pair #10 + { 0x96, 0xC3 }, // (Offset,Value)-Pair #11 + } +}; + +// ****************************************************************** +// * XInputClose +// ****************************************************************** +SOOVPA<8> XInputClose_1_0_4928 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + 1, // XRef Is Used + + { + // XInputClose+0x05 : call [fCloseDevice] + { 0x05, XREF_FCLOSEDEVICE }, // (Offset,Value)-Pair #1 + + // XInputClose+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 + + // XInputClose+0x04 : call [fCloseDevice] + { 0x04, 0xE8 }, // (Offset,Value)-Pair #6 + + // XInputClose+0x09 : retn 0x04 + { 0x09, 0xC2 }, // (Offset,Value)-Pair #7 + { 0x0A, 0x04 }, // (Offset,Value)-Pair #8 + } +}; + +// ****************************************************************** +// * XInputGetState +// ****************************************************************** +SOOVPA<12> XInputGetState_1_0_4928 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0E, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0F, 0x8A }, // (Offset,Value)-Pair #2 + { 0x10, 0xA3 }, // (Offset,Value)-Pair #3 + + { 0x1A, 0x6A }, // (Offset,Value)-Pair #4 + { 0x1B, 0x57 }, // (Offset,Value)-Pair #5 + + { 0x1D, 0xEB }, // (Offset,Value)-Pair #6 + { 0x1E, 0x3E }, // (Offset,Value)-Pair #7 + + { 0x3A, 0x8B }, // (Offset,Value)-Pair #8 + { 0x3B, 0x8A }, // (Offset,Value)-Pair #9 + { 0x3C, 0xA3 }, // (Offset,Value)-Pair #10 + + { 0x69, 0xC2 }, // (Offset,Value)-Pair #11 + { 0x6A, 0x08 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities +// ****************************************************************** +SOOVPA<12> XInputGetCapabilities_1_0_4928 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x1D }, // (Offset,Value)-Pair #2 + { 0x0D, 0xAC }, // (Offset,Value)-Pair #3 + + { 0x25, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x26, 0x46 }, // (Offset,Value)-Pair #5 + { 0x27, 0x04 }, // (Offset,Value)-Pair #6 + { 0x28, 0x02 }, // (Offset,Value)-Pair #7 + + { 0x39, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xAB }, // (Offset,Value)-Pair #9 + + { 0x90, 0xBF }, // (Offset,Value)-Pair #10 + { 0x91, 0xE8 }, // (Offset,Value)-Pair #11 + { 0x92, 0x7B }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities2 +// ****************************************************************** +/* Unreal Championship's version is different */ +SOOVPA<12> XInputGetCapabilities2_1_0_4928 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // mov ebx, ds:KeRaiseIrqlToDpcLevel + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x1D }, // (Offset,Value)-Pair #2 + { 0x0D, 0x1C }, // (Offset,Value)-Pair #3 + + // test byte ptr [esi+4], 2 + { 0x25, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x26, 0x46 }, // (Offset,Value)-Pair #5 + { 0x27, 0x04 }, // (Offset,Value)-Pair #6 + { 0x28, 0x02 }, // (Offset,Value)-Pair #7 + + // rep stosd + { 0x39, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xAB }, // (Offset,Value)-Pair #9 + + // mov edi, offset unknown_libname_2 + { 0x90, 0xBF }, // (Offset,Value)-Pair #10 + { 0x91, 0xCC }, // (Offset,Value)-Pair #11 + { 0x92, 0x5C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities3 +// ****************************************************************** +SOOVPA<12> XInputGetCapabilities3_1_0_4928 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x1D }, // (Offset,Value)-Pair #2 + { 0x0D, 0xA4 }, // (Offset,Value)-Pair #3 + + { 0x25, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x26, 0x46 }, // (Offset,Value)-Pair #5 + { 0x27, 0x04 }, // (Offset,Value)-Pair #6 + { 0x28, 0x02 }, // (Offset,Value)-Pair #7 + + { 0x39, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xAB }, // (Offset,Value)-Pair #9 + + { 0x90, 0xBF }, // (Offset,Value)-Pair #10 + { 0x91, 0x8A }, // (Offset,Value)-Pair #11 + { 0x92, 0x2A }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities2 +// ****************************************************************** +/* Unreal Championship's version is different */ +SOOVPA<12> XInputGetCapabilities4_1_0_4928 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // mov ebx, ds:KeRaiseIrqlToDpcLevel + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x1D }, // (Offset,Value)-Pair #2 + { 0x0D, 0xDC }, // (Offset,Value)-Pair #3 + + // test byte ptr [esi+4], 2 + { 0x25, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x26, 0x46 }, // (Offset,Value)-Pair #5 + { 0x27, 0x04 }, // (Offset,Value)-Pair #6 + { 0x28, 0x02 }, // (Offset,Value)-Pair #7 + + // rep stosd + { 0x39, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xAB }, // (Offset,Value)-Pair #9 + + // mov edi, offset unknown_libname_2 + { 0x90, 0xBF }, // (Offset,Value)-Pair #10 + { 0x91, 0x8C }, // (Offset,Value)-Pair #11 + { 0x92, 0x8C }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities5 +// ****************************************************************** +/* DOAV */ +SOOVPA<12> XInputGetCapabilities5_1_0_4928 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // mov ebx, ds:KeRaiseIrqlToDpcLevel + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x1D }, // (Offset,Value)-Pair #2 + { 0x0D, 0xF4 }, // (Offset,Value)-Pair #3 + + // test byte ptr [esi+4], 2 + { 0x25, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x26, 0x46 }, // (Offset,Value)-Pair #5 + { 0x27, 0x04 }, // (Offset,Value)-Pair #6 + { 0x28, 0x02 }, // (Offset,Value)-Pair #7 + + // rep stosd + { 0x39, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xAB }, // (Offset,Value)-Pair #9 + + // mov edi, offset unknown_libname_2 + { 0x90, 0xBF }, // (Offset,Value)-Pair #10 + { 0x91, 0x17 }, // (Offset,Value)-Pair #11 + { 0x92, 0xB7 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities6 +// ****************************************************************** +/* Defender */ +SOOVPA<12> XInputGetCapabilities6_1_0_4928 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // mov ebx, ds:KeRaiseIrqlToDpcLevel + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x1D }, // (Offset,Value)-Pair #2 + { 0x0D, 0x78 }, // (Offset,Value)-Pair #3 + + // test byte ptr [esi+4], 2 + { 0x25, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x26, 0x46 }, // (Offset,Value)-Pair #5 + { 0x27, 0x04 }, // (Offset,Value)-Pair #6 + { 0x28, 0x02 }, // (Offset,Value)-Pair #7 + + // rep stosd + { 0x39, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xAB }, // (Offset,Value)-Pair #9 + + // mov edi, offset unknown_libname_2 + { 0x90, 0xBF }, // (Offset,Value)-Pair #10 + { 0x91, 0xE5 }, // (Offset,Value)-Pair #11 + { 0x92, 0xCF }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities +// ****************************************************************** +SOOVPA<12> XInputGetCapabilities_1_0_4831 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x1D }, // (Offset,Value)-Pair #2 + { 0x0D, 0x88 }, // (Offset,Value)-Pair #3 + + { 0x25, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x26, 0x46 }, // (Offset,Value)-Pair #5 + { 0x27, 0x04 }, // (Offset,Value)-Pair #6 + { 0x28, 0x02 }, // (Offset,Value)-Pair #7 + + { 0x39, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xAB }, // (Offset,Value)-Pair #9 + + { 0xAF, 0xC7 }, // (Offset,Value)-Pair #10 + { 0xB0, 0x45 }, // (Offset,Value)-Pair #11 + { 0xB1, 0xE2 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities2 +// ****************************************************************** +SOOVPA<12> XInputGetCapabilities2_1_0_4831 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x1D }, // (Offset,Value)-Pair #2 + { 0x0D, 0x50 }, // (Offset,Value)-Pair #3 + + { 0x25, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x26, 0x46 }, // (Offset,Value)-Pair #5 + { 0x27, 0x04 }, // (Offset,Value)-Pair #6 + { 0x28, 0x02 }, // (Offset,Value)-Pair #7 + + { 0x39, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xAB }, // (Offset,Value)-Pair #9 + + { 0xAF, 0xC7 }, // (Offset,Value)-Pair #10 + { 0xB0, 0x45 }, // (Offset,Value)-Pair #11 + { 0xB1, 0xE2 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities3 +// ****************************************************************** +SOOVPA<12> XInputGetCapabilities3_1_0_4831 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x1D }, // (Offset,Value)-Pair #2 + { 0x0D, 0x14 }, // (Offset,Value)-Pair #3 + + { 0x25, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x26, 0x46 }, // (Offset,Value)-Pair #5 + { 0x27, 0x04 }, // (Offset,Value)-Pair #6 + { 0x28, 0x02 }, // (Offset,Value)-Pair #7 + + { 0x39, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xAB }, // (Offset,Value)-Pair #9 + + { 0xAF, 0xC7 }, // (Offset,Value)-Pair #10 + { 0xB0, 0x45 }, // (Offset,Value)-Pair #11 + { 0xB1, 0xE2 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities4 +// ****************************************************************** +SOOVPA<12> XInputGetCapabilities4_1_0_4831 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, // (Offset,Value)-Pair #1 + { 0x0C, 0x1D }, // (Offset,Value)-Pair #2 + { 0x0D, 0x9C }, // (Offset,Value)-Pair #3 + + { 0x25, 0xF6 }, // (Offset,Value)-Pair #4 + { 0x26, 0x46 }, // (Offset,Value)-Pair #5 + { 0x27, 0x04 }, // (Offset,Value)-Pair #6 + { 0x28, 0x02 }, // (Offset,Value)-Pair #7 + + { 0x39, 0xF3 }, // (Offset,Value)-Pair #8 + { 0x3A, 0xAB }, // (Offset,Value)-Pair #9 + + { 0xAF, 0xC7 }, // (Offset,Value)-Pair #10 + { 0xB0, 0x45 }, // (Offset,Value)-Pair #11 + { 0xB1, 0xE2 }, // (Offset,Value)-Pair #12 + } +}; + +// ****************************************************************** +// * XInputGetCapabilities5 +// ****************************************************************** +SOOVPA<12> XInputGetCapabilities5_1_0_4831 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x22, 0xF6 }, + { 0x23, 0x46 }, + { 0x24, 0x04 }, + { 0x25, 0x02 }, + { 0x44, 0x6A }, + { 0x45, 0x12 }, + { 0xF1, 0xC2 }, + { 0xF2, 0x08 }, + } +}; + +// ****************************************************************** +// * GetOverlappedResult +// ****************************************************************** +SOOVPA<7> GetOverlappedResult_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x75 }, + { 0x18, 0xC0 }, + { 0x27, 0xEB }, + { 0x32, 0x00 }, + { 0x3F, 0xEB }, + { 0x4C, 0x89 }, + { 0x59, 0x56 }, + } +}; + +// ****************************************************************** +// * XLaunchNewImageA +// ****************************************************************** +SOOVPA<8> XLaunchNewImageA_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x80 }, + { 0x3E, 0xC0 }, + { 0x5E, 0xFF }, + { 0x7E, 0xFC }, + { 0x9E, 0x08 }, + { 0xBE, 0x50 }, + { 0xDE, 0x05 }, + { 0xFE, 0x85 }, + } +}; + +// ****************************************************************** +// * XLaunchNewImageA +// ****************************************************************** +SOOVPA<12> XLaunchNewImageA_1_0_4928 = +{ + 0, // Large == 0 + 12, // Count == 12 + + XRefNotSaved, + XRefNotUsed, + + { + // XLaunchNewImageA+0x03 : sub esp, 0x384 + { 0x03, 0x81 }, + { 0x04, 0xEC }, + { 0x05, 0x84 }, + { 0x06, 0x03 }, + { 0x07, 0x00 }, + { 0x08, 0x00 }, + // XLaunchNewImageA+0x33 : cmp al, 0x44 + { 0x33, 0x3C }, + { 0x34, 0x44 }, + // XLaunchNewImageA+0x41 : cmp byte ptr [esi+1], 0x3A + { 0x41, 0x80 }, + { 0x42, 0x7E }, + { 0x43, 0x02 }, + { 0x44, 0x5C }, + } +}; + +// ****************************************************************** +// * XGetLaunchInfo +// ****************************************************************** +SOOVPA<7> XGetLaunchInfo_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, + { 0x18, 0x15 }, + { 0x25, 0x8B }, + { 0x32, 0x30 }, + { 0x3F, 0x00 }, + { 0x4C, 0x83 }, + { 0x59, 0x5E }, + } +}; + +// ****************************************************************** +// * XSetProcessQuantumLength +// ****************************************************************** +SOOVPA<7> XSetProcessQuantumLength_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0xA1 }, + { 0x04, 0x00 }, + { 0x07, 0x4C }, + { 0x0A, 0x8B }, + { 0x0D, 0x8D }, + { 0x10, 0x89 }, + { 0x13, 0xC2 }, + } +}; + +// ****************************************************************** +// * timeSetEvent +// ****************************************************************** +SOOVPA<7> timeSetEvent_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x8D }, + { 0x3E, 0x89 }, + { 0x5E, 0x15 }, + { 0x7E, 0x3F }, + { 0x9E, 0x03 }, + { 0xBE, 0x32 }, + { 0xDE, 0x89 }, + } +}; + +// ****************************************************************** +// * timeKillEvent +// ****************************************************************** +SOOVPA<8> timeKillEvent_1_0_4627 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0E, 0x8B }, + { 0x1A, 0xC2 }, + { 0x28, 0x8D }, + { 0x36, 0x56 }, + { 0x44, 0x00 }, + { 0x52, 0x00 }, + { 0x60, 0x5E }, + { 0x6E, 0x00 }, + } +}; + +// ****************************************************************** +// * RaiseException +// ****************************************************************** +SOOVPA<7> RaiseException_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x83 }, + { 0x14, 0x8B }, + { 0x1F, 0xC7 }, + { 0x2A, 0x10 }, + { 0x35, 0x89 }, + { 0x40, 0x5F }, + { 0x4B, 0xFF }, + } +}; + + +// ****************************************************************** +// * VirtualProtect +// ****************************************************************** +SOOVPA<7> VirtualProtect_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + 0/*XREF_VirtualProtect*/, // Xref Is Saved + XRefNotUsed, + + { + { 0x04, 0x8D }, + { 0x0A, 0x24 }, + { 0x10, 0x10 }, + { 0x18, 0x85 }, + { 0x1C, 0x33 }, + { 0x22, 0xE8 }, + { 0x28, 0xC0 }, + } +}; + +// ****************************************************************** +// * CreateSemaphoreA +// ****************************************************************** +SOOVPA<7> CreateSemaphoreA_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0x74 }, + { 0x16, 0x50 }, + { 0x22, 0x10 }, + { 0x31, 0x85 }, + { 0x3A, 0x75 }, + { 0x4A, 0x8B }, + { 0x55, 0x33 }, + } +}; + +// ****************************************************************** +// * ReleaseSemaphore +// ****************************************************************** +SOOVPA<7> ReleaseSemaphore_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x0C }, + { 0x08, 0xFF }, + { 0x0D, 0x15 }, + { 0x12, 0x85 }, + { 0x17, 0xC0 }, + { 0x1C, 0xE8 }, + { 0x21, 0x33 }, + } +}; + +// ****************************************************************** +// * XMountAlternateTitleA +// ****************************************************************** +SOOVPA<7> XMountAlternateTitleA_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x0F }, + { 0x3E, 0x56 }, + { 0x5E, 0xFF }, + { 0x7E, 0x8D }, + { 0x9E, 0x50 }, + { 0xBE, 0x66 }, + { 0xDE, 0xF0 }, + } +}; + +// ****************************************************************** +// * XMountAlternateTitleA +// ****************************************************************** +SOOVPA<7> XMountAlternateTitleA_1_0_4928 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x0F }, + { 0x3E, 0x83 }, + { 0x5E, 0x03 }, + { 0x7E, 0x8D }, + { 0x9E, 0x00 }, + { 0xBE, 0x01 }, + { 0xDE, 0x45 }, + } +}; + +// ****************************************************************** +// * XUnmountAlternateTitleA +// ****************************************************************** +SOOVPA<7> XUnmountAlternateTitleA_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0x65 }, + { 0x16, 0xFF }, + { 0x23, 0x83 }, + { 0x2E, 0x45 }, + { 0x3A, 0x50 }, + { 0x46, 0x0B }, + { 0x52, 0x50 }, + } +}; + +// ****************************************************************** +// * XGetFileCacheSize +// ****************************************************************** +SOOVPA<6> XGetFileCacheSize_1_0_4627 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0xFF }, + { 0x01, 0x15 }, + { 0x06, 0xC1 }, + { 0x07, 0xE0 }, + { 0x08, 0x0C }, + { 0x09, 0xC3 }, + } +}; + +// ****************************************************************** +// * MoveFileA +// ****************************************************************** +SOOVPA<7> MoveFileA_1_0_4627 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x11, 0x8D }, + { 0x24, 0xE8 }, + { 0x37, 0x50 }, + { 0x4A, 0x7D }, + { 0x5D, 0xFF }, + { 0x74, 0xFF }, + { 0x83, 0x33 }, + } +}; + +// ****************************************************************** +// * XInputGetDeviceDescription +// ****************************************************************** +SOOVPA<9> XInputGetDeviceDescription_1_0_4831 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x83 }, + { 0x04, 0xEC }, + { 0x05, 0x48 }, + { 0x06, 0x83 }, + { 0x07, 0x65 }, + { 0x08, 0xF8 }, + { 0x09, 0x00 }, + { 0x34, 0x6A }, + { 0x35, 0x06 }, + } +}; + +// ****************************************************************** +// * XAPI_1_0_4627 +// ****************************************************************** +OOVPATable XAPI_1_0_4627[] = +{ + // XFormatUtilityDrive + { + (OOVPA*)&XFormatUtilityDrive_1_0_4627, + + XTL::EmuXFormatUtilityDrive, + + #ifdef _DEBUG_TRACE + "EmuXFormatUtilityDrive" + #endif + }, + // SetThreadPriorityBoost + { + (OOVPA*)&SetThreadPriorityBoost_1_0_4627, + + XTL::EmuSetThreadPriorityBoost, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriorityBoost" + #endif + }, + // SetThreadPriority (* unchanged since 3911 *) + { + (OOVPA*)&SetThreadPriority_1_0_3911, + + XTL::EmuSetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriority" + #endif + }, + // GetThreadPriority + { + (OOVPA*)&GetThreadPriority_1_0_4627, + + XTL::EmuGetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuGetThreadPriority" + #endif + }, + // XRegisterThreadNotifyRoutine (* unchanged since 3911 *) + { + (OOVPA*)&XRegisterThreadNotifyRoutine_1_0_3911, + + XTL::EmuXRegisterThreadNotifyRoutine, + + #ifdef _DEBUG_TRACE + "EmuXRegisterThreadNotifyRoutine" + #endif + }, + // QueryPerformanceCounter (* unchanged since 4361 *) + { + (OOVPA*)&QueryPerformanceCounter_1_0_4361, + + XTL::EmuQueryPerformanceCounter, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceCounter" + #endif + }, + // QueryPerformanceFrequency (* unchanged since 4361 *) + { + (OOVPA*)&QueryPerformanceFrequency_1_0_4361, + + XTL::EmuQueryPerformanceFrequency, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceFrequency" + #endif + }, + // XMountUtilityDrive (* unchanged since 4432 *) + { + (OOVPA*)&XMountUtilityDrive_1_0_4432, + + XTL::EmuXMountUtilityDrive, + + #ifdef _DEBUG_TRACE + "EmuXMountUtilityDrive" + #endif + }, + // XInitDevices (* unchanged since 1.0.3911 *) + { + (OOVPA*)&XInitDevices_1_0_3911, + + XTL::EmuXInitDevices, + + #ifdef _DEBUG_TRACE + "EmuXInitDevices" + #endif + }, + // XGetDevices (* unchanged since 1.0.4134 *) + { + (OOVPA*)&XGetDevices_1_0_4134, + + XTL::EmuXGetDevices, + + #ifdef _DEBUG_TRACE + "EmuXGetDevices" + #endif + }, + // XInputOpen (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XInputOpen_1_0_4361, + + XTL::EmuXInputOpen, + + #ifdef _DEBUG_TRACE + "EmuXInputOpen" + #endif + }, + // XInputPoll (* unchanged since 4134 *) + { + (OOVPA*)&XInputPoll_1_0_4134, + + XTL::EmuXInputPoll, + + #ifdef _DEBUG_TRACE + "EmuXInputPoll" + #endif + }, + // XID_fCloseDevice + { + (OOVPA*)&XID_fCloseDevice_1_0_4627, 0, + + #ifdef _DEBUG_TRACE + "XID_fCloseDevice (4627) (XREF)" + #endif + }, + // XID_fCloseDevice + { + (OOVPA*)&XID_fCloseDevice_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "XID_fCloseDevice (XREF)" + #endif + }, + // XInputClose + { + (OOVPA*)&XInputClose_1_0_4928, + + XTL::EmuXInputClose, + + #ifdef _DEBUG_TRACE + "EmuXInputClose" + #endif + }, + // XInputGetCapabilities (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XInputGetCapabilities_1_0_4361, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // XInputGetState (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XInputGetState_1_0_4361, + + XTL::EmuXInputGetState, + + #ifdef _DEBUG_TRACE + "EmuXInputGetState" + #endif + }, + // XInputGetState + { + (OOVPA*)&XInputGetState_1_0_4928, + + XTL::EmuXInputGetState, + + #ifdef _DEBUG_TRACE + "EmuXInputGetState" + #endif + }, + // XInputGetCapabilities + { + (OOVPA*)&XInputGetCapabilities_1_0_4928, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // XInputGetCapabilities2 + { + (OOVPA*)&XInputGetCapabilities2_1_0_4928, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities2" + #endif + }, + // XInputGetCapabilities3 + { + (OOVPA*)&XInputGetCapabilities3_1_0_4928, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities3" + #endif + }, + // XInputGetCapabilities4 + { + (OOVPA*)&XInputGetCapabilities4_1_0_4928, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities4" + #endif + }, + // XInputGetCapabilities5 + { + (OOVPA*)&XInputGetCapabilities5_1_0_4928, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities(5)" + #endif + }, + // XInputSetState (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XInputSetState_1_0_4361, + + XTL::EmuXInputSetState, + + #ifdef _DEBUG_TRACE + "EmuXInputSetState" + #endif + }, + // XInputSetState + { + (OOVPA*)&XInputSetState_1_0_4928, + + XTL::EmuXInputSetState, + + #ifdef _DEBUG_TRACE + "EmuXInputSetState (4928)" + #endif + }, + /* obsolete? + // XapiThreadStartup (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XapiThreadStartup_1_0_4361, + + XTL::EmuXapiThreadStartup, + + #ifdef _DEBUG_TRACE + "EmuXapiThreadStartup" + #endif + }, + //*/ + //*/ + // XInputGetCapabilities + { + (OOVPA*)&XInputGetCapabilities_1_0_4831, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities_4831" + #endif + }, + // XInputGetCapabilities2 + { + (OOVPA*)&XInputGetCapabilities2_1_0_4831, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities2_4831" + #endif + }, + // XInputGetCapabilities3 + { + (OOVPA*)&XInputGetCapabilities3_1_0_4831, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities3_4831" + #endif + }, + // XInputGetCapabilities4 + { + (OOVPA*)&XInputGetCapabilities4_1_0_4831, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities4_4831" + #endif + }, + // XInputGetCapabilities5 + { + (OOVPA*)&XInputGetCapabilities5_1_0_4831, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities5_4831" + #endif + }, + // XInputGetCapabilities6 + { + (OOVPA*)&XInputGetCapabilities6_1_0_4928, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities6_4928" + #endif + }, + // +s + /* not necessary? + // XCalculateSignatureBeginEx + { + (OOVPA*)&XCalculateSignatureBeginEx_1_0_4627, + + XTL::EmuXCalculateSignatureBeginEx, + + #ifdef _DEBUG_TRACE + "EmuXCalculateSignatureBeginEx (XREF&FUNC)" + #endif + }, + // XCalculateSignatureBegin + { + (OOVPA*)&XCalculateSignatureBegin_1_0_4627, + + XTL::EmuXCalculateSignatureBegin, + + #ifdef _DEBUG_TRACE + "EmuXCalculateSignatureBegin" + #endif + }, + // XCalculateSignatureUpdate + { + (OOVPA*)&XCalculateSignatureUpdate_1_0_4627, + + XTL::EmuXCalculateSignatureUpdate, + + #ifdef _DEBUG_TRACE + "EmuXCalculateSignatureUpdate" + #endif + }, + // XCalculateSignatureEnd + { + (OOVPA*)&XCalculateSignatureEnd_1_0_4627, + + XTL::EmuXCalculateSignatureEnd, + + #ifdef _DEBUG_TRACE + "EmuXCalculateSignatureEnd" + #endif + }, + //*/ + // s+ + // CreateFiber (* unchanged since 3911 *) + { + (OOVPA*)&CreateFiber_1_0_3911, + + XTL::EmuCreateFiber, + + #ifdef _DEBUG_TRACE + "EmuCreateFiber" + #endif + }, + // DeleteFiber (* unchanged since 3911 *) + { + (OOVPA*)&DeleteFiber_1_0_3911, + + XTL::EmuDeleteFiber, + + #ifdef _DEBUG_TRACE + "EmuDeleteFiber" + #endif + }, + // GetTimeZoneInformation (* unchanged since 3911 *) + { + (OOVPA*)&GetTimeZoneInformation_1_0_3911, + + XTL::EmuGetTimeZoneInformation, + + #ifdef _DEBUG_TRACE + "GetTimeZoneInformation" + #endif + }, + // GetExitCodeThread (* unchanged since 3911 *) + { + (OOVPA*)&GetExitCodeThread_1_0_3911, + + XTL::EmuGetExitCodeThread, + + #ifdef _DEBUG_TRACE + "EmuGetExitCodeThread" + #endif + }, + // GetOverlappedResult + { + (OOVPA*)&GetOverlappedResult_1_0_4627, + + XTL::EmuGetOverlappedResult, + + #ifdef _DEBUG_TRACE + "EmuGetOverlappedResult" + #endif + }, + // XLaunchNewImageA + { + (OOVPA*)&XLaunchNewImageA_1_0_4627, + XTL::EmuXLaunchNewImage, + + #ifdef _DEBUG_TRACE + "EmuXLaunchNewImageA" + #endif + }, + // XLaunchNewImageA + { + (OOVPA*)&XLaunchNewImageA_1_0_4928, + XTL::EmuXLaunchNewImage, + + #ifdef _DEBUG_TRACE + "EmuXLaunchNewImageA" + #endif + }, + // XGetLaunchInfo + { + (OOVPA*)&XGetLaunchInfo_1_0_4627, + XTL::EmuXGetLaunchInfo, + + #ifdef _DEBUG_TRACE + "EmuXGetLaunchInfo" + #endif + }, + // XSetProcessQuantumLength + { + (OOVPA*)&XSetProcessQuantumLength_1_0_4627, + XTL::EmuXSetProcessQuantumLength, + + #ifdef _DEBUG_TRACE + "EmuXSetProcessQuantumLength" + #endif + }, + // SignalObjectAndWait (* unchanged since 3911 *) + { + (OOVPA*)&SignalObjectAndWait_1_0_3911, + + XTL::EmuSignalObjectAndWait, + + #ifdef _DEBUG_TRACE + "EmuSignalObjectAndWait" + #endif + }, + // timeSetEvent + { + (OOVPA*)&timeSetEvent_1_0_4627, + XTL::EmutimeSetEvent, + + #ifdef _DEBUG_TRACE + "EmutimeSetEvent" + #endif + }, + // timeKillEvent + { + (OOVPA*)&timeKillEvent_1_0_4627, + XTL::EmutimeKillEvent, + + #ifdef _DEBUG_TRACE + "EmutimeKillEvent" + #endif + }, + // RaiseException + { + (OOVPA*)&RaiseException_1_0_4627, + XTL::EmuRaiseException, + + #ifdef _DEBUG_TRACE + "EmuRaiseException" + #endif + }, + // QueueUserAPC (* unchanged since 3911 *) + { + (OOVPA*)&QueueUserAPC_1_0_3911, + + XTL::EmuQueueUserAPC, + + #ifdef _DEBUG_TRACE + "EmuQueueUserAPC" + #endif + }, + // XMountAlternateTitleA + { + (OOVPA*)&XMountAlternateTitleA_1_0_4627, + XTL::EmuXMountAlternateTitle, + + #ifdef _DEBUG_TRACE + "XMountAlternateTitleA" + #endif + }, + // XMountAlternateTitleA + { + (OOVPA*)&XMountAlternateTitleA_1_0_4928, + XTL::EmuXMountAlternateTitle, + + #ifdef _DEBUG_TRACE + "XMountAlternateTitleA (4928)" + #endif + }, + // XUnmountAlternateTitleA + { + (OOVPA*)&XUnmountAlternateTitleA_1_0_4627, + XTL::EmuXUnmountAlternateTitle, + + #ifdef _DEBUG_TRACE + "XUnmountAlternateTitleA" + #endif + }, + // GetFileAttributesA (* unchanged since 4134 *) + { + (OOVPA*)&GetFileAttributesA_1_0_4134, + XTL::EmuGetFileAttributesA, + + #ifdef _DEBUG_TRACE + "EmuGetFileAttributesA" + #endif + }, + // XGetFileCacheSize + { + (OOVPA*)&XGetFileCacheSize_1_0_4627, + XTL::EmuXGetFileCacheSize, + + #ifdef _DEBUG_TRACE + "XGetFileCacheSize" + #endif + }, + // XInputGetDeviceDescription + { + (OOVPA*)&XInputGetDeviceDescription_1_0_4831, + XTL::EmuXInputGetDeviceDescription, + + #ifdef _DEBUG_TRACE + "XInputGetDeviceDescription_4831" + #endif + }, + // MoveFileA + /*{ + (OOVPA*)&MoveFileA_1_0_4627, + XTL::EmuMoveFileA, + + #ifdef _DEBUG_TRACE + "MoveFileA" + #endif + },*/ +}; + +// ****************************************************************** +// * XAPI_1_0_4627_SIZE +// ****************************************************************** +uint32 XAPI_1_0_4627_SIZE = sizeof(XAPI_1_0_4627); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5233.h b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5233.h new file mode 100644 index 000000000..e8ad901fe --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5233.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.5233.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_1_0_5233_H +#define XAPI_1_0_5233_H + +#include "OOVPA.h" + +extern OOVPATable XAPI_1_0_5233[]; +extern uint32 XAPI_1_0_5233_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5233.inl new file mode 100644 index 000000000..8f5991584 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5233.inl @@ -0,0 +1,356 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5233.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 +// * +// ****************************************************************** + + +// ****************************************************************** +// * XInitDevices +// ****************************************************************** +// * NOTE: We are actually intercepting USBD_Init, because +// * XInitDevices Simply redirects to that function +// ****************************************************************** +SOOVPA<7> XInitDevices_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0E, 0x75 }, + { 0x20, 0xBE }, + { 0x2E, 0xC0 }, + { 0x3E, 0xEC }, + { 0x50, 0x0F }, + { 0x5F, 0xE8 }, + { 0x70, 0x5F }, + } +}; + +// ****************************************************************** +// * XInputGetCapabilities +// ****************************************************************** +SOOVPA<8> XInputGetCapabilities_1_0_5233 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0x85 }, + { 0x3C, 0x8A }, + { 0x5B, 0x00 }, + { 0x85, 0x45 }, + { 0xA0, 0xD4 }, + { 0xBB, 0x02 }, + { 0xDA, 0x8D }, + { 0xF9, 0x46 }, + } +}; + +// ****************************************************************** +// * XGetDeviceChanges +// ****************************************************************** +SOOVPA<7> XGetDeviceChanges_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0C, 0x75 }, + { 0x1A, 0x53 }, + { 0x28, 0xF7 }, + { 0x36, 0x56 }, + { 0x44, 0x89 }, + { 0x52, 0xC8 }, + { 0x60, 0x5F }, + } +}; + +// ****************************************************************** +// * XInputSetState +// ****************************************************************** +SOOVPA<7> XInputSetState_1_0_5233 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x81 }, + { 0x0C, 0xF6 }, + { 0x13, 0x57 }, + { 0x1A, 0x08 }, + { 0x21, 0x8B }, + { 0x28, 0x88 }, + { 0x30, 0xC2 }, + } +}; + +// ****************************************************************** +// * XGetFileCacheSize +// ****************************************************************** +SOOVPA<6> XGetFileCacheSize_1_0_5344 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0xFF }, + { 0x01, 0x15 }, + { 0x06, 0xC1 }, + { 0x07, 0xE0 }, + { 0x08, 0x0C }, + { 0x09, 0xC3 }, + } +}; + +// ****************************************************************** +// * XAPI_1_0_5233 +// ****************************************************************** +OOVPATable XAPI_1_0_5233[] = +{ + // GetTimeZoneInformation (* unchanged since 3911 *) + { + (OOVPA*)&GetTimeZoneInformation_1_0_3911, + + XTL::EmuGetTimeZoneInformation, + + #ifdef _DEBUG_TRACE + "GetTimeZoneInformation" + #endif + }, + // SetThreadPriority (* unchanged since 3911 *) + { + (OOVPA*)&SetThreadPriority_1_0_3911, + + XTL::EmuSetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriority" + #endif + }, + // SetThreadPriorityBoost (* unchanged since 4627 *) + { + (OOVPA*)&SetThreadPriorityBoost_1_0_4627, + + XTL::EmuSetThreadPriorityBoost, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriorityBoost" + #endif + }, + // GetThreadPriority (* unchanged since 4627 *) + { + (OOVPA*)&GetThreadPriority_1_0_4627, + + XTL::EmuGetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuGetThreadPriority" + #endif + }, + // XRegisterThreadNotifyRoutine (* unchanged since 3911 *) + { + (OOVPA*)&XRegisterThreadNotifyRoutine_1_0_3911, + + XTL::EmuXRegisterThreadNotifyRoutine, + + #ifdef _DEBUG_TRACE + "EmuXRegisterThreadNotifyRoutine" + #endif + }, + + // QueryPerformanceCounter (* unchanged since 4361 *) + { + (OOVPA*)&QueryPerformanceCounter_1_0_4361, + + XTL::EmuQueryPerformanceCounter, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceCounter" + #endif + }, + // QueryPerformanceFrequency (* unchanged since 4361 *) + { + (OOVPA*)&QueryPerformanceFrequency_1_0_4361, + + XTL::EmuQueryPerformanceFrequency, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceFrequency" + #endif + }, + // XMountUtilityDrive (* unchanged since 4432 *) + { + (OOVPA*)&XMountUtilityDrive_1_0_4432, + + XTL::EmuXMountUtilityDrive, + + #ifdef _DEBUG_TRACE + "EmuXMountUtilityDrive" + #endif + }, + // XInitDevices + { + (OOVPA*)&XInitDevices_1_0_5233, + + XTL::EmuXInitDevices, + + #ifdef _DEBUG_TRACE + "EmuXInitDevices" + #endif + }, + // XGetDevices (* unchanged since 1.0.4134 *) + { + (OOVPA*)&XGetDevices_1_0_4134, + + XTL::EmuXGetDevices, + + #ifdef _DEBUG_TRACE + "EmuXGetDevices" + #endif + }, + // XGetDeviceChanges + { + (OOVPA*)&XGetDeviceChanges_1_0_5233, + + XTL::EmuXGetDeviceChanges, + + #ifdef _DEBUG_TRACE + "EmuXGetDeviceChanges" + #endif + }, + // XInputOpen (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XInputOpen_1_0_4361, + + XTL::EmuXInputOpen, + + #ifdef _DEBUG_TRACE + "EmuXInputOpen" + #endif + }, + // XInputGetCapabilities + { + (OOVPA*)&XInputGetCapabilities_1_0_5233, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // XID_fCloseDevice (* unchanged since 1.0.4928 *) + { + (OOVPA*)&XID_fCloseDevice_1_0_4928, 0, + + #ifdef _DEBUG_TRACE + "XID_fCloseDevice (XREF)" + #endif + }, + // XInputClose (* unchanged since 1.0.4928 *) + { + (OOVPA*)&XInputClose_1_0_4928, + + XTL::EmuXInputClose, + + #ifdef _DEBUG_TRACE + "EmuXInputClose" + #endif + }, + // XInputGetState (* unchanged since 1.0.4928 *) + { + (OOVPA*)&XInputGetState_1_0_4928, + + XTL::EmuXInputGetState, + + #ifdef _DEBUG_TRACE + "EmuXInputGetState" + #endif + }, + // XInputSetState + { + (OOVPA*)&XInputSetState_1_0_5233, + + XTL::EmuXInputSetState, + + #ifdef _DEBUG_TRACE + "EmuXInputSetState" + #endif + }, + // XGetFileCacheSize + { + (OOVPA*)&XGetFileCacheSize_1_0_5344, + XTL::EmuXGetFileCacheSize, + + #ifdef _DEBUG_TRACE + "XGetFileCacheSize" + #endif + }, + // QueueUserAPC (* unchanged since 3911 *) + { + (OOVPA*)&QueueUserAPC_1_0_3911, + + XTL::EmuQueueUserAPC, + + #ifdef _DEBUG_TRACE + "EmuQueueUserAPC" + #endif + }, + // GetFileAttributesA (* unchanged since 4134 *) + { + (OOVPA*)&GetFileAttributesA_1_0_4134, + XTL::EmuGetFileAttributesA, + + #ifdef _DEBUG_TRACE + "EmuGetFileAttributesA" + #endif + }, +}; + +// ****************************************************************** +// * XAPI_1_0_5233_SIZE +// ****************************************************************** +uint32 XAPI_1_0_5233_SIZE = sizeof(XAPI_1_0_5233); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5558.h b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5558.h new file mode 100644 index 000000000..2aae1c7bf --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5558.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.5558.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_1_0_5558_H +#define XAPI_1_0_5558_H + +#include "OOVPA.h" + +extern OOVPATable XAPI_1_0_5558[]; +extern uint32 XAPI_1_0_5558_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5558.inl new file mode 100644 index 000000000..14dab7131 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5558.inl @@ -0,0 +1,780 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5558.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * RtlCreateHeap +// ****************************************************************** +SOOVPA<8> RtlCreateHeap_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x45 }, + { 0x3E, 0xFF }, + { 0x5E, 0x8C }, + { 0x7E, 0x75 }, + { 0xA1, 0x89 }, + { 0xBE, 0xC7 }, + { 0xDE, 0x00 }, + { 0xFE, 0x89 }, + } +}; + +// ****************************************************************** +// * RtlAllocateHeap +// ****************************************************************** +SOOVPA<8> RtlAllocateHeap_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1E, 0x8B }, + { 0x3E, 0x7D }, + { 0x5E, 0x00 }, + { 0x7E, 0x45 }, + { 0x9E, 0xCF }, + { 0xBE, 0x8D }, + { 0xDE, 0x45 }, + { 0xFE, 0x8B }, + } +}; + +// ****************************************************************** +// * RtlSizeHeap +// ****************************************************************** +SOOVPA<8> RtlSizeHeap_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x8A }, + { 0x0A, 0x05 }, + { 0x10, 0xA8 }, + { 0x16, 0x51 }, + { 0x1C, 0xC2 }, + { 0x22, 0xF0 }, + { 0x28, 0xE0 }, + { 0x2E, 0x00 }, + } +}; + +// ****************************************************************** +// * XInputGetCapabilities +// ****************************************************************** +SOOVPA<8> XInputGetCapabilities_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x1D, 0x85 }, + { 0x3C, 0x8A }, + { 0x5B, 0x00 }, + { 0x7A, 0x45 }, + { 0x99, 0xD4 }, + { 0xB8, 0x02 }, + { 0xD7, 0x8D }, + { 0xF6, 0x46 }, + } +}; + +// ****************************************************************** +// * XInputGetState +// ****************************************************************** +SOOVPA<7> XInputGetState_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0D, 0x0C }, + { 0x1C, 0x5E }, + { 0x2B, 0xBB }, + { 0x3A, 0x80 }, + { 0x49, 0x08 }, + { 0x58, 0xF3 }, + { 0x67, 0x15 }, + } +}; + +// ****************************************************************** +// * XapiInitProcess +// ****************************************************************** +SOOVPA<8> XapiInitProcess_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x22, 0x6A }, + { 0x3E, 0x01 }, + { 0x5E, 0x7D }, + { 0x7E, 0x8B }, + { 0x9F, 0x68 }, + { 0xBE, 0x01 }, + { 0xDE, 0x6A }, + { 0xFE, 0x02 }, + } +}; + +// ****************************************************************** +// * XapiInitProcess +// ****************************************************************** +SOOVPA<8> XapiInitProcess_1_0_5659 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x22, 0x6A }, + { 0x3E, 0x01 }, + { 0x5E, 0xEB }, + { 0x7E, 0x8B }, + { 0x9F, 0x68 }, + { 0xBE, 0x01 }, + { 0xDE, 0x6A }, + { 0xFE, 0x02 }, + } +}; + +// ****************************************************************** +// * CreateSemaphoreA +// ****************************************************************** +SOOVPA<7> CreateSemaphoreA_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0A, 0x74 }, + { 0x16, 0x50 }, + { 0x22, 0x10 }, + { 0x31, 0x85 }, + { 0x3A, 0x75 }, + { 0x4A, 0x8B }, + { 0x55, 0x33 }, + } +}; + +// ****************************************************************** +// * ReleaseSemaphore +// ****************************************************************** +SOOVPA<7> ReleaseSemaphore_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x03, 0x0C }, + { 0x08, 0xFF }, + { 0x0D, 0x15 }, + { 0x12, 0x85 }, + { 0x17, 0xC0 }, + { 0x1C, 0xE8 }, + { 0x21, 0x33 }, + } +}; + +// ****************************************************************** +// * XLaunchNewImageA +// ****************************************************************** +SOOVPA<7> XLaunchNewImageA_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0xF0 }, + { 0x10, 0xD2 }, + { 0x19, 0x19 }, + { 0x22, 0x52 }, + { 0x2B, 0xE8 }, + { 0x34, 0x6A }, + { 0x3D, 0x10 }, + } +}; + +// ****************************************************************** +// * XGetLaunchInfo +// ****************************************************************** +SOOVPA<7> XGetLaunchInfo_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0B, 0x8B }, + { 0x18, 0x15 }, + { 0x25, 0x8B }, + { 0x32, 0x30 }, + { 0x3F, 0x00 }, + { 0x4C, 0x83 }, + { 0x59, 0x5E }, + } +}; + +// ****************************************************************** +// * GetFileAttributesA +// ****************************************************************** +SOOVPA<7> GetFileAttributesA_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x08, 0x08 }, + { 0x13, 0x8D }, + { 0x1C, 0x50 }, + { 0x26, 0xFF }, + { 0x30, 0x15 }, + { 0x3A, 0x45 }, + { 0x44, 0x83 }, + } +}; + +// ****************************************************************** +// * XMountMUA +// ****************************************************************** +SOOVPA<8> XMountMUA_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x22, 0x8A }, + { 0x3E, 0x89 }, + { 0x5E, 0x5C }, + { 0x7E, 0xF4 }, + { 0x9E, 0x50 }, + { 0xBE, 0xF8 }, + { 0xDE, 0x8D }, + { 0xFE, 0x09 }, + } +}; + +// ****************************************************************** +// * CreateFiber +// ****************************************************************** +SOOVPA<7> CreateFiber_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x10, 0x00 }, + { 0x22, 0x57 }, + { 0x34, 0x75 }, + { 0x46, 0x41 }, + { 0x58, 0xFC }, + { 0x6A, 0x39 }, + { 0x7C, 0xCE }, + } +}; + +// ****************************************************************** +// * DeleteFiber +// ****************************************************************** +SOOVPA<6> DeleteFiber_1_0_5558 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x44 }, + { 0x04, 0xFF }, + { 0x07, 0xFF }, + { 0x0A, 0xFF }, + { 0x10, 0xC2 }, + { 0x11, 0x04 }, + } +}; + +// ****************************************************************** +// * SwitchToFiber +// ****************************************************************** +SOOVPA<8> SwitchToFiber_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x06, 0x64 }, + { 0x0E, 0x44 }, + { 0x16, 0xFF }, + { 0x1E, 0x91 }, + { 0x26, 0x61 }, + { 0x31, 0x64 }, + { 0x36, 0x00 }, + { 0x3E, 0x00 }, + } +}; + +// ****************************************************************** +// * ConvertThreadToFiber +// ****************************************************************** +SOOVPA<7> ConvertThreadToFiber_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x05, 0x64 }, + { 0x0C, 0x8B }, + { 0x13, 0x8D }, + { 0x1A, 0x01 }, + { 0x21, 0x8B }, + { 0x28, 0x89 }, + { 0x31, 0x8B }, + } +}; + +// ****************************************************************** +// * XapiFiberStartup +// ****************************************************************** +SOOVPA<7> XapiFiberStartup_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0xE8 }, + { 0x10, 0xA1 }, + { 0x1C, 0x8B }, + { 0x25, 0xFF }, + { 0x2B, 0x0C }, + { 0x34, 0xC3 }, + { 0x3D, 0x00 }, + } +}; + +// ****************************************************************** +// * XID_fCloseDevice +// ****************************************************************** +SOOVPA<7> XID_fCloseDevice_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_FCLOSEDEVICE, // Xref Is Saved + XRefNotUsed, + + { + { 0x11, 0x45 }, + { 0x24, 0xFF }, + { 0x37, 0x89 }, + { 0x4A, 0x86 }, + { 0x5D, 0x53 }, + { 0x70, 0xFF }, + { 0x84, 0x89 }, + } +}; + +// ****************************************************************** +// * XInputClose +// ****************************************************************** +SOOVPA<9> XInputClose_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + XRefNotSaved, + 1, // Xref Is Used + + { + { 0x05, XREF_FCLOSEDEVICE }, + + { 0x00, 0x8B }, + { 0x01, 0x4C }, + { 0x02, 0x24 }, + { 0x03, 0x04 }, + { 0x04, 0xE8 }, + { 0x09, 0xC2 }, + { 0x0A, 0x04 }, + { 0x0B, 0x00 }, + } +}; + +// ****************************************************************** +// * XAPI_1_0_5558 +// ****************************************************************** +OOVPATable XAPI_1_0_5558[] = +{ + // SetThreadPriority (* unchanged since 3911 *) + { + (OOVPA*)&SetThreadPriority_1_0_3911, + + XTL::EmuSetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriority" + #endif + }, + // XRegisterThreadNotifyRoutine (* unchanged since 3911 *) + { + (OOVPA*)&XRegisterThreadNotifyRoutine_1_0_3911, + + XTL::EmuXRegisterThreadNotifyRoutine, + + #ifdef _DEBUG_TRACE + "EmuXRegisterThreadNotifyRoutine" + #endif + }, + // QueryPerformanceCounter (* unchanged since 4361 *) + { + (OOVPA*)&QueryPerformanceCounter_1_0_4361, + + XTL::EmuQueryPerformanceCounter, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceCounter" + #endif + }, + // QueryPerformanceFrequency (* unchanged since 4361 *) + { + (OOVPA*)&QueryPerformanceFrequency_1_0_4361, + + XTL::EmuQueryPerformanceFrequency, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceFrequency" + #endif + }, + // XMountUtilityDrive (* unchanged since 4432 *) + { + (OOVPA*)&XMountUtilityDrive_1_0_4432, + + XTL::EmuXMountUtilityDrive, + + #ifdef _DEBUG_TRACE + "EmuXMountUtilityDrive" + #endif + }, + // XInitDevices (* unchanged since 5233 *) + { + (OOVPA*)&XInitDevices_1_0_5233, + + XTL::EmuXInitDevices, + + #ifdef _DEBUG_TRACE + "EmuXInitDevices" + #endif + }, + // XGetDevices (* unchanged since 1.0.4134 *) + { + (OOVPA*)&XGetDevices_1_0_4134, + + XTL::EmuXGetDevices, + + #ifdef _DEBUG_TRACE + "EmuXGetDevices" + #endif + }, + // XGetDeviceChanges (* unchanged since 5233 *) + { + (OOVPA*)&XGetDeviceChanges_1_0_5233, + + XTL::EmuXGetDeviceChanges, + + #ifdef _DEBUG_TRACE + "EmuXGetDeviceChanges" + #endif + }, + // XInputOpen (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XInputOpen_1_0_4361, + + XTL::EmuXInputOpen, + + #ifdef _DEBUG_TRACE + "EmuXInputOpen" + #endif + }, + // XInputGetCapabilities + { + (OOVPA*)&XInputGetCapabilities_1_0_5558, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // XInputGetState + { + (OOVPA*)&XInputGetState_1_0_5558, + + XTL::EmuXInputGetState, + + #ifdef _DEBUG_TRACE + "EmuXInputGetState" + #endif + }, + // XInputSetState (* unchanged since 5233 *) + { + (OOVPA*)&XInputSetState_1_0_5233, + + XTL::EmuXInputSetState, + + #ifdef _DEBUG_TRACE + "EmuXInputSetState" + #endif + }, + /* obsolete? + // XapiThreadStartup (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XapiThreadStartup_1_0_4361, + + XTL::EmuXapiThreadStartup, + + #ifdef _DEBUG_TRACE + "EmuXapiThreadStartup" + #endif + }, + //*/ + // XLaunchNewImageA + { + (OOVPA*)&XLaunchNewImageA_1_0_5558, + XTL::EmuXLaunchNewImage, + + #ifdef _DEBUG_TRACE + "XLaunchNewImageA" + #endif + }, + // XGetLaunchInfo + { + (OOVPA*)&XGetLaunchInfo_1_0_5558, + XTL::EmuXGetLaunchInfo, + + #ifdef _DEBUG_TRACE + "XGetLaunchInfo" + #endif + }, + // QueueUserAPC (* unchanged since 3911 *) + { + (OOVPA*)&QueueUserAPC_1_0_3911, + + XTL::EmuQueueUserAPC, + + #ifdef _DEBUG_TRACE + "EmuQueueUserAPC" + #endif + }, + // GetFileAttributesA + { + (OOVPA*)&GetFileAttributesA_1_0_5558, + XTL::EmuGetFileAttributesA, + + #ifdef _DEBUG_TRACE + "GetFileAttributesA" + #endif + }, + // SetThreadPriorityBoost (* unchanged since 4627 *) + { + (OOVPA*)&SetThreadPriorityBoost_1_0_4627, + + XTL::EmuSetThreadPriorityBoost, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriorityBoost" + #endif + }, + // GetThreadPriority (* unchanged since 4627 *) + { + (OOVPA*)&GetThreadPriority_1_0_4627, + + XTL::EmuGetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuGetThreadPriority" + #endif + }, + // GetTimeZoneInformation (* unchanged since 3911 *) + { + (OOVPA*)&GetTimeZoneInformation_1_0_3911, + + XTL::EmuGetTimeZoneInformation, + + #ifdef _DEBUG_TRACE + "GetTimeZoneInformation" + #endif + }, + // SetThreadPriority (* unchanged since 3911 *) + { + (OOVPA*)&SetThreadPriority_1_0_3911, + + XTL::EmuSetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriority" + #endif + }, + // XMountMUA + { + (OOVPA*)&XMountMUA_1_0_5558, + XTL::EmuXMountMUA, + + #ifdef _DEBUG_TRACE + "EmuXMountMUA" + #endif + }, + // CreateFiber + { + (OOVPA*)&CreateFiber_1_0_5558, + + XTL::EmuCreateFiber, + + #ifdef _DEBUG_TRACE + "EmuCreateFiber" + #endif + }, + // DeleteFiber + { + (OOVPA*)&DeleteFiber_1_0_5558, + + XTL::EmuDeleteFiber, + + #ifdef _DEBUG_TRACE + "EmuDeleteFiber" + #endif + }, + // SwitchToFiber + { + (OOVPA*)&SwitchToFiber_1_0_5558, + + XTL::EmuSwitchToFiber, + + #ifdef _DEBUG_TRACE + "EmuSwitchToFiber" + #endif + }, + // ConvertThreadToFiber + { + (OOVPA*)&ConvertThreadToFiber_1_0_5558, + + XTL::EmuConvertThreadToFiber, + + #ifdef _DEBUG_TRACE + "EmuConvertThreadToFiber" + #endif + }, + //// XapiFiberStartup + //{ + // (OOVPA*)&XapiFiberStartup_1_0_5558, + // XTL::EmuXapiFiberStartup, + + // #ifdef _DEBUG_TRACE + // "XapiFiberStartup" + // #endif + //}, + // XID_fCloseDevice + { + (OOVPA*)&XID_fCloseDevice_1_0_5558, 0, + + #ifdef _DEBUG_TRACE + "XID_fCloseDevice (XREF)" + #endif + }, + // XInputClose + { + (OOVPA*)&XInputClose_1_0_5558, + + XTL::EmuXInputClose, + + #ifdef _DEBUG_TRACE + "EmuXInputClose" + #endif + }, +}; + +// ****************************************************************** +// * XAPI_1_0_5558_SIZE +// ****************************************************************** +uint32 XAPI_1_0_5558_SIZE = sizeof(XAPI_1_0_5558); diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5849.h b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5849.h new file mode 100644 index 000000000..e80d57ed7 --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5849.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.5849.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_1_0_5849_H +#define XAPI_1_0_5849_H + +#include "OOVPA.h" + +extern OOVPATable XAPI_1_0_5849[]; +extern uint32 XAPI_1_0_5849_SIZE; + +#endif diff --git a/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5849.inl b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5849.inl new file mode 100644 index 000000000..f82cfed9b --- /dev/null +++ b/src/CxbxKrnl/HLEDataBase - Copy/Xapi.1.0.5849.inl @@ -0,0 +1,464 @@ +// ****************************************************************** +// * +// * .,-::::: .,:: .::::::::. .,:: .: +// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; +// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' +// * $$$ 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.5849.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 +// * +// ****************************************************************** + +// ****************************************************************** +// * XapiInitProcess +// ****************************************************************** +SOOVPA<8> XapiInitProcess_1_0_5849 = +{ + 0, // Large == 0 + 8, // Count == 8 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x22, 0x6A }, + { 0x3E, 0x01 }, + { 0x5E, 0x75 }, + { 0x7E, 0x5E }, + { 0x9E, 0x7D }, + { 0xBE, 0x51 }, + { 0xDE, 0x00 }, + { 0xFE, 0x53 }, + } +}; + +// ****************************************************************** +// * XGetDeviceChanges +// ****************************************************************** +SOOVPA<7> XGetDeviceChanges_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0C, 0x75 }, + { 0x1A, 0x53 }, + { 0x28, 0xF7 }, + { 0x36, 0x56 }, + { 0x44, 0x89 }, + { 0x52, 0xC8 }, + { 0x60, 0x5F }, + } +}; + +// ****************************************************************** +// * GetThreadPriority +// ****************************************************************** +SOOVPA<7> GetThreadPriority_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x0D, 0xFF }, + { 0x16, 0x85 }, + { 0x1F, 0x15 }, + { 0x2A, 0x04 }, + { 0x35, 0xF1 }, + { 0x40, 0x8B }, + { 0x4B, 0xB8 }, + } +}; + +// ****************************************************************** +// * SetThreadPriorityBoost +// ****************************************************************** +SOOVPA<7> SetThreadPriorityBoost_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x07, 0xFF }, + { 0x10, 0xFF }, + { 0x19, 0x20 }, + { 0x22, 0x50 }, + { 0x2C, 0x8B }, + { 0x35, 0x33 }, + { 0x40, 0x33 }, + } +}; + +// ****************************************************************** +// * XGetSectionSize +// ****************************************************************** +SOOVPA<5> XGetSectionSize_1_0_5849 = +{ + 0, // Large == 0 + 5, // Count == 5 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x00, 0x8B }, + { 0x02, 0x24 }, + { 0x04, 0x8B }, + { 0x06, 0x08 }, + { 0x08, 0x04 }, + } +}; + +// ****************************************************************** +// * RaiseException +// ****************************************************************** +SOOVPA<7> RaiseException_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x09, 0x83 }, + { 0x14, 0x8B }, + { 0x1F, 0xC7 }, + { 0x2A, 0x10 }, + { 0x35, 0x89 }, + { 0x40, 0x5F }, + { 0x4B, 0xFF }, + } +}; + +// ****************************************************************** +// * XGetDeviceEnumerationStatus +// ****************************************************************** +SOOVPA<7> XGetDeviceEnumerationStatus_1_0_5849 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x04, 0x15 }, + { 0x0A, 0x35 }, + { 0x10, 0x09 }, + { 0x17, 0x00 }, + { 0x1C, 0x46 }, + { 0x25, 0x8B }, + { 0x28, 0xC3 }, + } +}; + +// ****************************************************************** +// * SwitchToThread +// ****************************************************************** +SOOVPA<6> SwitchToThread_1_0_5849 = +{ + 0, // Large == 0 + 6, // Count == 6 + + XRefNotSaved, + XRefNotUsed, + + { + { 0x01, 0x15 }, + { 0x06, 0x33 }, + { 0x07, 0xC9 }, + { 0x0A, 0x00 }, + { 0x0D, 0x0F }, + { 0x10, 0x8B }, + } +}; + +// ****************************************************************** +// * XAPI_1_0_5849 +// ****************************************************************** +OOVPATable XAPI_1_0_5849[] = +{ + // SetThreadPriority (* unchanged since 3911 *) + { + (OOVPA*)&SetThreadPriority_1_0_3911, + + XTL::EmuSetThreadPriority, + + #ifdef _DEBUG_TRACE + "EmuSetThreadPriority" + #endif + }, + // QueryPerformanceCounter (* unchanged since 4361 *) + { + (OOVPA*)&QueryPerformanceCounter_1_0_4361, + + XTL::EmuQueryPerformanceCounter, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceCounter" + #endif + }, + // QueryPerformanceFrequency (* unchanged since 4361 *) + { + (OOVPA*)&QueryPerformanceFrequency_1_0_4361, + + XTL::EmuQueryPerformanceFrequency, + + #ifdef _DEBUG_TRACE + "EmuQueryPerformanceFrequency" + #endif + }, + // XMountUtilityDrive (* unchanged since 4432 *) + { + (OOVPA*)&XMountUtilityDrive_1_0_4432, + + XTL::EmuXMountUtilityDrive, + + #ifdef _DEBUG_TRACE + "EmuXMountUtilityDrive" + #endif + }, + // XInitDevices (* unchanged since 5233 *) + { + (OOVPA*)&XInitDevices_1_0_5233, + + XTL::EmuXInitDevices, + + #ifdef _DEBUG_TRACE + "EmuXInitDevices" + #endif + }, + // XGetDevices (* unchanged since 1.0.4134 *) + { + (OOVPA*)&XGetDevices_1_0_4134, + + XTL::EmuXGetDevices, + + #ifdef _DEBUG_TRACE + "EmuXGetDevices" + #endif + }, + // XInputOpen (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XInputOpen_1_0_4361, + + XTL::EmuXInputOpen, + + #ifdef _DEBUG_TRACE + "EmuXInputOpen" + #endif + }, + // XInputGetCapabilities (* unchanged since 5558 *) + { + (OOVPA*)&XInputGetCapabilities_1_0_5558, + + XTL::EmuXInputGetCapabilities, + + #ifdef _DEBUG_TRACE + "EmuXInputGetCapabilities" + #endif + }, + // XInputGetState (* unchanged since 5558 *) + { + (OOVPA*)&XInputGetState_1_0_5558, + + XTL::EmuXInputGetState, + + #ifdef _DEBUG_TRACE + "EmuXInputGetState" + #endif + }, + // XGetDeviceChanges + { + (OOVPA*)&XGetDeviceChanges_1_0_5849, + + XTL::EmuXGetDeviceChanges, + + #ifdef _DEBUG_TRACE + "EmuXGetDeviceChanges" + #endif + }, + /* obsolete? + // XapiThreadStartup (* unchanged since 1.0.4361 *) + { + (OOVPA*)&XapiThreadStartup_1_0_4361, + + XTL::EmuXapiThreadStartup, + + #ifdef _DEBUG_TRACE + "EmuXapiThreadStartup" + #endif + }, + //*/ + // QueueUserAPC (* unchanged since 3911 *) + { + (OOVPA*)&QueueUserAPC_1_0_3911, + + XTL::EmuQueueUserAPC, + + #ifdef _DEBUG_TRACE + "EmuQueueUserAPC" + #endif + }, + // GetThreadPriority + { + (OOVPA*)&GetThreadPriority_1_0_5849, + XTL::EmuGetThreadPriority, + + #ifdef _DEBUG_TRACE + "GetThreadPriority" + #endif + }, + // SetThreadPriorityBoost + { + (OOVPA*)&SetThreadPriorityBoost_1_0_5849, + XTL::EmuSetThreadPriorityBoost, + + #ifdef _DEBUG_TRACE + "SetThreadPriorityBoost" + #endif + }, + // GetThreadPriorityBoost + /*{ + (OOVPA*)&GetThreadPriorityBoost_1_0_5849, + XTL::EmuGetThreadPriorityBoost, + + #ifdef _DEBUG_TRACE + "GetThreadPriorityBoost" + #endif + },*/ + // RaiseException + { + (OOVPA*)&RaiseException_1_0_5849, + XTL::EmuRaiseException, + + #ifdef _DEBUG_TRACE + "RaiseException" + #endif + }, + // XLaunchNewImageA (* unchanged since 5558 *) + { + (OOVPA*)&XLaunchNewImageA_1_0_5558, + XTL::EmuXLaunchNewImage, + + #ifdef _DEBUG_TRACE + "XLaunchNewImageA" + #endif + }, + // XInputSetState (* unchanged since 5233 *) + { + (OOVPA*)&XInputSetState_1_0_5233, + + XTL::EmuXInputSetState, + + #ifdef _DEBUG_TRACE + "EmuXInputSetState" + #endif + }, + // XGetDeviceEnumerationStatus + { + (OOVPA*)&XGetDeviceEnumerationStatus_1_0_5849, + XTL::EmuXGetDeviceEnumerationStatus, + + #ifdef _DEBUG_TRACE + "EmuXGetDeviceEnumerationStatus" + #endif + }, + // SwitchToThread + /*{ + (OOVPA*)&SwitchToThread_1_0_5849, + XTL::EmuSwitchToThread, + + #ifdef _DEBUG_TRACE + "EmuSwitchToThread" + #endif + },*/ + // XFormatUtilityDrive (* unchanged since 4627 *) + { + (OOVPA*)&XFormatUtilityDrive_1_0_4627, + + XTL::EmuXFormatUtilityDrive, + + #ifdef _DEBUG_TRACE + "EmuXFormatUtilityDrive" + #endif + }, + // CreateFiber + { + (OOVPA*)&CreateFiber_1_0_5558, + + XTL::EmuCreateFiber, + + #ifdef _DEBUG_TRACE + "EmuCreateFiber" + #endif + }, + // DeleteFiber + { + (OOVPA*)&DeleteFiber_1_0_5558, + + XTL::EmuDeleteFiber, + + #ifdef _DEBUG_TRACE + "EmuDeleteFiber" + #endif + }, + // SwitchToFiber + { + (OOVPA*)&SwitchToFiber_1_0_5558, + + XTL::EmuSwitchToFiber, + + #ifdef _DEBUG_TRACE + "EmuSwitchToFiber" + #endif + }, + // ConvertThreadToFiber + { + (OOVPA*)&ConvertThreadToFiber_1_0_5558, + + XTL::EmuConvertThreadToFiber, + + #ifdef _DEBUG_TRACE + "EmuConvertThreadToFiber" + #endif + }, +}; + +// ****************************************************************** +// * XAPI_1_0_5849_SIZE +// ****************************************************************** +uint32 XAPI_1_0_5849_SIZE = sizeof(XAPI_1_0_5849); diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.3925.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.3925.inl index 669cb3246..0fa35365d 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.3925.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.3925.inl @@ -1946,8 +1946,7 @@ OOVPA_NO_XREF(IDirect3DDevice8_Unknown1_1_0_3925, 9) { 0x18, 0x00 }, // IDirect3DDevice8_Unknown1+0x1E : retn { 0x1E, 0xC3 }, - } -}; +OOVPA_END; // ****************************************************************** // * IDirect3DDevice8_GetViewport @@ -2574,8 +2573,7 @@ OOVPA_NO_XREF(IDirect3DDevice8_SetRenderState_Deferred_1_0_3925, 9) { 0x0F, 0x8D }, // IDirect3DDevice8_SetRenderState_Deferred+0x14 : retn { 0x14, 0xC3 }, - } -}; +OOVPA_END; // ****************************************************************** // * D3DDevice_SetLight @@ -3008,8 +3006,7 @@ OOVPA_NO_XREF(XMETAL_StartPush_1_0_3925, 11) // XMETAL_StartPush+0x10 : retn 4 { 0x10, 0xC2 }, { 0x11, 0x04 }, - } -}; +OOVPA_END; // ****************************************************************** // * D3D::SetFence @@ -3275,7 +3272,9 @@ OOVPA_END; // ****************************************************************** OOVPA_NO_XREF(D3DDevice_EndStateBlock_1_0_3925, 6) - { 0x00, 0xA1 }, { 0x05, 0x83 }, { 0x06, 0x60 }, + { 0x00, 0xA1 }, + { 0x05, 0x83 }, + { 0x06, 0x60 }, { 0x07, 0x0C }, { 0x08, 0xDF }, { 0x09, 0xE9 }, diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4034.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4034.inl index ac651045c..85fdf9292 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4034.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4034.inl @@ -677,7 +677,8 @@ OOVPA_END; { 0xAE, 0xC2 }, // (Offset,Value)-Pair #9 { 0xAF, 0x0C }, // (Offset,Value)-Pair #10 } -};*/ +OOVPA_END; +*/ // ****************************************************************** // * IDirect3DDevice8_SetRenderState_ZEnable @@ -1254,7 +1255,7 @@ OOVPATable D3D8_1_0_4034[] = { // D3DDevice_CopyRects OOVPA_TABLE_PATCH(D3DDevice_CopyRects_1_0_4034, XTL::EmuIDirect3DDevice8_CopyRects), // D3DDevice_DeletePatch (TODO) - /*{ + /* OOVPA_TABLE_PATCH(D3DDevice_DeletePatch_1_0_4034, XTL::EmuIDirect3DDevice8_DeletePatch), */ // D3DDevice_SetStreamSource diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4134.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4134.inl index d74ee0f5a..84c9d5534 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4134.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4134.inl @@ -1508,8 +1508,7 @@ OOVPA_NO_XREF(IDirect3DDevice8_SetScreenSpaceOffset_1_0_4134, 7) { 0x0A, 0x08 }, { 0x2E, 0x8B }, { 0x2F, 0x06 }, - } -}; +OOVPA_END; // ****************************************************************** // * D3D::SetFence @@ -1679,8 +1678,7 @@ OOVPA_NO_XREF(D3D_CDevice_KickOff_1_0_4134, 12) { 0x28, 0xF8 }, // D3D::CDevice::KickOff+0xE3 : retn { 0xE3, 0xC3 } - } -}; +OOVPA_END; // ****************************************************************** // * D3DDevice_BlockOnFence @@ -1770,7 +1768,9 @@ OOVPA_END; // ****************************************************************** OOVPA_NO_XREF(D3DDevice_SetShaderConstantMode_1_0_4134, 7) - { 0x1D, 0xFD }, { 0x3C, 0x8B }, { 0x5B, 0x0B }, + { 0x1D, 0xFD }, + { 0x3C, 0x8B }, + { 0x5B, 0x0B }, { 0x7A, 0x56 }, { 0x99, 0xC0 }, { 0xB8, 0x00 }, diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4361.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4361.inl index 69de962a8..649d47eb5 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4361.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4361.inl @@ -78,7 +78,7 @@ OOVPA_END; // ****************************************************************** // * IDirect3DDevice8_SetVerticalBlankCallback // ****************************************************************** -OOVPA_NO_XREF(IDirect3DDevice8_SetVerticalBlankCallback_1_0_4361, 6) // TODO : XRefOne? +OOVPA_NO_XREF(IDirect3DDevice8_SetVerticalBlankCallback_1_0_4361, 6) { 0x01, 0x44 }, { 0x03, 0x04 }, @@ -86,8 +86,7 @@ OOVPA_NO_XREF(IDirect3DDevice8_SetVerticalBlankCallback_1_0_4361, 6) // TODO : X { 0x0C, 0x30 }, { 0x0D, 0x24 }, { 0x11, 0x04 }, - } -}; +OOVPA_END; // ****************************************************************** // * IDirect3D8_GetAdapterModeCount @@ -325,9 +324,7 @@ OOVPA_NO_XREF(D3DDevice_DeleteStateBlock_1_0_4361, 7) { 0x5D, 0x74 }, { 0x70, 0x06 }, { 0x83, 0xEB }, - } -}; - +OOVPA_END; // ****************************************************************** // * IDirect3DDevice8_ApplyStateBlock @@ -1756,7 +1753,9 @@ OOVPA_END; // ****************************************************************** OOVPA_NO_XREF(D3DCubeTexture_GetCubeMapSurface_1_0_4361, 7) - { 0x09, 0x44 }, { 0x14, 0x24 }, { 0x1F, 0x50 }, + { 0x09, 0x44 }, + { 0x14, 0x24 }, + { 0x1F, 0x50 }, { 0x2A, 0x50 }, { 0x35, 0x8B }, { 0x40, 0x24 }, diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4432.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4432.inl index 341c757d1..631aac223 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4432.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4432.inl @@ -506,8 +506,7 @@ OOVPA_NO_XREF(IDirect3DDevice8_Release_1_0_4432, 11) { 0x1D, 0x0A }, { 0x1E, 0x00 }, { 0x1F, 0x00 } - } -}; +OOVPA_END; // ****************************************************************** // * IDirect3DTexture8_GetSurfaceLevel @@ -677,7 +676,9 @@ OOVPA_END; // ****************************************************************** OOVPA_NO_XREF(D3DDevice_SetModelView_1_0_4432, 7) - { 0x15, 0x25 }, { 0x2F, 0x81 }, { 0x43, 0x43 }, + { 0x15, 0x25 }, + { 0x2F, 0x81 }, + { 0x43, 0x43 }, { 0x5A, 0x04 }, { 0x72, 0x8D }, { 0x88, 0x00 }, diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl index e0651f31f..711f56787 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.4627.inl @@ -2342,7 +2342,7 @@ OOVPA_END; OOVPA_NO_XREF(IDirect3DDevice8_SetPixelShaderProgram_1_0_4627, 10) { 0x00, 0x8B }, - { 0x01, 0x54 }, + { 0x01, 0x54 }, { 0x02, 0x24 }, { 0x03, 0x04 }, { 0x04, 0x85 }, @@ -2351,8 +2351,7 @@ OOVPA_NO_XREF(IDirect3DDevice8_SetPixelShaderProgram_1_0_4627, 10) { 0x2A, 0x4C }, { 0x2B, 0x24 }, { 0x2C, 0x04 }, - } -}; +OOVPA_END; // ****************************************************************** // * IDirect3DDevice8_GetDisplayFieldStatus @@ -2366,8 +2365,7 @@ OOVPA_NO_XREF(IDirect3DDevice8_GetDisplayFieldStatus_1_0_4627, 7) { 0x1E, 0x56 }, { 0x25, 0x33 }, { 0x26, 0xD2 }, - } -}; +OOVPA_END; // ****************************************************************** // * IDirect3DDevice8_CreateStateBlock @@ -2385,8 +2383,7 @@ OOVPA_NO_XREF(IDirect3DDevice8_CreateStateBlock_1_0_4627, 11) { 0x46, 0x00 }, { 0x8B, 0x33 }, { 0x8C, 0xC0 }, - } -}; +OOVPA_END; // ****************************************************************** // * IDirect3DDevice8_InsertCallback @@ -2557,8 +2554,7 @@ OOVPA_NO_XREF(D3D_CDevice_KickOff_1_0_4627, 13) // D3D::CDevice::KickOff+0xE2 : retn { 0xE2, 0xC3 } - } -}; +OOVPA_END; // ****************************************************************** // * D3DDevice_KickPushBuffer @@ -2636,8 +2632,7 @@ OOVPA_NO_XREF(D3D_CDevice_SetStateUP_1_0_4627, 11) { 0x27, 0x83 }, { 0x28, 0xC8 }, { 0x29, 0x50 }, - } -}; +OOVPA_END; // ****************************************************************** // * IDirect3DDevice8_DrawIndexedVerticesUP @@ -3121,7 +3116,9 @@ OOVPA_END; // ****************************************************************** OOVPA_NO_XREF(D3DDevice_SetBackMaterial_1_0_4627, 9) - { 0x04, 0x08 }, { 0x0C, 0x81 }, { 0x0E, 0xF4 }, + { 0x04, 0x08 }, + { 0x0C, 0x81 }, + { 0x0E, 0xF4 }, { 0x10, 0x00 }, { 0x16, 0x00 }, { 0x1F, 0x81 }, diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl index d2554bd2a..ba32ba637 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl @@ -1225,8 +1225,7 @@ OOVPA_NO_XREF(IDirect3DDevice8_Unknown1_1_0_5233, 9) { 0x18, 0x00 }, // IDirect3DDevice8_Unknown1+0x1E : retn { 0x1E, 0xC3 }, - } -}; +OOVPA_END; // ****************************************************************** // * D3DDevice_BeginPush @@ -1517,7 +1516,9 @@ OOVPA_END; // ****************************************************************** OOVPA_NO_XREF(D3DDevice_SetMaterial_1_0_5344, 9) - { 0x04, 0x08 }, { 0x0C, 0x81 }, { 0x0E, 0xE0 }, + { 0x04, 0x08 }, + { 0x0C, 0x81 }, + { 0x0E, 0xE0 }, { 0x10, 0x00 }, { 0x16, 0x00 }, { 0x1F, 0x81 }, diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl index 7b3428cd8..d0d8444c8 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl @@ -1009,8 +1009,7 @@ OOVPA_NO_XREF(D3D_MakeRequestedSpace_1_0_5558, 12) { 0x5A, 0x40 }, { 0x5B, 0x00 }, { 0x5C, 0x00 }, - } -}; +OOVPA_END; // ****************************************************************** // * D3DDevice_MakeSpace @@ -1497,7 +1496,9 @@ OOVPA_END; // ****************************************************************** OOVPA_NO_XREF(D3DDevice_IsFencePending_1_0_5558, 7) - { 0x05, 0x8B }, { 0x06, 0x48 }, { 0x0A, 0x2C }, + { 0x05, 0x8B }, + { 0x06, 0x48 }, + { 0x0A, 0x2C }, { 0x0E, 0xD0 }, { 0x12, 0x44 }, { 0x16, 0xC2 }, diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5849.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5849.inl index 6eac693df..57c277253 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5849.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5849.inl @@ -664,8 +664,8 @@ OOVPA_END; { 0x07, 0x2C }, { 0x0A, 0x51 }, { 0x10, 0xC3 }, - } -};*/ +OOVPA_END; +*/ // ****************************************************************** // * D3DDevice_SetTile @@ -1051,8 +1051,7 @@ OOVPA_NO_XREF(D3D_CDevice_KickOff_1_0_5849, 13) // D3D::CDevice::KickOff+0xAF : retn { 0xAF, 0xC3 } - } -}; +OOVPA_END; // ****************************************************************** // * D3DDevice_SetSoftDisplayFilter @@ -1274,7 +1273,9 @@ OOVPA_END; // ****************************************************************** OOVPA_NO_XREF(D3DDevice_GetTexture2_1_0_5849, 8) - { 0x03, 0x04 }, { 0x0A, 0x56 }, { 0x0D, 0x81 }, + { 0x03, 0x04 }, + { 0x0A, 0x56 }, + { 0x0D, 0x81 }, { 0x0E, 0x88 }, { 0x12, 0x8B }, { 0x17, 0x06 }, diff --git a/src/CxbxKrnl/HLEDataBase/D3D8LTCG.1.0.5849.inl b/src/CxbxKrnl/HLEDataBase/D3D8LTCG.1.0.5849.inl index 094d55ace..4a67f9a06 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8LTCG.1.0.5849.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8LTCG.1.0.5849.inl @@ -444,8 +444,7 @@ OOVPA_END; // { 0x93, 0x85 }, // { 0xAA, 0xC6 }, // { 0xC9, 0x0A }, -// } -//}; +//OOVPA_END; /* Same as 4627 // ****************************************************************** @@ -922,8 +921,7 @@ OOVPA_NO_XREF(IDirect3DDevice8_SetVertexShader_1_0_5849_LTCG, 10) { 0xCD, 0x83 }, { 0xCE, 0xC0 }, { 0xCF, 0x08 }, - } -}; +OOVPA_END; // ****************************************************************** // * IDirect3DDevice8_DrawVertices diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.3936.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.3936.inl index 06bf7396c..cbcf016d1 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.3936.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.3936.inl @@ -35,7 +35,8 @@ // ****************************************************************** // * DirectSoundCreate // ****************************************************************** -OOVPA_NO_XREF(DirectSoundCreate_1_0_3936, 10) // TODO : Was 9 before, thus ignored the 10th entry +OOVPA_NO_XREF(DirectSoundCreate_1_0_3936, 9) + // DirectSoundCreate+0x23 : add eax, 8 { 0x23, 0x83 }, // (Offset,Value)-Pair #1 { 0x24, 0xC0 }, // (Offset,Value)-Pair #2 @@ -234,7 +235,7 @@ OOVPA_END; OOVPA_XREF(IDirectSound8_CreateBuffer_1_0_3936, 10, XRefNoSaveIndex, - XRefOne) // TODO : XREF_ missing, so shouldn't be this XRefZero? + XRefOne) // TODO: tidy up the xref names (are probably not accurate) @@ -2476,8 +2477,9 @@ OOVPA_XREF(IDirectSoundStream_SetI3DL2Source_1_0_3936, 10, // IDirectSoundStream_SetI3DL2SourceB+0x15 : retn 0x0C { 0x15, 0xC2 }, // (Offset,Value)-Pair #9 { 0x16, 0x0C }, // (Offset,Value)-Pair #10 - } -};*/ +OOVPA_END; +*/ + /* // ****************************************************************** // * IDirectSoundStream_Unknown1 @@ -3722,8 +3724,7 @@ OOVPA_XREF(CMcpxVoiceClient_Commit3dSettings_1_0_3936, 10, // Small == 10 { 0x3D, 0x0F }, { 0x3E, 0xB1 }, { 0x3F, 0x11 }, - } -}; +OOVPA_END; // ****************************************************************** // * CMcpxVoiceClient::SetI3DL2Source @@ -4027,7 +4028,9 @@ OOVPA_END; // ****************************************************************** OOVPA_NO_XREF(CDirectSoundStream_Pause_1_0_3936, 6) - { 0x01, 0x44 }, { 0x04, 0xFF }, { 0x07, 0x08 }, + { 0x01, 0x44 }, + { 0x04, 0xFF }, + { 0x07, 0x08 }, { 0x0A, 0x24 }, { 0x10, 0xC2 }, { 0x11, 0x08 }, diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl index a9433ed48..5878a3fdd 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4134.inl @@ -368,7 +368,10 @@ OOVPA_XREF(IDirectSoundBuffer_SetMixBins_1_0_4134, 8, XRefNoSaveIndex, XRefOne) - { 0x15, XREF_DSSETMIXBINSA }, { 0x02, 0x24 }, { 0x06, 0x24 }, + { 0x15, XREF_DSSETMIXBINSA }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, { 0x0A, 0x83 }, { 0x0E, 0xD9 }, { 0x12, 0xC8 }, diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl index 8ce526b2c..a46e142b0 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4361.inl @@ -752,8 +752,7 @@ OOVPA_XREF(CMcpxBuffer_Stop2_1_0_4361, 10, // CMcpxBuffer_Stop2+0x36 : retn 0xC { 0x36, 0xC2 }, { 0x37, 0x0C }, - } -}; +OOVPA_END; // ****************************************************************** // * DirectSound::CDirectSoundBuffer::StopEx @@ -782,7 +781,10 @@ OOVPA_XREF(IDirectSoundBuffer_StopEx_1_0_4361, 8, XRefNoSaveIndex, XRefOne) - { 0x1D, XREF_DirectSound_CDirectSoundBuffer_StopEx }, { 0x03, 0x10 }, { 0x08, 0xFF }, + { 0x1D, XREF_DirectSound_CDirectSoundBuffer_StopEx }, + + { 0x03, 0x10 }, + { 0x08, 0xFF }, { 0x0D, 0xC8 }, { 0x12, 0x83 }, { 0x17, 0x1B }, diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4432.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4432.inl index 52655375a..0270ab82e 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4432.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4432.inl @@ -553,7 +553,9 @@ OOVPA_XREF(CDirectSoundVoice_SetPosition_1_0_4432, 8, XRefZero) // CDirectSoundVoice_SetPosition+0x0F : mov edx, [ebp+arg_4] - { 0x0F, 0x8B }, { 0x10, 0x55 }, { 0x11, 0x0C }, + { 0x0F, 0x8B }, + { 0x10, 0x55 }, + { 0x11, 0x0C }, // CDirectSoundVoice_SetPosition+0x12 : mov [ecx+04h], edx { 0x12, 0x89 }, diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl index 6e35b4bd3..8be4d6c19 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.4627.inl @@ -342,7 +342,7 @@ OOVPA_END; OOVPA_XREF(CDirectSoundBuffer_SetMixBinVolumes_1_0_4627, 17, XREF_DSSETMIXBINVOLUMESA, - XRefOne) // TODO : XRefZero)? + XRefOne) // CDirectSoundBuffer_SetMixBinVolumes+0x32 : call [CDirectSoundVoice::SetMixBinVolumes] { 0x32, XREF_DSSETMIXBINVOLUMESB }, // (Offset,Value)-Pair #1 @@ -751,8 +751,7 @@ OOVPA_END; // { 0x3C, 0x0F }, // (Offset,Value)-Pair #9 // { 0x3D, 0xB7 }, // (Offset,Value)-Pair #10 // { 0x3E, 0x46 }, // (Offset,Value)-Pair #11 -// } -//}; +//OOVPA_END; // ****************************************************************** // * CMcpxBuffer_GetStatusB @@ -1872,8 +1871,7 @@ OOVPA_XREF(CDirectSoundStream_SetMixBinVolumes_1_0_4627, 12, { 0x4F, 0xC2 }, { 0x50, 0x08 }, { 0x51, 0x00 }, - } -}; +OOVPA_END; // ****************************************************************** // * DirectSound::CDirectSound::EnableHeadphones (incorrect?) @@ -1906,8 +1904,7 @@ OOVPA_XREF(X_DirectSound_CDirectSound_EnableHeadphones_1_0_4627, 15, //{ 0x97, 0xC9 }, // (Offset,Value)-Pair #14 { 0x98, 0xC2 }, { 0x99, 0x08 }, - } -}; +OOVPA_END; // ****************************************************************** // * EmuIDirectSound_EnableHeadphones @@ -1933,17 +1930,16 @@ OOVPA_XREF(EmuIDirectSound_EnableHeadphones_1_0_4627, 9, { 0x19, 0xC2 }, { 0x1A, 0x08 }, { 0x1B, 0x00 }, - } -}; +OOVPA_END; /* // ****************************************************************** // * CDirectSoundVoice::SetHeadrom // ****************************************************************** -OOVPA_XREF(CDirectSoundVoice_SetHeadroom_1_0_4627, 9, +OOVPA_XREF(CDirectSoundVoice_SetHeadroom_1_0_4627, 9, XREF_DirectSound_CDirectSoundVoice_SetHeadroom, - XRefOne) // TODO : Was -1, but, should it be that, this XRefOne, or XRefZero? + -1) // TODO : -1 is used nowhere else - should it stay that, or XRefOne? { 0x1B, XREF_DSSTREAMSETVOLUME }, @@ -1955,13 +1951,12 @@ OOVPA_XREF(CDirectSoundVoice_SetHeadroom_1_0_4627, 9, { 0x19, 0x0C }, { 0x20, 0xC2 }, { 0x21, 0x08 }, - } -}; +OOVPA_END; // ****************************************************************** // * CDirectSoundStream::SetHeadroom // ****************************************************************** -OOVPA_NO_XREF(CDirectSoundStream_SetHeadroom_1_0_4627, 12, +OOVPA_NO_XREF(CDirectSoundStream_SetHeadroom_1_0_4627, 12, XRefNoSaveIndex, XRefOne) @@ -1979,8 +1974,7 @@ OOVPA_NO_XREF(CDirectSoundStream_SetHeadroom_1_0_4627, 12, { 0x33, 0x04 }, { 0x4F, 0xC2 }, { 0x50, 0x08 }, - } -}; +OOVPA_END; */ // ****************************************************************** @@ -2784,8 +2778,7 @@ OOVPA_NO_XREF(DirectSound_CMemoryManager_MemAlloc_1_0_4627, 10) // DirectSound::CMemoryManager::PoolAlloc + 0x65: retn 0xC { 0x65, 0xC2 }, { 0x66, 0x0C } - } -}; +OOVPA_END; // ****************************************************************** // * XWaveFileCreateMediaObject @@ -2840,7 +2833,10 @@ OOVPA_XREF(IDirectSoundBuffer_SetNotificationPositions_1_0_4627, 9, XRefNoSaveIndex, XRefOne) - { 0x19, XREF_DirectSound_CDirectSoundBuffer_SetNotificationPositions }, { 0x02, 0x24 }, { 0x06, 0x24 }, + { 0x19, XREF_DirectSound_CDirectSoundBuffer_SetNotificationPositions }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, { 0x0A, 0xFF }, { 0x0E, 0x83 }, { 0x12, 0xD9 }, diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl index 3f96a958a..b41007ec6 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5233.inl @@ -173,7 +173,7 @@ OOVPA_END; OOVPA_XREF(CDirectSound_SynchPlayback_1_0_5233, 10, XREF_DSSYNCHPLAYBACKA, - XRefOne) // TODO : XRefZero)? + XRefOne) { 0x08, XREF_DSSYNCHPLAYBACKB }, // (Offset,Value)-Pair #1 @@ -827,7 +827,10 @@ OOVPA_XREF(IDirectSound_SetDopplerFactor_1_0_5344, 8, XRefNoSaveIndex, XRefOne) - { 0x1D, XREF_SETDOPPLERFACTOR }, { 0x03, 0x0C }, { 0x08, 0x8B }, + { 0x1D, XREF_SETDOPPLERFACTOR }, + + { 0x03, 0x0C }, + { 0x08, 0x8B }, { 0x0D, 0x8B }, { 0x12, 0x83 }, { 0x17, 0x1B }, diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl index a30227975..ffd7bb5bc 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl @@ -239,6 +239,7 @@ OOVPA_XREF(IDirectSound8_SetI3DL2Listener_1_0_5558, 9, { 0x1D, 0xC2 }, { 0x1E, 0x0C }, OOVPA_END; + // ****************************************************************** // * DirectSound::CFullHRTFSource::GetCenterVolume // ****************************************************************** @@ -418,6 +419,7 @@ OOVPA_XREF(CMcpxVoiceClient_SetLFO_1_0_5558, 8, { 0xDE, 0x05 }, { 0xFE, 0x6C }, OOVPA_END; + // ****************************************************************** // * CDirectSoundVoice::SetLFO // ****************************************************************** @@ -615,6 +617,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPlayRegion_1_0_5558, 9, { 0x1D, 0xC2 }, { 0x1E, 0x0C }, OOVPA_END; + // ****************************************************************** // * CDirectSoundBuffer::SetLoopRegion // ****************************************************************** @@ -631,6 +634,7 @@ OOVPA_XREF(CDirectSoundBuffer_SetLoopRegion_1_0_5558, 7, { 0x64, 0x8B }, { 0x77, 0xFF }, OOVPA_END; + // ****************************************************************** // * IDirectSoundBuffer_SetLoopRegion // ****************************************************************** @@ -675,7 +679,7 @@ OOVPA_END; OOVPA_XREF(CDirectSoundBuffer_Play_1_0_5558, 9, XREF_DSOUNDPLAY2, - XRefZero) // TODO : XRefOne? + XRefZero) // TODO : Use XRefOne here if XREF_DSOUNDPLAY is enabled below //{ 0x35, XREF_DSOUNDPLAY }, @@ -894,6 +898,7 @@ OOVPA_XREF(CDirectSoundVoice_SetMaxDistance_1_0_5558, 7, { 0x28, 0x51 }, { 0x2F, 0xC0 }, OOVPA_END; + // ****************************************************************** // * CDirectSoundBuffer::SetMaxDistance // ****************************************************************** @@ -966,6 +971,7 @@ OOVPA_XREF(CDirectSoundVoice_SetMinDistance_1_0_5558, 7, { 0x28, 0x51 }, { 0x2F, 0xC0 }, OOVPA_END; + // ****************************************************************** // * CDirectSoundBuffer::SetMinDistance // ****************************************************************** @@ -1176,6 +1182,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetPosition_1_0_5558, 8, { 0x28, 0xD9 }, { 0x31, 0x5D }, OOVPA_END; + // ****************************************************************** // * CDirectSoundVoice::SetVelocity // ****************************************************************** @@ -1377,6 +1384,7 @@ OOVPA_XREF(IDirectSoundBuffer8_SetDopplerFactor_1_0_5558, 8, { 0x1C, 0xE8 }, { 0x21, 0xC2 }, OOVPA_END; + // ****************************************************************** // * IDirectSoundBuffer_Lock // ****************************************************************** @@ -1454,7 +1462,7 @@ OOVPA_END; OOVPA_XREF(DirectSound_CDirectSoundVoice_SetAllParameters_1_0_5558, 10, XREF_DirectSound_CDirectSoundVoice_SetAllParameters, - XRefZero) // TODO : XRefOne? + XRefZero) // TODO : Use XRefOne here if XREF_DirectSound_CDirectSoundVoice_CommitDeferredSettings is enabled below // { 0x12F, XREF_DirectSound_CDirectSoundVoice_CommitDeferredSettings }, @@ -1475,12 +1483,12 @@ OOVPA_END; // ****************************************************************** OOVPA_XREF(DirectSound_CDirectSoundBuffer_SetAllParameters_1_0_5558, 8, - XREF_DirectSound_CDirectSoundBuffer_SetAllParameters, - XRefOne) + XREF_DirectSound_CDirectSoundBuffer_SetAllParameters, + XRefOne) - { 0x36, XREF_DirectSound_CDirectSoundVoice_SetAllParameters }, + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetAllParameters }, - { 0x0C, 0x00 }, + { 0x0C, 0x00 }, { 0x14, 0x74 }, { 0x21, 0xB8 }, { 0x2A, 0x74 }, @@ -1923,7 +1931,10 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetFrequency_1_0_5558, 9, XRefNoSaveIndex, XRefOne) - { 0x36, XREF_DSBUFFERSETFREQUENCYB }, { 0x00, 0x56 }, { 0x0C, 0x00 }, + { 0x36, XREF_DSBUFFERSETFREQUENCYB }, + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, { 0x14, 0x74 }, { 0x21, 0xB8 }, { 0x2A, 0x24 }, diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl index dfd2ed517..87ed960c8 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5849.inl @@ -1001,7 +1001,7 @@ OOVPA_END; //OOVPA_XREF(DirectSound_CDirectSoundStream_SetVolume_1_0_5849, 9, // // XREF_DirectSound_CDirectSoundStream_SetVolume, -// XRefZero) +// XRefOne) // // { 0x36, XREF_DirectSound_CDirectSoundVoice_SetVolume }, // @@ -1013,8 +1013,7 @@ OOVPA_END; // { 0x35, 0xE8 }, // { 0x40, 0x68 }, // { 0x4B, 0x8B }, -// } -//}; +//OOVPA_END; // ****************************************************************** // * IDirectSoundBuffer_SetVolume @@ -1369,15 +1368,11 @@ OOVPA_END; // ****************************************************************** // * IDirectSound_CreateSoundStream // ****************************************************************** -//OOVPA_XREF(IDirectSound_CreateSoundStream_1_0_5849, -//{ -// -// 8, +//OOVPA_XREF(IDirectSound_CreateSoundStream_1_0_5849, 8, // // XRefNoSaveIndex, // XRefZero) // -// { // { 0x1D, XREF_DirectSound_CDirectSound_CreateSoundStream }, // // { 0x03, 0x10 }, @@ -1387,8 +1382,7 @@ OOVPA_END; // { 0x17, 0x1B }, // { 0x1C, 0xE8 }, // { 0x21, 0xC2 }, -// } -//}; +//OOVPA_END; // ****************************************************************** // * DirectSoundCreateStream @@ -1548,8 +1542,7 @@ OOVPA_NO_XREF(DirectSound_CMemoryManager_PoolAlloc_1_0_5849, 10) { 0x44, 0xC2 }, { 0x45, 0x0C }, { 0x46, 0x00 }, - } -}; +OOVPA_END; // ****************************************************************** // * XFileCreateMediaObjectAsync @@ -1597,7 +1590,10 @@ OOVPA_XREF(DirectSound_CDirectSoundStream_SetHeadroom_1_0_5849, 9, XRefNoSaveIndex, XRefOne) - { 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom }, { 0x00, 0x56 }, { 0x0C, 0x00 }, + { 0x36, XREF_DirectSound_CDirectSoundVoice_SetHeadroom }, + + { 0x00, 0x56 }, + { 0x0C, 0x00 }, { 0x14, 0x74 }, { 0x21, 0xB8 }, { 0x2A, 0x24 }, diff --git a/src/CxbxKrnl/HLEDataBase/XG.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase/XG.1.0.5558.inl index 21373f1ec..6a3f1d4be 100644 --- a/src/CxbxKrnl/HLEDataBase/XG.1.0.5558.inl +++ b/src/CxbxKrnl/HLEDataBase/XG.1.0.5558.inl @@ -89,15 +89,8 @@ OOVPA_END; // ****************************************************************** // * XGSwizzleBox // ****************************************************************** -//OOVPA_XREF(XGSwizzleBox_1_0_5558, -//{ +//OOVPA_NO_XREF(XGSwizzleBox_1_0_5558, 8) // -// 8, -// -// XRefNoSaveIndex, -// XRefZero) -// -// { // { 0x1E, 0x75 }, // { 0x3E, 0x4D }, // { 0x5E, 0x48 }, @@ -106,8 +99,7 @@ OOVPA_END; // { 0xC0, 0x83 }, // { 0xDE, 0xAF }, // { 0xFE, 0x45 }, -// } -//}; +//OOVPA_END; // ****************************************************************** // * XGUnswizzleBox diff --git a/src/CxbxKrnl/HLEDataBase/XactEng.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase/XactEng.1.0.4627.inl index d0b3d6e73..e3d305809 100644 --- a/src/CxbxKrnl/HLEDataBase/XactEng.1.0.4627.inl +++ b/src/CxbxKrnl/HLEDataBase/XactEng.1.0.4627.inl @@ -55,8 +55,7 @@ OOVPA_NO_XREF(XACTEngineCreate_1_0_4627, 11) // XACTEngineCreate+0x9A : retn 0x8 { 0x9A, 0xC2 }, { 0x9B, 0x08 }, - } -}; +OOVPA_END; // ****************************************************************** // * XACTEngineCreate @@ -81,8 +80,7 @@ OOVPA_NO_XREF(XACTEngineCreate_1_0_4928, 11) // XACTEngineCreate+0x9E : retn 0x8 { 0x9E, 0xC2 }, { 0x9F, 0x08 }, - } -}; +OOVPA_END; // ****************************************************************** // * XACT::CEngine::RegisterWaveBank diff --git a/src/CxbxKrnl/HLEDataBase/Xapi.1.0.3911.inl b/src/CxbxKrnl/HLEDataBase/Xapi.1.0.3911.inl index 283c92de0..7e10098de 100644 --- a/src/CxbxKrnl/HLEDataBase/Xapi.1.0.3911.inl +++ b/src/CxbxKrnl/HLEDataBase/Xapi.1.0.3911.inl @@ -676,15 +676,8 @@ OOVPA_END; //// ****************************************************************** //// * XGetDevices //// ****************************************************************** -//OOVPA_XREF(XGetDevices_1_0_3911, -//{ +//OOVPA_NO_XREF(XGetDevices_1_0_3911, 14) // -// 14, -// -// XRefNoSaveIndex, -// XRefZero) -// -// { // // XGetDevices+0x07 : mov edx, [esp+arg_0] // { 0x07, 0x8B }, // (Offset,Value)-Pair #1 // { 0x08, 0x54 }, // (Offset,Value)-Pair #2 @@ -708,8 +701,7 @@ OOVPA_END; // // XGetDevices+0x1F : retn 4 // { 0x1F, 0xC2 }, // (Offset,Value)-Pair #13 // { 0x20, 0x04 }, // (Offset,Value)-Pair #14 -// } -//}; +//OOVPA_END; // ****************************************************************** // * CreateFiber @@ -730,8 +722,7 @@ OOVPA_NO_XREF(CreateFiber_1_0_3911, 11) { 0x2D, 0xD1 }, { 0x2E, 0x1E }, { 0x2F, 0x00 } - } -}; +OOVPA_END; // ****************************************************************** // * DeleteFiber @@ -750,8 +741,7 @@ OOVPA_NO_XREF(DeleteFiber_1_0_3911, 9) { 0x10, 0xC2 }, { 0x11, 0x04 }, { 0x12, 0x00 }, - } -}; +OOVPA_END; // ****************************************************************** // * SwitchToFiber @@ -785,15 +775,8 @@ OOVPA_END; //// ****************************************************************** //// * XInputGetCapabilities //// ****************************************************************** -//OOVPA_XREF(XInputGetCapabilities_1_0_3911, -//{ +//OOVPA_NO_XREF(XInputGetCapabilities_1_0_3911, 14) // -// 14, -// -// XRefNoSaveIndex, -// XRefZero) -// -// { // // XInputGetCapabilities+0x03 : sub esp, 0x48 // { 0x03, 0x83 }, // (Offset,Value)-Pair #1 // { 0x04, 0xEC }, // (Offset,Value)-Pair #2 @@ -817,9 +800,7 @@ OOVPA_END; // // XInputGetCapabilities+0xFB : cmp [eax], ebx // { 0xFB, 0x39 }, // (Offset,Value)-Pair #13 // { 0xFC, 0x18 }, // (Offset,Value)-Pair #14 -// } -//}; - +//OOVPA_END; // ****************************************************************** // * SignalObjectAndWait @@ -1032,8 +1013,7 @@ OOVPA_NO_XREF(XGetSectionHandleA_1_0_3911, 12) { 0x0D, 0x56 }, { 0x0E, 0x57 }, { 0x0F, 0xFF } - } -}; +OOVPA_END; // ****************************************************************** // * XLoadSectionByHandle @@ -1059,8 +1039,7 @@ OOVPA_NO_XREF(XLoadSectionByHandle_1_0_3911, 11) // XLoadSectionByHandle+0x1E : retn 4 { 0x1E, 0xC2 }, { 0x1F, 0x04 } - } -}; +OOVPA_END; // ****************************************************************** // * XFreeSectionByHandle @@ -1088,8 +1067,7 @@ OOVPA_NO_XREF(XFreeSectionByHandle_1_0_3911, 11) // XFreeSectionByHandle+0x1B : retn 4 { 0x1B, 0xC2 }, { 0x1C, 0x04 } - } -}; +OOVPA_END; // ****************************************************************** // * XAutoPowerDownResetTimer diff --git a/src/CxbxKrnl/HLEDataBase/Xapi.1.0.4627.inl b/src/CxbxKrnl/HLEDataBase/Xapi.1.0.4627.inl index 47400fd3f..0417c2901 100644 --- a/src/CxbxKrnl/HLEDataBase/Xapi.1.0.4627.inl +++ b/src/CxbxKrnl/HLEDataBase/Xapi.1.0.4627.inl @@ -722,8 +722,7 @@ OOVPA_NO_XREF(XInputGetDeviceDescription_1_0_4831, 9) { 0x09, 0x00 }, { 0x34, 0x6A }, { 0x35, 0x06 }, - } -}; +OOVPA_END; // ****************************************************************** // * XAPI_1_0_4627