From 8717a722ca8f9440f5dccddae289a7b99ce4a32d Mon Sep 17 00:00:00 2001 From: Luke Usher Date: Wed, 6 Jun 2018 08:27:05 +0100 Subject: [PATCH] Remove old documents: These predate Cxbx-R and are no longer valid --- doc/Changelog.txt | 395 ----- doc/Cleanup.txt | 28 - doc/Direct3D.txt | 26 - doc/Input.txt | 19 - doc/RemovedCode.txt | 183 -- doc/ShogunChangelog.txt | 1406 --------------- doc/ShogunRemovedCode.txt | 29 - doc/ShogunTodo.txt | 33 - doc/Thanks.txt | 1 - doc/Todo.txt | 87 - doc/compatList.txt | 3 - doc/doxygen/Cxbx.Doxyfile | 1719 ------------------- doc/old_dsound.txt | 3415 ------------------------------------- 13 files changed, 7344 deletions(-) delete mode 100644 doc/Changelog.txt delete mode 100644 doc/Cleanup.txt delete mode 100644 doc/Direct3D.txt delete mode 100644 doc/Input.txt delete mode 100644 doc/RemovedCode.txt delete mode 100644 doc/ShogunChangelog.txt delete mode 100644 doc/ShogunRemovedCode.txt delete mode 100644 doc/ShogunTodo.txt delete mode 100644 doc/Thanks.txt delete mode 100644 doc/Todo.txt delete mode 100644 doc/compatList.txt delete mode 100644 doc/doxygen/Cxbx.Doxyfile delete mode 100644 doc/old_dsound.txt diff --git a/doc/Changelog.txt b/doc/Changelog.txt deleted file mode 100644 index 8e8095911..000000000 --- a/doc/Changelog.txt +++ /dev/null @@ -1,395 +0,0 @@ -Cxbx Home Page: http://www.caustik.com/cxbx/ - -version: 0.8.1 (2/3/10) --------------------------------- - -- Cxbx's compatibility has vastly increased (see compatibility list). - -- Added video option to enable/disable hardware YUV surfaces for video playback. - (This should fix problems with videos not showing up or robotic sounds). - -- Fixed bug in vertex patching code for Vista (thanks defiance)! - -- Most XDKs have at least basic support. - -- Fixed pipeline bumpmapping is now supported. - -- Multiple thread notification routines now supported. - -- Lots of bug fixes. - -- And many more I can't remember (it's been a long time)! - -version: 0.8.0 (??/??/??) --------------------------------- - -- Turok is playable! - -- Major GUI changes, new logo + about screens - -- Single window emulation! - -- Faux Fullscreen (Alt + Enter)! - -- Preliminary pixel shader support! - -- Vertex Shader support! - -- Push Buffer support! - -- Toggle Wireframe/Dots/Normal with F11 - -- HLE caching (so very very nice and speedy!) - -- Tons of new debug support, including integrated debug console - -- DirectSound support! Turok and Stella (Atari 2600 emulator) - are both able to play sound+music, works great! - -- Added auto-pause functionality when window is minimized - -- Fixes to slider device input, some more robust error handling - in input configuration (thanks Zomby!) - -- Fixed start/back mapping problem :) - -- Fixed a glitch in EmuExe that was outputting some bad Exes - in situations such as the msdashboard. (thanks sop skrutt!) - -- Fixed LineLoop rendering (X-Marbles, Gamepad, etc etc) - -- Some speed optimizations for vertex buffer translation - -- CreateDevice via proxy thread caused some issues with the - interplay between directdraw & direct3d. I resolved this new - issue and things are good again. - -- Overlay support now should work with multimonitors - -- Overlay support detection improved (again) - -- Absurd amounts of new code, including general code cleanup - -- Much much more that we dont even remember! - -version: 0.7.8c (09/02/03) --------------------------------- - -- Spontaneous CreateDevice failures fixed (many, at least) - -- Exe now able to generate into temporary directory, allowing - games to be run from a read only device without path issues. - -- Finally, Cxbx.dll and Cxbx.exe enforce version synchronization. - This should at least diagnose about 9 billion people's problems. - -- Very minor splash image tweaks - -version: 0.7.8b (08/30/03) --------------------------------- - -- Fixed debug messages accidentally left in the previous release. - -version: 0.7.8 (08/29/03) --------------------------------- - -- Halo executes (no graphics yet) - -- Overlays simulated on PCs that do not support them in hardware. - -- YUY2 overlay capabilities detection improved significantly - -- Fixes to mesh rendering (thanks kingofc!). The "XRay" XDK demo is - extremely impressive now (and runs very efficiently), as well as - the Gamepad/Rumble demos. - -- Z: drive simulation repaired - -version: 0.7.7b (07/16/03) --------------------------------- - -- Fixed lost compatibility with X-Marbles, etc - -version: 0.7.7 (07/15/03) --------------------------------- - -- Turok Evolution displays startup graphics and intro sequence!! - -- Stella and a few other homebrew games are now playable :] - This means you can play all your atari games on Cxbx, which - is a great novelty. - -- Finally low level emulation of the heap, which is a very - very nice thing and fixed some glitches/bugs. - -- Fixed timing (FPS is much higher now! it is unbelievable) - -version: 0.7.6 (07/07/03) --------------------------------- - -- Many more homebrew apps show some graphics - -- DirectInput bugs fixed - -- PointSprites works great without source hack - -- Lots of code cleanup - -version: 0.7.5 (06/30/03) --------------------------------- - -- X-Marbles homebrew demo is playable! - -- New GUI bitmap (thanks, bot!) - -- DirectSound emulation has begun. - -- Corrected converted Exe stack commit. - -- Fixed a really annoying problem with the debugger - not being able to attach, that has been around for - way way too long. - -- Caught up 4627 pretty far. - -- PointSprites and Gamepad demos, and some other new - XDK samples run better. - -- Added more Direct3D/XAPI emulation, Hunter The Reckoning - gets pretty far but no graphics yet. - -version: 0.7.4 (06/23/03) --------------------------------- - -- FIRST RETAIL GAME GRAPHICS (simple, but yay!!) - -- Quad rendering - -- Tons of new XD3D emulation - -- Some nice demos play now, including the cool PointSprites - demo. There are some issues right now with the mipmap filters - -- Fixed a user input bug (was ignoring digital buttons) - -version: 0.7.3 (06/18/03) --------------------------------- - -- Meshes - -- Indexed [primitive/vertex] rendering - -- Fixed *part* of the invisible texture problem - -version: 0.7.2 (06/13/03) --------------------------------- - -- Textures (bmp, jpg, png, partial .xpr, etc) - -- rtinit/cinit run on lower level - -- stdio seems to be working great :] - -- some advanced texture stuff (TCI) - -version: 0.7.1 (05/30/03) --------------------------------- - -- Video Configuration! - -- Fixed some Xbe change detection logic - -- Open Xbe and Import Exe can be done when a file - is already open (automatically closes, checking if - you made changes first). - -- Direct3D Lighting is working! - -version: 0.7.0 (05/27/03) --------------------------------- - -- Magically shrunk cxbx.dll/cxbx.exe file sizes enormously! - -- Added Controller Input and Configuration! - -- Added Recent Xbe/Exe file menus - -- Support __declspec(thread) style TLS - -- Fixed GUI color issues - -- Massive code re-organization. - -- Sooo many random optimizations - -- Went lower level with certain components of - emulation. Progress should speed up. - -- Some Xbe parsing and debug output fixes. - You should now be able to deal with the - slightly odd Linux Xbe files. - -- Much better emulation exception handling - -version: 0.6.0-pre12 (02/23/03) --------------------------------- - -- HLE has advanced to intercepting Direct3D and - Xapilib calls. A simple Xbox app built with a - 4361 or 4627 XDK has been shown to work. - -version: 0.6.0-pre11 (02/09/03) --------------------------------- - -- HLE has begun. Cxbx is capable of emulating a - blank XDK project. That is, if you had the XDK - and created an Xbox "game" that did absolutely - nothing, Cxbx could run it :P. Sounds pointless, - but it is actually very significant - -- New icon! Pending approval for use by the author - -version: 0.6.0-pre10 (02/07/03) --------------------------------- - -- Tons of debug console output when opening, or - converting, or saving xbe and exe files. This - was very easy to add because of the flexible - new debug console technique. - -version: 0.6.0-pre9 (02/06/03) --------------------------------- - -- Released source code under GNU license. - -- Debugging interface changed. Much cleaner. - -version: 0.5.2 (12/14/02) --------------------------------- - -- Fixed a bug in section name generation. This might - add some compatibility, not sure yet. - -version: 0.5.1 (??/??/??) --------------------------------- - -- more .xbe information added to core and xbe dump - -version: 0.5.0 (11/16/02) --------------------------------- - -- fixed a bug in displaying section digests. - -- added conversion from .exe to .xbe!! - -- more code cleanup, tiny ui improvements. - -version: 0.4.4 (11/01/02) --------------------------------- - -- updated .xbe structure for more acccuracy - -- added/fixed alot of information in xbe info - dumps. most notably is the TLS information, - which is finally completely correct. - -- lots and lots of new kernel function prototypes - and structs/enums are very accurate now. - -version: 0.4.3 (10/09/02) --------------------------------- - -- added edit menu options to patch for allowing - more than 64mb of ram, and also to toggle between - debug mode / release mode. i also fixed a few - relatively minor gui things, such as suggesting - an appropriate name for saving an .xbe file, instead - of just defaulting to "default.xbe". - -version: 0.4.2 (10/07/02) --------------------------------- - -- finally got around to adding logo bitmap import - feature. this is pretty damn cool because you - can change that little logo that appears when - you boot your xbox software to whatever you want - it to be. for example, you can modify xbox media - player to display "XBMP" instead of "Microsoft" - -version: 0.4.1 (10/04/02) --------------------------------- - -- internally alot of little things have changed, - code is organized pretty well now. software run - through the emulator typically safely terminates, - which is pretty damn cool from my perspective. - -version: 0.4.0 (BETA) (09/16/02) --------------------------------- - -- total code rewrite. most the funcionality - has remained intact with cleaner code UI - and code design. - -- logo bitmap is now decoded and displayed - in the main window when you open an .xbe - file. debug output window traces kernel - calls. logo bitmap can be exported to a - bitmap file. - -- xbe_info.txt now displays the correctly - decoded kernel thunk table address. - -version: 0.3.1 (09/02/2002) --------------------------------- - -- significantly decreased file sizes for cxbx.exe - and cxbx_krnl.dll. Also made debug output cleaner. - -version: 0.3.0 (08/19/2002) --------------------------------- - -- various gui changes, new web site, significant - changes in emulation theory. kernel exports are - now hijacked and interpretted. - -version: 0.2.2 (07/24/2002) ---------------------------- - -- fixed various minor GUI problems - -- added kernel thunk address description in GUI - -version: 0.2.1 (07/24/2002) ---------------------------- - -- added "Convert To .EXE" menu option. - -- fixed problem where entry point wasn't being detected - correctly when converting to .exe - -version: 0.2.0 (07/24/2002) ---------------------------- - -- drastically changed UI, took out convert to .exe - feature (temporarily). - -version: 0.1.3b(07/18/2002) ---------------------------- - -- oops..fixed an incorrect debug xor value - -version: 0.1.3 (07/16/2002) ---------------------------- - -- .xbe file information dump now shows retail/debug - translated addresses. - -version: 0.1.2 (07/16/2002) ---------------------------- - -- cxbx now dumps .xbe file information in a .txt file. - -- new icon ? - -- various tiny improvements \ No newline at end of file diff --git a/doc/Cleanup.txt b/doc/Cleanup.txt deleted file mode 100644 index 0066c6edf..000000000 --- a/doc/Cleanup.txt +++ /dev/null @@ -1,28 +0,0 @@ -Cxbx Code Cleanup - 05.06.06+ - -Legend : - - - Todo - : In progress - + Done, waiting to integrate - * Done, integrated - x Obsolete, Removed - - < Delegated - [ Completed, Update email sent - ~ Follow-Up Comment - -: Import/Export - * Pull upx into Import folder - * Export Cxbx.exe/Cxbx.dll - * Pull ntdll into Import folder - * Pull jpegdec into Import folder -: Structure - * Move all includes into Source (since they are not exported!) - - Organize all #include's cleanly, and use good relative paths when desirable - - Move things out of CxbxKrnl.h if they are internal to CxbxKrnl -- CxbxKrnl - - CxbxKrnlVerifyVersion etc -: General Cleanup - - AutoSwapFS (like AutoMutex) - diff --git a/doc/Direct3D.txt b/doc/Direct3D.txt deleted file mode 100644 index 98bdd1302..000000000 --- a/doc/Direct3D.txt +++ /dev/null @@ -1,26 +0,0 @@ -Direct3D resources are going to be a little bit of a hack. -There is a tough situation, because precompiled resources -(XPR) can be loaded into memory manually by an Xbox Game, -and then "Registered" with pResource->Register(addr); - -This is a problem because we never have an opportunity to -intercept the "this" pointer for this datatype. The base -resource class looks like this: - -DWORD Common; -DWORD Data; -DWORD Lock; - -The first idea is to tuck away the PC Direct3D resource -pointer inside of pResource->Data. The trouble with this -is that some Xbox Games will directly access and modify -this member. - -Another technique is to hide the PC Direct3D resource pointer -inside of the buffer allocated by Data. This could work, as -long as Xbox Games do not access the resource Data after the -initial Register function is called. - -The currently used method is to tuck the pointer away inside -of the Lock member, and hijack any functions that attempt to -access the Lock member variable. diff --git a/doc/Input.txt b/doc/Input.txt deleted file mode 100644 index 2d2c77a18..000000000 --- a/doc/Input.txt +++ /dev/null @@ -1,19 +0,0 @@ -Controller Input is configured using a dialog inside -EmuDInput.cpp/.h - -Configuration is actually saved into both the registry -and shared memory within Cxbx.dll. This means that all -active emulated games (even if there are many of them -at the same time) will have the ability to refresh the -current configuration at any given time. - -This works out really great because this means you can -make changes in the input configuration at any time and -immediately see the changes take affect. - -It is important to note that all access to this shared -memory, as with all shared memory, should be protected -with a mutual exclusion mechanism. Win32 provides such -a mechanism and it will be used. - --caustik \ No newline at end of file diff --git a/doc/RemovedCode.txt b/doc/RemovedCode.txt deleted file mode 100644 index 73b6217df..000000000 --- a/doc/RemovedCode.txt +++ /dev/null @@ -1,183 +0,0 @@ ->> nice code for dumping textures inside of push buffer stuff - - /* - IDirect3DBaseTexture8 *pTexture = 0; - - g_pD3DDevice8->GetTexture(0, &pTexture); - - if(pTexture != NULL) - { - static int dwDumpTexture = 0; - - char szBuffer[256]; - - printf("Texture Time...\n"); - - switch(pTexture->GetType()) - { - case D3DRTYPE_TEXTURE: - { - printf("_TEXTURE\n"); - sprintf(szBuffer, "C:\\Aaron\\Textures\\PushBufferTex - %.03d (0x%.08X).bmp", dwDumpTexture++, pTexture); - - ((IDirect3DTexture8*)pTexture)->UnlockRect(0); - - D3DXSaveTextureToFile(szBuffer, D3DXIFF_BMP, pTexture, NULL); - } - break; - - case D3DRTYPE_CUBETEXTURE: - { - printf("_CUBETEXTURE\n"); - for(int face=0;face<6;face++) - { - sprintf(szBuffer, "C:\\Aaron\\Textures\\PushBufferTexCube%d - %.03d (0x%.08X).bmp", face, dwDumpTexture++, pTexture); - - ((IDirect3DCubeTexture8*)pTexture)->UnlockRect((D3DCUBEMAP_FACES)face, 0); - - D3DXSaveTextureToFile(szBuffer, D3DXIFF_BMP, pTexture, NULL); - } - } - break; - } - } - //*/ - -<< - ->> - - /* TODO: Use new handle wrapping code - - // ****************************************************************** - // * For now, just check for 'special' cases - // ****************************************************************** - if(strcmp(ObjectAttributes->ObjectName->Buffer, "\\Device\\Harddisk0\\partition1\\") == 0) - { - EmuHandle *iEmuHandle = new EmuHandle; - - iEmuHandle->m_Type = EMUHANDLE_TYPE_PARTITION1; - - *FileHandle = PtrToEmuHandle(iEmuHandle); - } - else if(strcmp(ObjectAttributes->ObjectName->Buffer, "\\Device\\Harddisk0\\partition1\\TDATA") == 0) - { - EmuHandle *iEmuHandle = new EmuHandle; - - iEmuHandle->m_Type = EMUHANDLE_TYPE_TDATA; - - *FileHandle = PtrToEmuHandle(iEmuHandle); - - // TODO: Update IoStatusBlock if necessary - } - else - { - EmuPanic(); - } - */ - -<< - - __asm int 3 - wchar_t wszObjectName[160]; - - xntdll::UNICODE_STRING NtUnicodeString; - xntdll::OBJECT_ATTRIBUTES NtObjAttr; - - setlocale(LC_ALL, "English"); - mbstowcs(wszObjectName, ObjectAttributes->ObjectName->Buffer, 160); - - NT_RtlInitUnicodeString(&NtUnicodeString, wszObjectName); - - // Initialize NtObjAttr - NtObjAttr.Length = sizeof(xntdll::OBJECT_ATTRIBUTES); - - InitializeObjectAttributes(&NtObjAttr, &NtUnicodeString, ObjectAttributes->Attributes, ObjectAttributes->RootDirectory, NULL); - - NTSTATUS ret = NT_NtCreateFile - ( - FileHandle, DesiredAccess, &NtObjAttr, (xntdll::IO_STATUS_BLOCK*)IoStatusBlock, - (xntdll::LARGE_INTEGER*)AllocationSize, FileAttributes, ShareAccess, CreateDisposition, CreateOptions, NULL, NULL - ); - - if(FAILED(ret)) - MessageBox(g_hEmuWindow, "Bad!", "Cxbx", MB_OK); - else - MessageBox(g_hEmuWindow, "Good!", "Cxbx", MB_OK); - - -<< - -// ****************************************************************** -// * calculate TLS adjustment -// ****************************************************************** -uint32 TlsAdjust = 0; - -if(x_Xbe->m_TLS == 0) - TlsAdjust = -1; -else -{ - // ****************************************************************** - // * necessary tls adjustment values - // ****************************************************************** - uint32 TlsZF = x_Xbe->m_TLS->dwSizeofZeroFill; - uint32 TlsEA = x_Xbe->m_TLS->dwDataEndAddr; - uint32 TlsSA = x_Xbe->m_TLS->dwDataStartAddr; - - // ****************************************************************** - // * calculate tls adjustment - // ****************************************************************** - TlsAdjust = (TlsZF - TlsSA) + TlsEA + 0x0F; - TlsAdjust &= 0xFFFFFFF0; - TlsAdjust += 4; -} - ->> unused OpenXDK logo bitmap (OpenXDK.cpp) - -// OpenXDK logo bitmap -uint08 OpenXDK[] = -{ - 0x5A, 0x06, 0x23, 0x49, 0x13, 0x0F, 0x33, 0x49, 0x13, 0x0F, - 0x13, 0x4F, 0x33, 0x0D, 0x13, 0x49, 0x23, 0x46, 0x00, 0x23, - 0x4D, 0x33, 0x0D, 0x13, 0x43, 0x22, 0x00, 0x43, 0x13, 0x22, - 0x00, 0xC3, 0x22, 0xF0, 0xC3, 0x05, 0x33, 0xD3, 0x22, 0xF0, - 0x83, 0x09, 0x73, 0x2A, 0xF0, 0x07, 0x83, 0x22, 0xF0, 0xD3, - 0x33, 0x03, 0x73, 0xC3, 0x33, 0x0B, 0x33, 0xC3, 0x73, 0x05, - 0x73, 0x22, 0xF0, 0xE3, 0x63, 0x07, 0x43, 0xF3, 0x22, 0x00, - 0xF3, 0x43, 0x22, 0x00, 0xF3, 0x73, 0x33, 0x09, 0x33, 0x73, - 0xF3, 0x05, 0x43, 0xF3, 0x43, 0x23, 0x07, 0x13, 0x43, 0x93, - 0xB3, 0x09, 0x73, 0xC3, 0x13, 0x0D, 0x45, 0x07, 0xB3, 0x93, - 0x43, 0x09, 0x23, 0x43, 0xF3, 0x43, 0x03, 0x13, 0xA3, 0xF3, - 0x73, 0x07, 0x73, 0xF3, 0xA3, 0x13, 0x05, 0x73, 0xB3, 0x0B, - 0x13, 0x43, 0xC3, 0x73, 0x07, 0x43, 0xF3, 0x22, 0x00, 0xF3, - 0x43, 0x22, 0x00, 0xF3, 0x43, 0x0D, 0x43, 0xF3, 0x23, 0x73, - 0x93, 0xF3, 0x7F, 0xB5, 0x05, 0x75, 0xB3, 0xD3, 0x7D, 0x63, - 0x0B, 0xB3, 0x73, 0x0F, 0xF3, 0x43, 0x07, 0x53, 0xE3, 0xC3, - 0x63, 0xC3, 0xE3, 0x53, 0x09, 0x73, 0xB3, 0x0F, 0xB3, 0x73, - 0x03, 0x63, 0x73, 0x93, 0xF3, 0x7B, 0x83, 0xB3, 0xD3, 0xF3, - 0x43, 0x22, 0x00, 0xF3, 0x43, 0x0D, 0x43, 0xF3, 0x33, 0xB3, - 0xC3, 0xF3, 0xBD, 0xA3, 0x73, 0x63, 0x05, 0xB5, 0xD3, 0xE3, - 0xBD, 0x83, 0x0B, 0xB3, 0x73, 0x0F, 0xF3, 0x43, 0x09, 0x13, - 0xE3, 0xF3, 0xE3, 0x13, 0x0B, 0x73, 0xB3, 0x0F, 0xB3, 0x73, - 0x03, 0x83, 0xB3, 0xC3, 0xF3, 0xBB, 0xD3, 0xF5, 0xB3, 0x23, - 0x22, 0x00, 0xF3, 0x43, 0x0D, 0x43, 0xF3, 0x05, 0x43, 0xF3, - 0x36, 0x00, 0x73, 0xB3, 0x32, 0x00, 0xB3, 0x73, 0x0F, 0xF3, - 0x43, 0x07, 0x33, 0xC3, 0xE3, 0x73, 0xE3, 0xC3, 0x33, 0x09, - 0x73, 0xB3, 0x0F, 0xB3, 0x73, 0x07, 0x43, 0xF3, 0x0D, 0x13, - 0x43, 0xF3, 0x43, 0x22, 0x00, 0xF3, 0xC3, 0xA3, 0x79, 0xA3, - 0xC3, 0xF3, 0x05, 0x43, 0xF3, 0x36, 0x00, 0x73, 0xE3, 0x93, - 0x7B, 0x93, 0xB3, 0xC3, 0x07, 0xB3, 0x73, 0x0F, 0xF3, 0x43, - 0x05, 0x73, 0xF3, 0xA3, 0x13, 0x03, 0x13, 0xA3, 0xF3, 0x73, - 0x07, 0x73, 0xD3, 0x7B, 0x83, 0xB3, 0xE3, 0x73, 0x07, 0x43, - 0xF3, 0x22, 0x00, 0xF3, 0x43, 0x22, 0x00, 0x53, 0x73, 0x83, - 0xB9, 0x93, 0x73, 0x53, 0x05, 0x33, 0xB3, 0x36, 0x00, 0x43, - 0x73, 0xA3, 0xBD, 0x83, 0x73, 0x07, 0x83, 0x63, 0x0F, 0xB3, - 0x33, 0x03, 0x63, 0xE3, 0x53, 0x0B, 0x53, 0xE3, 0x63, 0x05, - 0x63, 0xBF, 0x75, 0x23, 0x07, 0x33, 0xB3, 0x22, 0x00, 0xB3, - 0x33, 0xFA, 0x00, 0x13, 0x0F, 0x13, 0xBE, 0x06, 0x03, -}; - -// size, in bytes, of the OpenXDK logo bitmap -uint32 dwSizeOfOpenXDK = 0x0000017B; - -<< \ No newline at end of file diff --git a/doc/ShogunChangelog.txt b/doc/ShogunChangelog.txt deleted file mode 100644 index cde057cda..000000000 --- a/doc/ShogunChangelog.txt +++ /dev/null @@ -1,1406 +0,0 @@ -Cxbx Changelog for Shogun3D Branch - -??/??/09 -- Added most of my previous changes to the disten branch so I can continue - to build my work on it (mainly because my old branch was just too slow). - -- Got Smashing Drive to run at full speed. The intro animations will now - show as well. Still have some buggy textures though. - -- Added the changes necesarry to run XDK 4831 games. - -- Added more XDK functions (I don't remember what they all were): - IDirectSound8_EnableHeadphones (4627, 4721) - IDirect3DDevice8_SetPixelShader (4721) - IDirectSoundStream_Pause (4627, 4928) - EmuXapiApplyKernelPatches (4831) - -- Lots more stuff too, I just don't remember what I did exactly. I'll log - it when I remember :) - -4/20?/09 -- Unreal Championship finally shows the first intro video! I've been at - this game for ages, but couldn't get it to work in XP, only vista and I - have no screens because videos won't render in Vista for some reason - (not even in Turok!) -_- Anyway, I had to do a brute force hack for it - to work (I skipped the call to IDirectSoundStream_SetHeadroom) when running - with OllyDbg. I couldn't get a working OOVPA for it for some odd reason! - -4/24/09 7:46 PM -- Moved the following functions (from -> to) - IDirect3DDevice8_GetGammaRamp (4627 -> 4034) - IDirect3DDevice8_GetCreationParameters (5849 -> 4034) - IDirect3DDevice8_setViewport (4361 -> 4034) - -- Added the following functions - IDirect3DDevice8_GetViewport (4034) - -4/25/09 10:44 AM -- Moved the following function(s) (from -> to) - IDirect3DDevice8_GetBackBuffer (4361 -> 4134) - IDirect3DDevice8_GetDepthStencilSurface (4361 -> 4134) - IDirect3DDevice8_SetRenderTarget (4361 -> 4134) - -5/16/09 8:24 PM -- Added the following function(s) - IDirect3DDevice8_AddRef (5558) - -- Other new stuff: - D3DTOP_DOTPRODUCT3 (for bumpmapping!) - -8/28/09 -- Added more Direct3D stuff (4627 and maybe more, I forgot what they all were). - IDirect3DDevice8_SetPalette (4627) is the only one I really remember. - -8/29/09 -- Fixed a bug in EmuDirectSoundCreateStream. This function is sometimes called before - DirectSoundCreate is called, so when that happens we need to initialize DirectSound - before we can continue. -- The above fix gets Rayman Arena showing intros again! -- Added the following function(s) - IDirect3DDevice8_SetGammaRamp (3925) - SetThreadPriorityBoost (3911) - GetThreadPriority (3911) - CreateFiber (3911) - DeleteFiber (3911) - -8/30/09 -- Added the following functions(s) - IDirect3DDevice8_BackFillMode (4531) - IDirect3DDevice8_GetProjectionViewMatrix (4627) - IDirect3DDevice8_DrawRectPatch (4627) - IDirect3DDevice8_InsertCallback (4627) - IDirect3DDevice8_CreateStateBlock (4627) - IDirect3DDevice8_SetPixelShaderProgram (4627) - IDirect3DDevice8_BackFillMode (4531) - IDIrect3DDevice8_Release (4432) - CreateFiber (4034-4627) - CreateFiber (4034-4627) - IDirect3DSurface8_GetDesc (4432-4531) -- Redirected XAPILIB 4531 to 4627. - -9/1/09 -- Added the following functions - Get2DSurfaceDesc (4432-4531) - IDirect3DDevice8_SetMaterial (3925) -- Added the following kernel API(s) - AvGetSavedDataAddress (IDirect3DDevice8_GetPersistedSurface is too small to HLE). -- Added the following source files - XOnline(s).1.0.4627.h/inl - -??/??/09 -- Added the following function(s) - XInputGetCapabilities (3911) - -10/??/09 -- Added the following file(s) - EmuXAudio\XboxAdpcm.cpp/h - EmuXAudio\XSoundBank.cpp/h - EmuXAudio\XWaveBank.cpp/h - -10/13/09 -- Added the following functions - XLoadSectionA (3911-4627 and beyond?) - XFreeSectionA (3911-4627 and beyond?) - CDirectSound8::SetAllParametersA (4831) - NtQueueApcThread -- Caustik's theory was right, section loading APIs are safe to ignore (so far)! -- Updated the following functions - EmuIDirect3DResource8_Register (added D3DFMT_LIN_A1R5G5B5) - EmuUpdateActiveTexture (added D3DFMT_LIN_A1R5G5B5) -- Zapper (XDK 4831) now reaches intros and plays intro videos! -- Taz: Wanted (XDK 4432) plays intro videos and shows loading screen! -- The games listed above use the same engine and have the same bug. If/when I find it, - I guess both games should be okay. - -10/14/09 -- Added the following functions - IDirectSoundBuffer8_AddRef (4627, should be the same as 3936 but not tested). - -10/15/09 -- Added the following functions - IDirect3DDevice8_SetVertexShaderConstant4 (5558) - IDirect3DDevice8_DrawVerticesUP (5558) - IDirect3DDevice8_GetTransform (5233-5558) - -10/16/09 -- Added the following functions - CMcpxBuffer::Play (4721) - -10/20/09 -- Added the following functions - D3DDevice_SetRenderState_MultiSampleMask (4627, 4721) - D3DDevice_SetRenderState_LogicOp (4627, 4721) -- Robotech: Battlecry is starting to work! - TODO: Add IDirectSoundBuffer_GetStatus and IDirectSoundBuffer_Pause for 4721 - -11/1/09 -- Added the following functions - GetTimeZoneInformation (4034 - 5120) - -11/2/09 -- Added the following functions - IDirect3DDevice8_SetPixelShaderConstant (4627-4298) - SetThreadPriority (4034 - 5120) - GetExitCodeThread (4242 - 4928) - RtlDestroyHeap (4627-4928) (Others?) - CDirectSoundVoice::SetAllParameters (4627 - 4928) - CDirectSoundBuffer::SetAllParameters (4627 - 4928) - IDirectSoundBuffer8_SetAllParameters (4627 - 4928) - D3D::SetFence (4627 - 4928) - IDirect3DDevice8_InsertFence (4627 - 4928) - D3D::CDevice::KickOff (4627 - 4928) - IDirect3DDevice8_SetPixelShaderConstant (4928 - 5344) (implimented only for 4928) - IDirect3DDevice8_SetRenderState_TwoSidedLighting (4627 - 4928) - IDirect3DDevice8_GetTexture2 (4627 - 4928) -- Other new stuff - Added D3DTOP_BLENDTEXTUREALPHA (14) -- Panzer Dragoon Orta (4928) goes ingame! No 3D graphics yet, but still significant progress. Not yet stable due to a few random crashes and freezes prior to going ingame. - -TODO: Investigate 0x2AE7F2 and 0x2C8877 for Panzer. - -11/3/09 -- Fixed my implementation of IDirect3DDevice8_GetTexture2 (dirty hack) - -11/4/09 -- Added the following functions - D3D::CDevice::SetStateVB (4627 - 4928) - D3D::CDevice::SetStateUP (4627 - 4928) - IDirect3DDevice8_DrawIndexedVerticesUP (4627 - 4928) - -11/5/09 -- Added the following functions - IDirect3DDevice8_SetPalette (5233) - IDirect3DDevice8_GetCreationParameters (5233) - IDirect3DDevice8_SetFlickerFilter (5233 - 5344) - IDirect3DDevice8_SetSoftDisplayFilter (5233 - 5344) - XACTEngineCreate (4627 & 4928) - XACTEngineDoWork (4627) - XACT::CEngine::RegisterWaveBank (4627) - IXACTEngine_RegisterWaveBank (4627) - XACT::CEngine::RegisterStreamedWaveBank (4627) - IXACTEngine_RegisterStreamedWaveBank (4627) - XACT::CEngine::CreateSoundBank (4627) - IXACTEngine_CreateSoundBank (4627) - XACT::CEngine::DownloadEffectsImage (4627) - IXACTEngine_DownloadEffectsImage (4627) - XACT::CEngine::CreateSoundSource (4627) - IXACTEngine_CreateSoundSource (4627) - XACT::CSoundBank::GetSoundCueIndexFromFriendlyName (4627) - IXACTSoundBank_GetSoundCueIndexFromFriendlyName (4627) - IXACTSoundBank_Play (4627) (Needs further investigation...) - -- Added the following texture formats - D3DFMT_A8B8G8R8 (Swizzled) - D3DFMT_UYVY (Swizzled, afaik) - -11/11/09 -- Added the following texture format(s) - D3DFMT_UNKNOWN (Undefined) (For MetalSlug 3) - -- Added the following functions - IDirect3DDevice8_SetShaderConstantMode (5849) - IDirect3DDevice8_SetViewport (5849) - QueueUserAPC (5849) (Possibly too high level) - CDirectSound_SetAllParameters (4721) - -11/18/09 -- Added the following function(s) - IDirect3D8_CreateDevice (5028) - -11/20/09 -- Added the following function(s) - RtlReallocateHeap (4361) - RtlSizeHeap (4361) - CDirectSoundVoiceSettings::SetMixBinVolumes (4361) - CDirectSoundVoice::SetMixBinVolumes (4361) - CDirectSoundBuffer::SetMixBinVolumes (4361) - -- Removed DSOUND 4361 alias to 4627 (This will break Smashing Drive!) - -11/22/09 -- Temporarily set DSOUND 4361 alias to 4627 again. -- Added the following function(s) - CDirectSoundStream_SetMixBins (4627) - CMcpxVoiceClient_SetEG (4627) - CDirectSoundVoice_SetEG (4627) - CDirectSoundStream_SetEG (4627) - CDirectSoundStream_FlushEx (4627) - IDirectSoundStream_FlushEx (4627) - -11/23/09 -- Added the following function(s) - RtlCreateHeap (4134) - RtlAllocateHeap (4134) - RtlFreeHeap (4134) - RtlReAllocateHeap (4134) - RtlSizeHeap (4134) - XapiBootDash (4134) - XRegisterThreadNotifyRoutine (4134) - XGetDeviceChanges (4134) - XID_fCloseDevice (XREF) (4134) - XInputClose (4134) - XInputGetCapabilities (4134) - SetThreadPriorityBoost (4134) - GetThreadPriority (4134) - XGetDevices (4134) - QueryPerformanceCounter (4134) - QueryPerformanceFrequency (4134) - XInputPoll (4134 - 4928) - XGetSectionHandleA (4134 - 4928) - XLoadSectionByHandle (4134 - 4928) - XFreeSectionByHandle (4134 - 4928) - RtlDestroyHeap (4134 - 4928) - D3DDevice_CreatePixelShader (4134) - IDirect3DSurface8_LockRect (4134) - Lock2DSurface (4134) - D3DDevice_SetGammaRamp (4134) - IDirect3D8_CheckDeviceFormat (4134) - IDirect3D8_GetAdapterModeCount (4134) - IDirect3D8_EnumAdapterModes (4134) - IDirect3DDevice8_LoadVertexShader (4134) - IDirect3DDevice8_SelectVertexShader (4134) - IDirect3DDevice8_CopyRects (4134) - IDirect3DDevice8_CreateImageSurface (4134) - IDirect3DDevice8_SetVertexShaderConstant (4134) - IDirect3DDevice8_SetPixelShader (4134) - IDirect3DDevice8_SetTextureState_BumpEnv (4134) - IDirect3DDevice8_SetIndices (4134) - IDirect3DDevice8_SetTexture (4134) - IDirect3DDevice8_SetRenderState_VertexBlend (4134) - IDirect3DDevice8_SetRenderState_TextureFactor (4134) - IDirect3DDevice8_SetRenderState_EdgeAntiAlias (4134) - IDirect3DDevice8_SetRenderState_Simple (4134) - IDirect3DDevice8_SetRenderState_ZEnable (4134) - IDirect3DDevice8_SetRenderState_StencilEnable (4134) - IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias (4134) - IDirect3DDevice8_GetTransform (4134) - IDirect3DDevice8_SetStreamSource (4134) - IDirect3DDevice8_SetVertexShader (4134) - IDirect3DDevice8_DrawVertices (4134) - IDirect3DDevice8_DrawVerticesUP (4134) - IDirect3DDevice8_DrawIndexedVertices (4134) - IDirect3DDevice8_SetLight (4134) - IDirect3DDevice8_SetMaterial (4134) - IDirect3DDevice8_LightEnable (4134) - IDirect3DVertexBuffer8_Lock (4134) - Get2DSurfaceDesc (4134) - IDirect3DSurface8_GetDesc (4134) - IDirect3DDevice8_SetRenderState_StencilFail (4134) - IDirect3DDevice8_SetRenderState_NormalizeNormals (4134) - IDirect3DDevice8_Reset (4134 - 4361) - IDirect3D8_KickOffAndWaitForIdle (4134 - 4361) - IDirect3DDevice8_SetTextureState_TwoSidedLighting (4134 - 4361) - IDirect3DDevice8_SetRenderState_BackFillMode (4134 - 4361) - IDirect3DDevice8_SetTextureState_ColorKeyColor (4134 - 4361) - IDirect3DDevice8_SetRenderState_FrontFace (4134 - 4361) - IDirect3DDevice8_SetRenderState_LogicOp (4134 - 4361) - IDirect3DDevice8_SetRenderState_StencilFail (4134 - 4361) - IDirect3DDevice8_SetRenderState_OcclusionCullEnable (4134 - 4361) - IDirect3DDevice8_SetRenderState_StencilCullEnable (4134 - 4361) - -- Move the following functions - XInputPoll (4928 -> 4134) - XGetSectionHandleA (4627 -> 4134) - XLoadSectionByHandle (4627 -> 4134) - XFreeSectionByHandle (4627 -> 4134) - RtlDestroyHeap (4627 -> 4134) - IDirect3DDevice8_Reset (4134) - IDirect3D8_KickOffAndWaitForIdle (4432 -> 4134) - IDirect3DDevice8_SetTextureState_TwoSidedLighting (4432 -> 4134) - IDirect3DDevice8_SetRenderState_BackFillMode (4432 -> 4134) - IDirect3DDevice8_SetTextureState_ColorKeyColor (4432 -> 4134) - IDirect3DDevice8_SetRenderState_FrontFace (4432 -> 4134) - IDirect3DDevice8_SetRenderState_LogicOp (4432 -> 4134) - IDirect3DDevice8_SetRenderState_StencilFail (4432 -> 4134) - IDirect3DDevice8_SetRenderState_OcclusionCullEnable (4432 -> 4134) - IDirect3DDevice8_SetRenderState_StencilCullEnable (4432 -> 4134) - -- Added a bit of code to print out more details about the Direct3D device - each Xbox game is trying to create. -- Added a hack to disable Tripple Buffering. JSRF needs this for cards that - don't support it with the parameters it's using. - -11/24/09 -- Added the following functions(s) - IDirect3DDevice8_FillMode (4134) - IDirect3DDevice8_SetRenderState_RopZCmpAlwaysRead (4134 - 4627) - IDirect3DDevice8_SetRenderState_RopZRead (4134 - 4627) - IDirect3DDevice8_SetRenderState_DoNotCullUncompressed (4134 - 4627) - IDirect3DDevice8_SetRenderState_Dxt1NoiseEnable (4134 - 4361) - IDirect3DDevice8_SetRenderState_MultiSampleMask (4134 - 4361) - IDirect3DDevice8_SetRenderState_MultiSampleMode (4134 - 4361) - IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode (4134 - 4361) - IDirect3DDevice8_SetRenderState_ShadowFunc (4134 - 4361) - IDirect3DDevice8_SetRenderState_YuvEnable (4134 - 4361) - IDirect3DDevice8_DrawIndexedVerticesUP (4134 - 4361) - IDirect3DDevice8_SetPixelShaderConstant (4134 - 4627) - IDirect3DDevice8_DeletePixelShader (4134 - 4627) - IDirect3DDevice8_SetRenderState_CullModeB (4134 - 4627) - IDirect3DDevice8_DeleteVertexShader (4134 - 4627) - IDirect3DDevice8_SetScreenSpaceOffset (4134 - 4627) - D3D::SetFence (XREF) (4134 - 4627) - IDirect3DDevice8_SetRenderState_LineWidth (4134 - 4361) - IDirect3DDevice8_GetGammaRamp (4134) - SetThreadPriorityBoost (4134 - 4361) - IDirect3DDevice8_BlockUntilVerticalBlank (4134) - IDirect3DDevice8_SetSwapCallback (4134 - 4361) - IDirect3DDevice8_GetTile (4134 - 4361) - IDirect3DDevice8_SetTile (4134 - 4361) - IDirect3DDevice8_IsBusy (4134 - 4361) - -- Fix a bug in D3D8 4134. IDirect3DDevice8_SetRenderState_Fillmode_1_0_3925 was giving - us a false positive. The problem exists in 4034 as well because whoever started - trying to add 4034 and 4134 support just threw in a bunch of signatures from D3D8 3925 - must have been looking for similarities in that XDK. Good idea when you don't have - a certain XDK, but it's not 100% safe to do (or leave in unattended). -- Attempting to impliment IDirect3DDevice8_SetSwapCallback. Some of the steps necessary - will revolve around IDirect3DDevice8_SetVerticalBlankCallback's inner workings. Adding - the callback function to execute each time D3DDevice_Present/Swap is called is easy, but - Some of the parameters require a bit of leg work. Right now, some of my implementation - is guess work. Hopefully Caustik will have a good idea of what to do. -- Even worse, the signatures for D3DDevice_SetSwapCallback and D3DDevice_SetVerticalBlankCallback - are almost completely identical and are different by an extremely small margin. For 4134, - it looks the same as 4361's. I might be over reacting, but I just don't want to screw this - up because working on JSRF is proving to be a delicate operation! - -11/26/09 -- Added the following function(s) - XnInit (5233) - bind (5233) - ioctlsocket (5233) - WSAStartup (5233) - XNetStartup (5233 - 5344) - CDirectSoundStream_SetMode (3936) - -12/1/09 -- Added the following function(s) - XACT::CEngine::RegisterNotification (4627) - IXACTEngine_RegisterNotification (4627) - XACT::CEngine::GetNotification (4627) - IXACTEngine_GetNotification (4627) - XACT::CEngine::CreateSoundBank (4928) - IXACTEngine::CreateSoundBank (4928) - XACT::CEngine::RegisterWaveBank (4928) - IXACTEngine::RegisterWaveBank (4928) - XAudioDownloadEffectsImage (4627 - 4928) - -12/2/09 -- Added the following function(s) - XACT::CEngine::UnRegisterWaveBank (4928)(*) - IXACTEngine_UnRegisterWaveBank (4928)(*) - IDirect3DDevice8_PersistDisplay (4627 & 4928) - XNetGetEthernetLinkStatus (4627 - 4928, 5233 & 5344) - XGWriteSurfaceOrTextureToXPR (4627 - 4928) -- Other things - Added D3DTOP_BLENDCURRENTALPHA (13) - -- Unreal Championship gets passed the loading screen and the menus appear to be interactive - as well. It took F-O-R-E-V-E-R, but I'm finally beginning to make some significant progress - since my last updates for this game. - -(*) Could be wrong. Look into IXACTEngine_SetNotification as well... - -12/3/09 -- Added the following function(s) - XLaunchNewImageA (4627 & 4928) - XGetLaunchInfo (4627 - 4928) -- Unreal Championship appears to be "almost" ingame. The LaunchData parameter from XLaunchNewImageA - is saved in a .bin file (CxbxLaunchData.bin) and is loaded once XGetLaunchInfo is called. After it - is loaded, the file is deleted so that Unreal Championship is started normally. When CxbxLaunchData.bin - is loaded by XGetLaunchInfo, Unreal Championship will use this data to load the desired level and - data that goes with it. The biggest problem is that the controller is no longer recognized after - Cxbx is restarted. It may take yet another hack to get around this. If we can, we'll find out whether - this game can be played or not. - -12/26/09 -- Added the following function(s) - XSetProcessQuantumLength (4627 & 4721) - XGetFileCacheSize (5233 & 5344) - IDirect3DDevice8_Unknown1 (5233) (*) - IDirect3DDevice8_SetRenderState_TwoSidedLighting (5120 & 5233) - IDirect3DDevice8_SetRenderState_FrontFace (4531 - 5233) - IDirect3DDevice8_SetRenderState_LogicOp (4721 - 5344) - IDirect3DDevice8_BeginPush (5233 & 5344) - IDirect3DDevice8_EndPush (5233 & 5344) - -(*) This is not the actual function name. Since I was unable to find any functions even somewhat similar -to it (I don't have 5233, but not even 5344 helped this time), I just created a dummy function to the game -from crashing. There were 4 functions that had access to it, and I had no idea which one was calling it, -nor could I find out what those functions were either. The only lead I had was that it called the kernel -function AvSendTVEncoderOption, which led me to the assumption that we can get away with ignoring this function -for now. So far, this only occurs in games known as "Run Like Hell" and "Oddworld Munch's Oddyssee". - -12/27/09 -- Added the following function(s) - IDirect3DDevice8_AddRef (3925) [3911] - CDirectSoundStream_GetInfo (All) (*) - IDirect3DDevice8_Unknown1 (3925) (**) - IDirect3DDevice8_GetViewport (3925) - IDirect3DDevice8_GetGammaRamp (3925) - SignalObjectAndWait (3911 - 4627) - PulseEvent (3911) - IDirect3DDevice8_GetDisplayFieldStatus (3925) - -- Stopped Cxbx from trying to assemble "empty" shaders in Azurik: Rize of Perathia. - -(*) Since this function is part of the DirectSoundStream VTable (CDirectSoundStream::vtbl), the XDK doesn't -matter. -(**) See update for 12/26/09 - -12/28/09 -- Added the following function(s) - IDirect3DDevice8_SetSwapCallback (4928) - IDirect3DDevice8_SetRenderState_MultiSampleAntiAlias (3925) [3911] - -12/29/09 -- Added the following function(s) - CDirectSoundVoice_SetMode (4627 - 4831) - CDirectSoundBuffer_SetMode (4627 - 4831) - IDirectSoundBuffer_SetMode (4627 - 4831) - IDirect3DDevice8_SetRenderState_FrontFace (4531 - 5120) - IDirect3DDevice8_SetRenderState_MultiSampleMode (4531 - 4831) - IDirect3DDevice8_SetRenderState_MultiSampleRenderTargetMode (4531 - 4831) - IDirect3DDevice8_SetRenderState_StencilCullEnable (4531 - 4831) - -1/1/2010 -- Added the following function(s) - IDirect3DDevice8_SetGammaRamp (4242 - 4531) - IDirect3DDevice8_CreateVertexBuffer (4432) - IDirect3DDevice8_SetShaderConstantMode (4361 - 4432) - IDirect3DDevice8_SetVertexShaderConstant (4432 & 4531?) - IDirect3DDevice8_CreatePixelShader (4432 & 4531) - IDirect3DDevice8_GetViewport (4400 - 4531?) - IDirect3DDevice8_DrawVertices (4400 - 4531?) - IDirect3DDevice8_SetFlickerFilter (4361 & 4432) - IDirect3DDevice8_SetSoftDisplayFilter (4361 & 4432) - IDirect3DDevice8_SetGammaRamp (4432) - IDirect3DDevice8_DrawIndexedVertices (4400 - 4531?) - IDirect3DDevice8_PrimeVertexCache (4361) - IDirect3DDevice8_BeginPush/EndPush (4361) - IDirect3DDevice8_Begin/End (4361 - 4531?) - IDirect3DDevice8_SetVertexData2f (4361 - 4531?) - IDirect3DDevice8_SetVertexData4f (4361 - 4531?) - IDirect3DDevice8_SetVertexData4ub (4361 - 4531?) - CDirectSoundBuffer_PlayEx (4361 - 4627)(*) - IDirectSoundBuffer8_PlayEx (4361 - 4627)(*) - CMxpxBuffer_Stop2 (4361 - 4432)(**) - CDirectSoundBuffer_StopEx (4361 - 4627) - IDirectSoundBuffer8_StopEx (4361 - 4627) - CDirectSound_SetPosition (4361 - 4432) - -- Added support for D3DVSDE_BLENDWEIGHT - -(*) Not yet confirmed -(**) There are two versions of CMcpxBuffer_Stop. One has one parameter (ulong), and the other has two and calls - the first one (__int64, ulong). My signature is for the one with 2 params. - -1/2/10 -- Added the following function(s) - CDirectSound_SetVelocity (4432) - CDirectSoundVOice_SetPosition (4432) - IDirect3DDevice8_SetIndices (4400 - 4531) - -- Added all known blending operations (a bit surprised Caustik only added D3DBLENDOP_ADD) - -1/3/10 -- Added the following function(s) - IDirect3DDevice8_SetRenderState_VertexBlend (3925) [3911] - IDirect3DDevice8_SetRenderState_BackFillMode (3925) [3911] - IDirect3DDevice8_SetRenderState_TwoSidedLighting (3925) [3911] - IDirect3DDevice8_SetRenderState_NormalizeNormals (3925) [3911] - IDirect3DDevice8_SetRenderState_FrontFace (3925) [3911] - IDirect3DDevice8_SetRenderState_TextureFactor (3925) [3911] - IDirect3DDevice8_SetRenderState_LogicOp (3925) [3911] - IDirect3DDevice8_SetRenderState_EdgeAntiAlias (3925) [3911] - IDirect3DDevice8_SetRenderState_MultiSampleMask (3925) [3911] - IDirect3DDevice8_SetRenderState_MultiSampleMode (3925) [3911] - CreateFiber (4432) - DeleteFiber (4432) - -- Added the following kernel function(s) - KeBugCheck (*) - -- Fixed up EmuIDirect3DDevice8_UpdateOverlay a bit. Updating the overlay - in software lets me see video playback again and let's me take screen - shots because it's a YUV -> RGB conversion. Videos also play at more - "correct" speeds in software anyway. Unreal Championship requires - this to be done in software to avoid crashing. Also, since the YUV - overlay is done in software, it's not updated automatically like a hard- - ware accelerated overlay, so I added a hack to update the screen if - Present or Swap was not called since the last update of the overlay. - this fixes most problems I've had with video playback. - -(*) TODO: Find out what is calling this (possibly XapiFiberStartup) - -1/4/10 -- Added the following function(s) - IDirect3DDevice8_SetRenderState_ShadowFunc (3925) [3911] - IDirect3DDevice8_SetRenderState_LineWidth (3925) [3911] - IDirect3DDevice8_SetRenderState_YuvEnable (3925) [3911] - IDirect3DDevice8_PersistDisplay (3925) [3911] - -1/5/10 -- Added the following function(s) - CDirectSoundVoice_SetPitch (4627) - CDirectSoundBuffer_SetPitch (4627) - IDirectSoundBuffer8_SetPitch (4627) - CMcpxBuffer_GetStatus (4721) - IDirect3DDevice8_CreateIndexBuffer (5558) - IDirect3DDevice8_CreateIndexBuffer2 (5558) - IDirect3DDevice8_SetVerticalBlankCallback (5233) - -- The TechCertGame works again, but freezes ingame. - -1/6/10 -- Added the following function(s) - IDirect3DDevice8_SampleAlpha (5233 - 5344) - IDirect3DDevice8_GetVertexShaderSize (4134 - 4531) - -1/8/10 -- Added the following function(s) - CMcpxBuffer_Pause (4928 - 5344) - CDirectSoundBuffer_Pause (4928 - 5344) - IDirectSoundBuffer8_Pause (4928 - 5344) - CreateSemaphore (5558) (*) - ReleaseSemaphore (5558) (*) - IDirect3D8_GetAdapterModeCount (4721 - 5558) - IDirect3D8_EnumAdapterModes (4721 - 5558) - IDirect3DDevice8_SetverticalBlankCallback (5558) - IDirect3DDevice8_SetSwapCallback (5558) - IDirect3DDevice8_GetGammaRamp (5558 - 5659?) - IDirect3DDevice8_SetRenderState_TextureFactor (5558) - IDirect3DDevice8_SetRenderState_VertexBlend (5558) - -- Created new function EmuXB2PC_D3DMultisampleFormat(DWORD Type) in convert.cpp -- Fixed a bug in IDirect3D8_CheckMultiSampleDeviceType, actually use PCSurfaceFormat - flag instead of actual parameter! - -(*) Yes they are high level, but it fixes some problems with Metal Arms (5558) - -1/15/10 -- Added the following function(s) - IDirect3DDevice8_DrawVertices (3925) [3911] - IDirect3DDevice8_DrawVerticesUP (3925) [3911] - IDirect3DDevice8_DrawIndexedVerticesUP (3925) [3911] - CMcpxAPU::Set3dDopplerFactor (3936) [3911] - CDirectSound::SetDopplerFactor (3936) [3911] - IDirectSound8_SetDopplerFactor (3936) [3911] - IDirect3DDevice8_GetDisplayMode (3925) [3911] - XGIsSwizzledFormat (3911) - XGSizzleRect (3911) - XGUnswizzleRect (3911) - XGSwizzleBox (3911) - XGWriteSurfaceOrTextureToXPR (3911) - -- Added the following kernel function(s) - IoDismountVolumeByName - HalReadSMCTrayState - -- Added XG.1.0.3911.h/inl (it's about damn time!) - -1/16/09 -- Added the folliwing function(s) - IDirect3DDevice8_SetTextureState_BumpEnv (3925) [3911] - IDirect3DDevice8_SetTextureState_ColorKeyColor (3925) [3911] - IDirect3DDevice8_SetVertexData4s (3925) [3911] - IDirect3D8_SetPushBufferSize (3925) [3911] - CSensaura3d::GetFullHRTFFilterPair (3936) [3911] - DirectSoundUseFullHRTF (3936) [3911] - CDirectSound::GetCaps (3936) [3911] - IDirectSound8_GetCaps (3936) [3911] - -1/22/09 -- Added the following function(s) - timeSetEvent (4627 & 4721) - timeKillEvent (4627 & 4721) - CDirectSoundVoice::SetConeAngles (3936) [3911] - DirectSoundEnterCriticalSection (3936) [3911] - CDirectSoundBuffer::PlayEx (3936) [3911] - IDirectSoundBuffer8_PlayEx (3936) [3911] - DirectSoundUseFullHRTF (3936) [3911] - RaiseException (4627 - 4928) - -1/23/10 -- Added the following function(s) - D3D_AllocContiguousMemory (3925) [3911] (*) - IDirect3DResource8_GetType (3925) [3911] (*) - -(*) Cxbx doesn't crash without this signature... -(**) Just for testing purposes. You can remove it if you want/need. - -1/24/10 -- Added the following function(s) - IDirect3DDevice8_SetRenderState_Deferred (3925) [3911] (*) - IDirect3DDevice8_SetLight (3925) [3911] - IDirect3DDevice8_LightEnable (3925) [3911] - IDirect3DDevice8_CreateVertexShader (3925) [3911] - IDirect3DDevice8_SetRenderTarget (3948) [3911] - -(*) This can/should be removed once the detection of 3911's D3DDeferredRenderState -is properly located. - -- Fixed the ordering problem with Deferred Texture States in 3911. -- TODO: Compensate the difference in modified vertex shader constants. - -1/25/10 -- Added the following function(s) - IDirect3DSurface8_GetDesc (3925) [3911] - IDirectSound8_AddRef (3936) / [3911] - 4242 - DirectSoundGetSampleTime (3936) [3911] - IDirectSoundBuffer8_AddRef (3936) [3911] - 4627 - -- Moved the following function(s) - IDirectSound8_AddRef (4361 -> 3936) - IDirectSoundBuffer8_AddRef (4627 -> 3936) - -- Fix some bugs in EmuDirectSoundBufferCreate. DSBCAPS_MIXIN,_FXIN AND _FXIN2 - were getting by the "AcceptableMask" undetected. - -1/27/10 -- Added the following function(s) - IDirect3DDevice8_SetTile (3925) [3911] - CDirectSoundBuffer::SetMinDistance (3936) [3911] - IDirectSoundBuffer8_SetMinDistance (3936) [3911] - CDirectSoundBuffer::SetMaxDistance (3936) [3911] - IDirectSoundBuffer8_SetMaxDistance (3936) [3911] - IDirect3DDevice8_ApplyStateBlock (3925) [3911] - IDirect3DDevice8_CaptureStateBlock (3925) [3911] - IDirect3DDevice8_CreateStateBlock (3925) [3911] - IDirect3DDevice8_DeleteStateBlock (3925) [3911] - IDirect3DDevice8_DeletePixelShader (3925) [3911] - IDirectSoundBuffer8_SetMixBinVolumes (3925) [3911] - -_ Added the following kernel function(s) - KeRaiseIrqlToDpcLevel - -1/28/10 -- Added the following function(s) - QueueUserAPC (3911 - 5788) - GetThreadPriority (5849) - SetThreadPriorityBoost (5849) - IDirect3DDevice8_BlockUntilVerticalBlank (5849) - XGetSectionHandleA (5849) - XLoadSectionByHandle (5949) - XFreeSectionByHandle (5849) - XGetSectionSize (5849) - -- Moved the following function(s) - QueueUserAPC (5849 -> 3911) - -- Fixed the problem with QueueUserAPC, it works now. Had to set the - right permisions for it to work on windows. -- Made another signature for CMcpxBuffer::GetCurrentPosition (3911). The original - was off by one byte. - -2/4/10 -- Added the following function(s) - D3D::KickOffAndWaitForIdle (5344 - 5558) - IDirect3DDevice8_Reset (5558) - IDirect3DDevice8_SetGammaRamp (5455 - 5558) - IDirect3DDevice8_GetViewport (5558) - GetFileAttributesA (5558) - VirtualProtect (4627 - 5558) (*) - -(*) Probably too high level... - -4/9/10 -- Added new Simple Renderstates - D3DRS_STENCILZFAIL - D3DRS_STENCILPASS - D3DRS_STENCILFUNC - D3DRS_STENCILREF - D3DRS_STENCILMASK - D3DRS_STENCILWRITEMASK - -- Added the following function(s) - D3DDevice_SetModelView (3925) [3911] - D3DDevice_FlushVertexCache (3925) [3911] - D3DDevice_SetScissors (3925) [3911] - D3DDevice_SetVertexShaderInput (3925) [3911] - D3DDevice_PrimeVertexCache (3925) [3911] - D3DDevice_SetVertexData4ub (3925) [3911] - D3DDevice_SetVertexShaderConstant (3925) [3911] - D3DDevice_BeginPushBuffer (3925) [3911] - D3DDevice_EndPushBuffer (3925) [3911] - D3DDevice_SetRenderState_RopZCmpAlwaysRead (3925) [3911] - D3DDevice_SetRenderState_RopZRead (3925) [3911] (*) - D3DDevice_SetRenderState_DoNotCullUncompressed (3925) [3911] (*) - -(*) Not yet verified. Signatures are right, but XRefs probably aren't. - -4/10/10 -- Added a new fix for Halo in EmuFlushIVB(). Use g_IVBFVF when the current FVF is 0. -- Added the following function(s) - D3D::SetFence (XRef) (3925) [3911] - D3DDevice_InsertFence (3925) [3911] - D3DDevice_LoadVertexShaderProgram (3925) [3911] - D3DDevice_RunPushBuffer (3925) [3911] - IDirectSoundBuffer8_Play (3936) [3911] (Fixed) - -- Azurik: Rize of Perathia now goes ingame! - -4/11/10 -- Fixed a minor bug with the deferred texture state (D3DTSS_MAGFILTER) for XDK 3911. -- Fixed a major bug in the push buffer execution code. The stride was not incremented - for the D3DFVF_XYZ flag. Using the position mask to find position related FVFs. -- Robotech: Battlecry is now playable! - -4/13/10 -- Added the following function(s) - Direct3D_EnumAdapterModes (5233-5344) - D3DDevice_SetVerticalBlankCallback (5455) - D3DDevice_GetProjection - -4/21/10 -- Added the following function(s) - D3DDevice_GetModelView (5558) - D3DDevice_SetBackMaterial (5558) - D3DDevice_SetRenderState_TwoSidedLighting (5558) - -4/26/10 -- Added the following function(s) - D3DDevice_SetTransform (4034) (removed 3925 signature causing false positives). - D3DDevice_CreatePixelShader (4034, 4039) - D3DDevice_GetVertexShaderSize (4034, 4039) - -4/27/10 -- Added the following function(s) - D3DDevice_SetRenderState_CullMode (4034, 4039) - D3DSurface_LockRect (4034) - Lock2DSurface (4034) - D3DDevice_BeginVisibilityTest (4034) - D3DDevice_EndVisibilityTest (4034) - -- Moved the following signature(s) - D3DDevice_DrawVertices (4134 -> 4034) - D3DDevice_DrawIndexedVertices (4134 -> 4034) - D3DDevice_BeginVisibilityTest (4034) - D3DDevice_EndVisibilityTest (4034) - -TODO: Add D3DResource_GetType? - -4/28/10 -- Added the following function(s) - D3DDevice_CopyRects (4034) - D3DDevice_SetStreamSource (4034) - D3DDevice_SetTextureState_BorderColor (4034) - D3DDevice_SetTextureState_ColorKeyColor (4034) - D3DDevice_LoadVertexShader (4034) - D3DDevice_DrawRectPatch (4034) - D3DDevice_SetIndices (4034) - D3DDevice_SetRenderState_EdgeAntiAlias (4034) - D3DDevice_SetRenderState_FillMode (4034) - D3DDevice_SetRenderState_BackFillMode (4034) - D3DDevice_SetRenderState_FogColor (4034) - D3DDevice_SetRenderState_FrontFace (4034) - D3DDevice_SetRenderState_LogicOp (4034) - D3DDevice_SetRenderState_MultiSampleAntiAlias (4034) - D3DDevice_SetRenderState_MultiSampleMask (4034) - D3DDevice_SetRenderState_NormalizeNormals (4034) - D3DDevice_SetRenderState_ShadowFunc (4034) - D3DDevice_SetRenderState_Simple (4034) - D3DDevice_SetRenderState_StencilEnable (4034) - D3DDevice_SetRenderState_StencilFail (4034) - D3DDevice_SetRenderState_YuvEnable (4034) - D3DDevice_SetRenderState_VertexBlend (4034) - D3DDevice_Swap (4034) - Direct3D_CheckDeviceFormat (4034) - Direct3D_SetPushBufferSize (4034) - Get2DSurfaceDesc (4034) - D3DTexture_GetSurfaceLevel (4034) - D3DDevice_SetRenderState_ZEnable (4034) - D3DDevice_LightEnable (4034) - D3DDevice_ (4034) - XInputSetState (4034) - RtlCreateHeap (4034) - RtlReallocateHeap (4034) - RtlFreeHeap (4034) - RtlReAllocateHeap (4034) - RtlSizeHeap (4034) - XRegisterThreadNotifyRoutine (4034) - XGetDeviceChanges (4034) - XID_fCloseDevice (4034) - XInputClose (4034) - XInputGetCapabilities (4034) - GetThreadPriority (4034) - XInputOpen (4034) - XInputGetState (4034) - -- Some of the above signatures need to be fixed. -- Also, many of these signatures above will work with 4039 as well. - -4/29/10 -- Added the following function(s) - D3D::CDevice::KickOff (4134) - D3D::SetFence (4134) - D3DDevice_BlockOnFence (4134 - 4361) - D3DDevice_GetRenderTarget (4134 - 4361) - D3DDevice_Release (4134) - D3DDevice_GetDisplayMode (4134) - -- Added the following texture format(s) - D3DFMT_LIN_D16 (Use D3DFMT_R5G6B5 instead) - D3DFMT_LIN_G8B8 (Use D3DFMT_R5G6B5 instead) - -6/??/10 -- Panzer goes ingame again. - -7/5/10 -- Added the following function(s) - XLaunchNewImageA (5849) - -7/11/10 -- Added the following function(s) - D3DDevice_BeginStateBlock (5558) - D3DDevice_EndStateBlock (5558) - CDirectSound::EnableHeadphones [3936] (3911) - IDirectSound_EnableHeadphones [3936] (3911) - -- Blasteroids-X shows intro screen (missing an unknown DirectSound API and a bug in RtlLeaveCriticalSection) -- BloodWake shows loading screen. -- Fixed a bug where some textures weren't getting unswizzled before rendering (thanks defiance!) -- Temporarily commented out bad signatures: - CDirectSoundStream::SetAllParameters[AB] (3911) - CDirectSoundStream::SetI3DL2Source[A] (3911) -- Turok broke somehow (NULL surface causing crash). :( - -7/14/10 -- Added the following function(s) - Direct3D_EnumAdapterModes (3911) [3925] - Direct3D_GetAdapterModeCount (3911) [3925] - D3DDevice_Reset (3911) [3925] - Direct3D_GetAdapterIdentifier (3911) [3925] - Direct3D_GetDeviceCaps (3911) [3925] - lstrcmpiW (3911 - 3944) - -7/15/10 -- Added the following function(s) - GetFileAttributesA (4361) (*) - XMountMUA (4361) - CreateWaitableTimerA (4361) - SetWaitableTimer (4361) - -(*) This function should be used instead of it's low level counterpart! - -7/16/10 -- Added the following function(s) - D3DDevice_SetRenderState_FrontFace (5558) - -7/17/10 -- Added the following function(s) - D3DDevice_Clear (5849_LTCG) - D3DDevice_Swap (5849_LTCG) - D3DVertexBuffer_Lock2 (5849_LTCG) - D3DDevice_SetVertexShader (5849_LTCG) - -7/19/10 -- Added the following function(s) - D3DDevice_SetRenderState_FrontFace (5849) - D3DDevice_SetBackMaterial (5849) - D3DDevice_SetRenderState_TwoSidedLighting (5849) - -7/23/10 -- Added the following function(s) - XMountAlternativeTitleA (3911, 4627, 4928) - XUnmountAlternativeTitleA (3911, 4627 - 4928) - -7/24/10 -- Added the following function(s) - D3D::KickOffAndWaitForIdle (5849) - -- Added a seperate check for priviledged instructions - -11/7/10 -- Added the following function(s) - D3DDevice_BeginStateBlock (4627) - D3DDevice_EndStateBlock (4627) - D3DDevice_ApplyStateBlock (4627) - D3DDevice_CaptureStateBlock (4627) - D3DDevice_DeleteStateBlock (4627) - D3DSurface_GetDesc (4034, 4039) - D3D::PixelJar::Get2DSurfaceDesc (4034, 4039) - D3DDevice_Clear (4034) - D3DDevice_SetLight (4034) - D3DVertexBuffer_Lock (4034) - D3DDevice_SetTexture (4034) - D3DDevice_SetPalette (4034) - D3DDevice_SetTextureState_TexCoordIndex (4034) - D3DDevice_SetMaterial (4034) - D3DDevice_SetVertexShader (4034) - D3DDevice_Swap (4034) - D3D::KickOffAndwaitForIdle (4034) - -11/8/10 -- Added the following function(s) - XGSwizzleBox (4034) - XGSwizzleRect (4034) - D3D::PixelJar::Get2DSurfaceDesc (5558) - D3DTexture_LockRect (5558) - D3D::MakeRequestedSpace (5558)(*) - D3DDevice_MakeSpace (5558)(*) - CDirectSoundVoice::SetI3DL2Source (5558) - CDirectSoundBuffer::SetI3DL2Source (5558) - IDirectSoundBuffer8_SetI3DL2Source (5558) - CDirectSoundVoice::SetAllParameters (5558) - CDirectSoundBuffer::SetAllParameters (5558) - IDirectSoundBuffer8_SetAllParameters (5558) - XGetSectionHandleA (5558) - XLoadSectionByHandleA (5558) - XFreeSectionByHandleA (5558) - CDirectSoundVoice::SetHeadroom (5558) - CDirectSoundBuffer::SetHeadroom (5558) - IDirectSoundBuffer8_SetHeadroom (5558) - CDirectSoundStream::SetHeadroom (5558)(**) - CDirectSoundBuffer::GetCurrentPosition (5558) - IDirectSoundBuffer_GetCurrentPosition (5558) - CDirectSoundStream::SetFormat (5558) - CDirectSoundStream::SetMixBins (5558) - D3DDevice_SetRenderTarget (5558) - D3DDevice_SetPixelShaderConstant (5558) - Lock2DSurface (5558) - D3DDevice_SetFlickerFilter (5455) - CDirectSound::EnableHeadphones (5455, 5558) - IDirectSound8_EnableHeadphones (5455, 5558) - SetThreadPriority (5455, 5558) - D3DDevice_BlockUntilVerticalBlank (5455) - GetThreadPriority (5455, 5558) - GetTimeZoneInformation (5455, 5558) - SetThreadPriorityBoost (5455, 5558) - D3DDevice_SetScissors (5455) - D3DDevice_SetScreenSpaceOffset (5455, 5558) - D3DDevice_InsertCallback (5455, 5558) - D3DDevice_SetRenderState_LineWidth (5455) - D3DDevice_FlushVertexCache (5455, 5558) - D3DDevice_SetRenderState_LogicOp (5455, 5558) - -- Added the following file(s) - XG.1.0.4034.cpp/h - -- Fixed the 5558 signature for D3DDevice_SetVertexShaderConstant1 - -- Added cube texture support in EmuIDirect3DDevice8_CreateTexture2 - -- Metal Arms (XDK 5558) is starting to work! - -(*) These functions are not to be emulated, just used to find functions -that call them... making my life easer! - -(**) I only added the signature, not the actual function that goes with -it. I'll do that later because I'm just adding the stuff that Metal Arms -needs to work for now. - -11/9/10 -- Added the following function(s) - D3DDevice_LightEnable (5455) - D3DDevice_SetModelView (5455, 5558) - D3DDevice_SetIndices (5455) - IDirectSound_AddRef (5233) - D3DDevice_SetVertexData4ub (4531-5344) - D3DDevice_SetVertexData2f (5233, 5344) - D3DDevice_SetVertexData4f (5233, 5344) - D3DDevice_SetViewport (5344) - D3DDevice_SetTransform (5344) - D3DDevice_GetBackBuffer2B (5558)(*) - D3DDevice_PersistDisplay (5558) - -- An implementation of D3DDevice_SetModelView is still needed! - -- Fixed a bug in HLEIntercept.cpp; XapiInitProcess sig for XDK 5344 was not -being referenced (was using 5233's sig instead). - -- Tetris Worlds (5233) shows intro screens and XIII (5558) shows dirty disc -error (because I didn't hava a full dump). - -(*) Nothing special, but the signature is just different by one byte -in XIII, so I created two different sigs so Metal Arms doesn't break! - -11/11/10 -- Added the following function(s) - D3DDevice_Release (4361) - D3D::CreateStandAloneSurface (4034)(*) - D3DDevice_GetBackBuffer (4034) - D3D::SetTileNoWait (5849) - D3DDevice_SetGammaRamp (5849) - CDirectSoundVoiceSettings::SetMixBins (5849) - CDirectSoundVoice::SetMixBins (5849) - CDirectSoundBuffer::SetMixBins (5849) - IDirectSoundBuffer_SetMixBins (5849) - CDirectSoundStream_SetMixBins (5849) - CDirectSound::SetMixBinVolumes (5849) - IDirectSound_SetMixBinVolumes (5849) - XnInit (5849) - XNetStartup (5849) - WSAStartup (5849) - XNetGetEthernetLinkStatus (5849) - XInputSetState (5849) - CDirectSound::SetPosition (5849) - IDirectSound_SetPosition (5849) - -(*) D3DDevice_CreateImageSurface is just a simple call to this function. -It's the same, so treat it as such. Add it whenever possible because -Cxbx won't crash when it's not intercepted! I added this and Simpsons -RoadRage started to work! - -11/13/10 -- Added the following function(s) - CDirectSound::setVelocity (5849) - IDirectSound_SetVelocity (5849) - CDirectSound::CommitDeferredSettings (5849) - D3DDevice_GetRenderTarget2 (5849) - -12/13/10 -- Added the following function(s) - D3D::BlockOnTime (3911) [3925] - D3D::BlockOnResource (3911) [3925] - -- Fixed a bug in NtAllocateVirtualMemory. The Xbox exclusive flag MEM_NOZERO -holds the same value as MEM_ROTATE, causing an error to be returned (0xC00000F3) -that occurs in XP, but not Vista. - -- Azurik now goes ingame on XP (due to the above fix)! Man, I love this game so -much... *tear* - -12/26/10 -- Added the following function(s) - D3DDevice_CreateCubeTexture (4361) - D3DCubeTexture_GetCubeMapSurface (4361) - -1/13/11 -- Added the following function(s) - XInputGetCapabilities (4928, for Defender) - CDirectSound::SetAllParameters (4928) - CDirectSoundVoice::SetRollOffCurve (4627-4928) - CDirectSoundBuffer::SetRollOffCurve (4627-4928) - CDirectSoundStream::SetRollOffCurve (4627-4928) - IDirectSoundBuffer_SetRollOffCurve (4627-4928) - D3D::BlockOnTime (4627-4928) - D3DDevice_BlockOnFence (4627-4928) - -1/28/11 -- Added the following texture format(s) - D3DFMT_LIN_A8 - -- Added the following function(s) - D3D::PixelJar::Lock3DSurface (4627-4831)(*) - D3D::PixelJar::Lock2DSurface (4242-5120)(*) - D3DDevice_CreateImageSurface (4627-4831) - D3DCubeTexture8_GetCubeMapSurface2 (4627-4831) - XFileCreateMediaObjectEx (4627-4831) - -- Fixed a bug in EmuIDirect3DDevice8_SetTextureStageState_TextureCoordIndex - -- Whacked goes ingame, only on Debug mode so far. Retail crashes. Single - player campaign crashes also :( - -- Quantum Redshift reaches menus. Missing blending required option. - -(*) These should have been added a long time ago. With all due respect, I -find it a bit amusing that D3DDevice_CopyRects was implemented and -D3DDevice_CreateImageSurface wasn't O_o - -TODO: Verify that Lock3DSurface is the same on other XDKs like Lock2DSurface - -1/29/11 -- Added the following function(s): - XWaveFileCreateMediaObject (4627-4831) - CDirectSoundBuffer::SetEG (4627-4721) - IDirectSoundBuffer_SetEG (4627-4721) - D3DDevice_SetSoftDisplayFilter (4627-4928) - XGetFileCacheSize (4627-4928) - CDirectSoundStream_SetHeadRoom (4627-4928) - D3DDevice_SetPixelShader (4627-4928) - D3DDevice_CreatePalette2 (4627) - D3DPalette_Lock2 (4627) - -- Added a dirty hack for a missing blend state D3DBLEND_CONSTANTCOLOR - This is not supported by standard Direct3D, but is supported on OpenGL. - -- Quantum Redshift; controller input not yet working, but updated to ingame - status because ingame graphics do work when demos are played and loads - levels without problems, but complete loading fails due to a failed texture - creation attempt (512x512xDXT1 8 mip levels). Controller won't respond. - -2/3/11 -- Added the following function(s) - XMountMUA (5558) - Probably more I forgot. - -2/4/11 -- Added the following function(s) - D3DDevice::SetRenderState_StencilFail (5849) - D3DDevice::SetRenderState_VertexBlend (5849) - D3DDevice::SetRenderState_MultiSampleMask (5849) - D3DDevice::SetPalette (5849) - D3DDevice::LoadVertexShaderProgram (5849) - DirectSoundCreateBuffer (5849) - XGetDeviceEnumerationStatus (5849) - D3DDevice::GetPushBufferOffset (5849) - D3D::MakeRequestedSpace (5849) (XRef only) - D3D::MakeSpace? (5849) (XRef only) - D3DDevice_SetVertexShaderConstantNotInline (5849) - D3DDevice_FlushVertexCache (5849) - D3DDevice_BeginPushBuffer (4627) - D3DDevice_EndPushBuffer (4627) - -3/27/11 -- Instead of redirecting DSOUND 4134 -> 4627, Write a totally new DSOUND .inl - file for it. See? I'm working on JSRF... -- Added the following function(s) - IDirectSound8_CreateSoundBuffer (4134) - CDirectSoundVoice::SetHeadroom (4134) - CDirectSoundBuffer::SetHeadroom (4134) - IDirectSoundBuffer_SetHeadroom (4134) - IDirectSoundBuffer_Lock (4134) - CDirectSoundVoice::SetVolume (4134) - CDirectSoundBuffer::SetVolume (4134) - IDirectSoundBuffer_SetVolume (4134) - CDirectSound::SetI3DL2Listener (4134) - IDirectSound_SetI3DL2Listener (4134) - CDirectSound::GetBufferData (4134) - IDirectSound_GetBufferData (4134) - timeSetEvent (4134) - timeKillEvent (4134) - CDirectSoundVoiceSettings::SetMixBins (4134) - CDirectSoundVoice::SetMixBins (4134) - CDirectSoundBuffer::SetMixBins (4134) - IDirectSoundBuffer_SetMixBins (4134) - -4/6/11 -- Added the following function(s) - XGSetTextureHeader (3911) - -4/16/11 -- Added the following function(s) - D3DDevice_SetShaderConstantMode (4134) - -4/17/11 -- Added the following function(s) - D3DDevice_GetVertexShaderSize (5849) - D3DDevice_LoadVertexShader (5849) - D3DDevice_SelectVertexShader (5849) - CMcpxBuffer::SetCurrentPosition (5849) - CDirectSoundBuffer::SetCurrentPosition (5849) - IDirectSoundBuffer_SetCurrentPosition (5849) - -5/9/11 -- Added the following function(s) - CDirectSound::SetDistanceFactor (4531) - CDirectSound::SetDopplerFactor (4531) - CDirectSoundBuffer::SetLoopRegion (5849) - IDirectSoundBuffer_SetLoopRegion (5849) - XFormatUtilityDrive (5849) - D3DDevice_AddRef (5849) - D3D::ClearStateBlockFlags (5849) - D3D::RecordStateBlock (5849) - D3DDevice_BeginStateBlock (5849) - D3DDevice_EndStateBlock (5849) - CMcpxBuffer::Stop (5849) - CDirectSoundBuffer::StopEx (5849) - IDirectSoundBuffer_StopEx (5849) - -5/20/11 -- Added the following function(s) - D3DDevice_SetRenderState_BackFillMode (5849) - D3DDevice_SetRenderState_Dxt1NoiseEnable (5849) - D3DDevice_GetTile (5849) - XapiInitProcess (5028) - -6/15/11 -- Added the following function(s) - XGUnswizzleRect (4627) - -- Added the following source file(s) - XG.1.0.4432.h/inl - -6/25/11 -- Added the following function(s) - XInputGetDeviceDescription (4831) - -- Fixed the signature for XInputCapabilities (4831). This signature is - generally very weak among 4831 and 4928... - -11/2/11 -- Added the following function(s) - XAutoPowerDownResetTimer (3911, 3944) - CDirectSoundBuffer::SetNotificationPositions (3911, 3944) - IDirectSoundBuffer_SetNotificationPositions (3911, 3944) - XLoadSectionHandleA (3911, 3944) - XFreeSectionHandleA (3911, 3944) - XGetSectionHandleA (3911, 3944) - XMountMURootA (3911, 3944) - -- Added the following kernel function(s) - DbgPrint - ExSaveNonVolatileSetting - -- Xbox Dashboard (3944) is working. Not fully functional but working. - -11/3/11 -- Made a few quick fixes to make the Dashboard a little more functional - and a little less buggy/crashy. Now only the system info option will - kill you! - -12/3/11 -- Added proper critical section handling. Xbox critical section structure - is different than the Win32 one. Using revel8n (defiance)'s code. Thanks! - -- Added a dirty fix for XAPILIB.1.0.3950. So far, only the Halo demo uses this. - Should make a proper fix later. - -1/7/12 -- Added the following function(s) - CreateFiber (5558-5849) - DeleteFiber (5558-5849) - SwitchToFiber (3911, 5558-5849) - ChangeThreadToFiber (3911, 5558-5849) - -1/10/12 -- Added the following function(s) - D3DDevice_Swap (5849)(*) - D3D::CDevice::KickOff (D3DDevice::KickPushBuffer) (5849) - D3DDevice_SetRenderState_RopZCmpAlwaysRead (5455-5849) - D3DDevice_SetRenderState_RopZRead (5455-5849) - D3DDevice_SetRenderState_DoNotCullUncompressed (5455-5849) - D3DDevice_SetSoftDisplayFilter (5849) - D3DDevice_SetFlickerFilter (5849) - CDirectSound::SetRollOffFactor (5849) - IDirectSound8_SetRollOffFactor (5849) - CDirectSound::SetDopplerFactor (5849) - IDirectSound8_SetDopplerFactor (5849) - CDirectSoundVoice::SetPitch (5849) - CDirectSoundBuffer::SetPitch (5849) - IDirectSoundBuffer8:SetPitch (5849) - CDirectSoundVoice::SetMaxDistance (5849) - CDirectSoundBuffer::SetMaxDistance (5849) - IDirectSoundBuffer8_SetMaxDistance (5849) - CDirectSoundVoice::SetMinDistance (5849) - CDirectSoundBuffer::SetMinDistance (5849) - IDirectSoundBuffer8_SetMinDistance (5849) - CDirectSoundVoice::SetVolume (5849) - CDirectSoundBuffer::SetVolume (5849) - IDirectSoundBuffer8_SetVolume (5849) - CDirectSoundVoice::SetPosition (5849) - CDirectSoundBuffer::SetPosition (5849) - IDirectSoundBuffer8_SetPosition (5849) - CDirectSoundVoice::SetVelocity (5849) - CDirectSoundBuffer::SetVelocity (5849) - IDirectSoundBuffer8_SetVelocity (5849) - CMcpxBuffer::Play (5849)(**) - CDirectSoundBuffer::PlayEx (5849) - IDirectSoundBuffer8_PlayEx (5849) - D3DDevice_SetRenderState_MultiSampleMode (5849) - D3DDevice_SetRenderState_MultiSampleRenderTargetMode (5849) - D3DDevice_SetRenderState_MultiSampleAntiAlias (5849) - D3DDevice_SetRenderState_MultiSampleMask (5849) - RtlDestroyHeap (4242-4531, 4721-5849) - CDirectSound::CreateSoundStream (5849) - DirectSoundCreateStream (5849) - CDirectSoundStream::SetMixBinVolumes (5849) - CMcpxStream::Pause (5849) - CDirectSoundStream::Pause (5849) - CDirectSoundStream::FlushEx (5849) - IDirectSoundStream_FlushEx (5849) - DirectSoundDoWork (5849) - D3DDevice_GeDisplayFieldStatus (5849) - CDirectSound::SynchPlayback (5849) - IDirectSound8_SynchPlayback (5849) - -- Fixed a tiny bug in the vertex shader reassembler code (needed a bigger buffer - for Castlevania). - -(*) Needed an alternative signature for this one. -(**) Needed a new signature. - -1/14/12 -- Added the following function(s) - D3DDevice_SetVertexShaderConstant1Fast (5558) - D3DDevice_LoadVertexShaderProgram (5558) - D3DDevice_SetPixelShaderProgram (5558) - XID_fCloseDevice (5558) - XInputClose (5558) - CDirectSound::SetPosition (5558) - IDirectSound8_SetPosition (5558) - CDirectSound::SetVelocity (5558) - IDirectSound8_SetPosition (5558) - CDirectSound::CreateStream (5558) - IDirectSound8_CreateStream (5558) - CDirectSoundStream::SetRolloffCurve (5558) - CDirectSoundStream::SetMinDistance (5558) - CDirectSoundStream::SetHeadroom (5558) - CDirectSoundStream::SetFrequency (5558) - -2/29/12 -- Added the following function(s) - D3DDevice_SetRenderState_BackFillMode (5344-5558) - D3DDevice_SetRenderState_TextureFactor (5344-5558) - D3DDevice_SetRenderState_MultiSampleMask (5344-5558) - D3DDevice_SetRenderState_MultiSampleMode (5455, 5558) - D3DDevice_SetRenderState_MultiSampleRenderTargetMode (5455, 5558) - D3DDevice_SetRenderState_Dxt1NoiseEnable (5455, 5558) - D3DDevice_SetRenderState_StencilCullEnable (5344-5558) - D3DDevice_SetTextureState_ColorKeyColor (5344-5558) - -9/24/12 -- Added the following function(s) - D3DDevice_GetBackBuffer2 (5344) - D3DDevice_SetVerticalBlankCallback (5344) - D3DDevice_SetSwapCallback (5344) - D3DDevice_GetViewport (5344) - CDirectSoundVoice::SetMaxDistance (5344) - CDirectSoundBuffer::SetMaxDistance (5344) - IDirectSoundBuffer_SetMaxDistance (5344) - CDirectSoundVoice::SetMinDistance (5344) - CDirectSoundBuffer::SetMinDistance (5344) - IDirectSoundBuffer_SetMinDistance (5344) - CDirectSound::SetI3DL2Listener (5344) - IDirectSound_SetI3DL2Listener (5344) - CDirectSound::SetRolloffFactor (5344) - IDirectSound_SetRolloffFactor (5344) - CDirectSound::SetDistanceFactor (5344) - IDirectSound_SetDistanceFactor (5344) - CDirectSound::SetDopplerFactor (5344) - IDirectSound_SetDopplerFactor (5344) - D3DDevice_SetRenderTargetFast (5344) - D3DDevice_SetScreenSpaceOffset (5344) - D3DDevice_SetScissors (5344) - D3DDevice_SetMaterial (5344) - D3DCubeTexture_GetCubeMapSurface2 (5344, 5849) - D3DDevice_SetVertexShaderConstant1Fast (5788, 5849) - -9/27/12 -- Added the following function(s) - XAudioDownloadEffectsImage (5849) - IDirectSound_SetEffectData (5849) (No X-Refs!) - D3DDevice_SetScissors (5849) - D3DDevice_GetScissors (5849) - D3DDevice_GetBackMaterial (5849) - D3DDevice_CaptureStateBlock (5849) - D3DDevice_ApplyStateBlock (5849) - D3DDevice_SetRenderState_StencilCullEnable (5849) - D3DDevice_SetRenderState_OcclusionCullEnable (5849) - XFileMediaObject_Seek (XDK Independent) - CDirectSoundStream::SetFormat (5849) - CDirectSoundStream::SetPitch (5849) - CDirectSoundStream::SetHeadroom (5849) - XFileMediaObject_AddRef (XDK Independent) - XFileMediaObject_Release (XDK Independent) - XFileMediaObject_GetInfo (XDK Independent) - XFileMediaObject_GetStatus (XDK Independent) - XFileMediaObject_Process (XDK Independent) - XFileMediaObject_DoWork (XDK Independent) - XFileMediaObject_Discontinuity (XDK Independent) - CDirectSoundBuffer::Play (5849) - IDirectSoundBuffer_Play (5849) - D3DDevice_GetTexture2 (5849) - -- Fixed a bug in EmuIDirect3DResource8_Register to prevent crashing. -- Outrun2 is starting to work! - -9/28/12 -- Added the following function(s) - D3DDevice_SetRenderTargetFast (5455 - 5849) - -- Fixed a [stupid] error in D3DDevice_GetTexture2. It was my fault, so -I have no one to blame but myself this time. This should (hopefully) -fix Panzer Dragoon ORTA's issue with Pandora's Box. \ No newline at end of file diff --git a/doc/ShogunRemovedCode.txt b/doc/ShogunRemovedCode.txt deleted file mode 100644 index 5e2bd2ad7..000000000 --- a/doc/ShogunRemovedCode.txt +++ /dev/null @@ -1,29 +0,0 @@ -// TODO: Confirm... -SOOVPA<11> CMcpxBuffer_GetStatus_1_0_4721 = -{ - 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 al, 0x4 - { 0x12, 0xA8 }, // (Offset,Value)-Pair #5 - { 0x13, 0x04 }, // (Offset,Value)-Pair #6 - - // CMcpxBuffer_GetStatus+0x27 : mov ecx, 0x8001 - { 0x27, 0xB9 }, // (Offset,Value)-Pair #7 - { 0x28, 0x01 }, // (Offset,Value)-Pair #8 - { 0x29, 0x80 }, // (Offset,Value)-Pair #9 - { 0x2A, 0x00 }, // (Offset,Value)-Pair #10 - } -}; \ No newline at end of file diff --git a/doc/ShogunTodo.txt b/doc/ShogunTodo.txt deleted file mode 100644 index 64538140e..000000000 --- a/doc/ShogunTodo.txt +++ /dev/null @@ -1,33 +0,0 @@ -blueshogun's Todo list: - - -Emulation: - - Continue sorting things out between XDKs 4432 and 4627 for 4531. Some things from 4627 - should be moved to 4531 anyway. - - Check for similarities in XGRAPHIC library for 4361, 4432 and 4627. - - Continue adding support for the Xbox ADPCM codec. Numerous open source projects support - it, so I guess it shouldn't be too hard. - - Finish adding basic XACT support. - - Ensure the Cxbx has some basic support for every XDK. We're close, but 5028, 5120, 5455 - and 5788 need further investigation. - - The Xbox's version of the .xsb format needs to be reversed for XACT. - - Cache xbe section addresses and names for XLoad/FreeSection[ByHandle] - - Basic network capabilities? - - Some vertex shaders have their constant register usage modified by Cxbx (to balance out - the fact that Xbox vertex shaders can use constant values -96 to 96. Adding 96 in - SetVertexShaderConstant fixes some samples and Petit Copter, but breaks Turok. - - Indexed geometry rendered with D3DPT_QUADLIST is badly broken (Panzer and Robotech: Battlecry). - -More: - - For completion's sake, we're going to have to use Direct3D 9 or OpenGL (OpenGL is better for - emulating Xbox, trust me) to emulate all of the missing functionality of Direct3D 8. OpenGL is - also closer to NVIDIA's hardware. - - An option to disable sound processing. Quantum Redshift may need this... - -Game Specific: - - Azurik: Rize of Perathia (possibly the hardest Xbox game to emulate) has some unusual situations - going on (heap corruption, empty shaders, etc.). We need better solutions for such scenarios. - - DOA3 is getting close... - - Fusion Frenzy: There are some bugs in the D3DFMT_P8 -> D3DFMT_A8R8G8B8 conversion code. - - Keep working on Run Like Hell, you might be surprised! - - Find out what's causing the stack corruption with Petit Copter. \ No newline at end of file diff --git a/doc/Thanks.txt b/doc/Thanks.txt deleted file mode 100644 index eba4013e1..000000000 --- a/doc/Thanks.txt +++ /dev/null @@ -1 +0,0 @@ -Special thanks to the authors of UPX file compressor (http://upx.sourceforge.net/). \ No newline at end of file diff --git a/doc/Todo.txt b/doc/Todo.txt deleted file mode 100644 index 9297283f2..000000000 --- a/doc/Todo.txt +++ /dev/null @@ -1,87 +0,0 @@ -Cxbx Todo (* denotes high priority, + denotes medium priority) - -HLE : - - * SetThreadPriority is basically ignored right now - - * NSIS installer. Option to clear UDATA/TDATA/CxbxCache - - * Modularize inline vertex buffers (Begin()/End()) - - * Direct3D_SetPushBufferSize for Antz Extreme Racing (4361). Do this - when Xiggen is stabilized! For now, safe to ignore it. Also, this - function is located @ 0x184CC0 in halo. - - * Create library of working demos/games/emulators (various XDK versions) - - * Add Pause hotkey - - * Add FPS counter - -ETC : - - * Use SetAllParameters to reverse engineer 3911 DSound functions - - * Stella has a memory leak in the game's list screen.. - - * DirectSoundUseFullHRTF -> 0x192D8C (Halo)..too small to detect? - - * Palette needs to actually be used, not just allowed to execute. - - * Check if 4361 Resource8_Release is the same as 4627 & 3925 (3911) - - * Configurable dead zone, for touchy controllers - - * Push Buffer Size is stored in a global. This may be important (hard to tell) - - * Perhaps for global variable detection, have some sort of array of - function + offset pairs to check. That way if an Xbe happens to not - use a particular function (wont get linked in), there are other chances - to locate the variable. In the even that none are found, the global ptr - should be set to NULL, and any references to it should not assume it - will not be NULL. - - * Special temporarily X_D3DResource handles need to be kept track of and - periodically garbage collected. Garbage collection frequency can be a - core configuration option. - - * Register() probably needn't re-unswizzle each time. cache a copy of - the address it was registered to (or a global table) and simply update - the data pointer to that IDirect3DTexture8 instance. - - * Support cards that just plain dont have 32 bit color? - - * The notorious Heap Allocation crash still needs to be solved on a low - level. It is strongly preferable to debug this instead of having to - intercept the entire Rtl heap set of functions. - - * Stabilize TLS (it's close...) - - + Closing a console should not terminate the entire process. - - + Perfect the timing on KeTickCount. This can be updated along with the - Xbox-Never-Sleeps, which would give much higher precision than the - current seperate-thread method. - - + Some sort of delete-after-emulation type of functionality? - - + Use SetDataFormat instead of parsing device input by hand? - - + Batch config all buttons (should be very easy..just click one by one) - - + Configuration screens may not necessarily need to be modal windows. - - + Xbe file associations via user configuration. This could include an - option to either automatically execute the Xbe, or simply open it up - in Cxbx's main window. For this purpose, Cxbx.dll should also be - registered in the system so that a converted Exe can run from anywhere. - - Converted Exe files should use the Cxbx icon - - When loading a file, menus and WM_CLOSE should be disabled and an update - progress should be sent via callback from core. - - Encapsulate RecentFiles into a nice little class - - Allow a logo bitmap to be added if one does not exist. This may require that - the size of headers be increased. (sizeof_headers). diff --git a/doc/compatList.txt b/doc/compatList.txt deleted file mode 100644 index 4deaff769..000000000 --- a/doc/compatList.txt +++ /dev/null @@ -1,3 +0,0 @@ -Go to my blog to keep up with my latest updates. - -http://shogun3d-cxbx.blogspot.com/ \ No newline at end of file diff --git a/doc/doxygen/Cxbx.Doxyfile b/doc/doxygen/Cxbx.Doxyfile deleted file mode 100644 index ef0f6b3ea..000000000 --- a/doc/doxygen/Cxbx.Doxyfile +++ /dev/null @@ -1,1719 +0,0 @@ -# Doxyfile 1.7.3 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project -# -# All text after a hash (#) is considered a comment and will be ignored -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" ") - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# http://www.gnu.org/software/libiconv for the list of possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded -# by quotes) that should identify the project. - -PROJECT_NAME = "Cxbx" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer -# a quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "Xbox1 emulator" - -# With the PROJECT_LOGO tag one can specify an logo or icon that is -# included in the documentation. The maximum height of the logo should not -# exceed 55 pixels and the maximum width should not exceed 200 pixels. -# Doxygen will copy the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, -# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English -# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, -# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, -# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful if your file system -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified -# scopes will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for -# Fortran. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for -# VHDL. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given extension. -# Doxygen has a built-in mapping, but you can override or extend it using this -# tag. The format is ext=language, where ext is a file extension, and language -# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, -# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions -# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also makes the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate getter -# and setter methods for a property. Setting this option to YES (the default) -# will make doxygen replace the get and set methods by a property in the -# documentation. This will only work if the methods are indeed getting or -# setting a simple type. If this is not the case, or you want to show the -# methods anyway, you should set this option to NO. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. - -TYPEDEF_HIDES_STRUCT = NO - -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to -# determine which symbols to keep in memory and which to flush to disk. -# When the cache is full, less often used symbols will be written to disk. -# For small to medium size projects (<1000 input files) the default value is -# probably good enough. For larger projects a too small cache size can cause -# doxygen to be busy swapping symbols to and from disk most of the time -# causing a significant performance penalty. -# If the system has enough physical memory increasing the cache will improve the -# performance by keeping more symbols in memory. Note that the value works on -# a logarithmic scale so increasing the size by one will roughly double the -# memory usage. The cache size is given by this formula: -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols - -SYMBOL_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default -# anonymous namespaces are hidden. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen -# will list include files with double quotes in the documentation -# rather than with sharp brackets. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen -# will sort the (brief and detailed) documentation of class members so that -# constructors and destructors are listed first. If set to NO (the default) -# the constructors will appear in the respective orders defined by -# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. -# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO -# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) -# the group names will appear in their defined order. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to -# do proper type resolution of all parameters of a function it will reject a -# match between the prototype and the implementation of a member function even -# if there is only one candidate or it is obvious which candidate to choose -# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen -# will still accept a match between prototype and implementation in such cases. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or macro consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and macros in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. -# This will remove the Files entry from the Quick Index and from the -# Folder Tree View (if specified). The default is YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. This will remove the Namespaces entry from the Quick Index -# and from the Folder Tree View (if specified). The default is YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. The create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. -# You can optionally specify a file name after the option, if omitted -# DoxygenLayout.xml will be used as the name of the layout file. - -LAYOUT_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# The WARN_NO_PARAMDOC option can be enabled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = ../../Src - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for -# the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh -# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py -# *.f90 *.f *.for *.vhd *.vhdl - -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.d \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.idl \ - *.odl \ - *.cs \ - *.php \ - *.php3 \ - *.inc \ - *.m \ - *.mm \ - *.dox \ - *.py \ - *.f90 \ - *.f \ - *.for \ - *.vhd \ - *.vhdl - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = */.svn/* - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty or if -# non of the patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) -# and it is also possible to disable source filtering for a specific pattern -# using *.ext= (so without naming a filter). This option only has effect when -# FILTER_SOURCE_FILES is enabled. - -FILTER_SOURCE_PATTERNS = - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. Otherwise they will link to the documentation. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = YES - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# stylesheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. -# Doxygen will adjust the colors in the stylesheet and background images -# according to this color. Hue is specified as an angle on a colorwheel, -# see http://en.wikipedia.org/wiki/Hue for more information. -# For instance the value 0 represents red, 60 is yellow, 120 is green, -# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. -# The allowed range is 0 to 359. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of -# the colors in the HTML output. For a value of 0 the output will use -# grayscales only. A value of 255 will produce the most vivid colors. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to -# the luminance component of the colors in the HTML output. Values below -# 100 gradually make the output lighter, whereas values above 100 make -# the output darker. The value divided by 100 is the actual gamma applied, -# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, -# and 100 does not change the gamma. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting -# this to NO can help when comparing the output of multiple runs. - -HTML_TIMESTAMP = YES - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). - -HTML_DYNAMIC_SECTIONS = NO - -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. - -GENERATE_DOCSET = NO - -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. - -CHM_INDEX_ENCODING = - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated -# that can be used as input for Qt's qhelpgenerator to generate a -# Qt Compressed Help (.qch) of the generated HTML documentation. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders - -QHP_VIRTUAL_FOLDER = doc - -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to -# add. For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see -# -# Qt Help Project / Custom Filters. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's -# filter section matches. -# -# Qt Help Project / Filter Attributes. - -QHP_SECT_FILTER_ATTRS = - -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files -# will be generated, which together with the HTML files, form an Eclipse help -# plugin. To install this plugin and make it available under the help contents -# menu in Eclipse, the contents of the directory containing the HTML and XML -# files needs to be copied into the plugins directory of eclipse. The name of -# the directory within the plugins directory should be the same as -# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before -# the help appears. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have -# this name. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at -# top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. - -DISABLE_INDEX = NO - -# This tag can be used to set the number of enum values (range [0,1..20]) -# that doxygen will group on one line in the generated HTML documentation. -# Note that a value of 0 will completely suppress the enum values from -# appearing in the overview section. - -ENUM_VALUES_PER_LINE = 4 - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to YES, a side panel will be generated -# containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). -# Windows users are probably better off using the HTML help feature. - -GENERATE_TREEVIEW = YES - -# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, -# and Class Hierarchy pages using a tree view instead of an ordered list. - -USE_INLINE_TREES = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open -# links to external symbols imported via tag files in a separate window. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of Latex formulas included -# as images in the HTML documentation. The default is 10. Note that -# when you change the font size after a successful doxygen run you need -# to manually remove any form_*.png images from the HTML output directory -# to force them to be regenerated. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are -# not supported properly for IE 6.0, but are supported on all modern browsers. -# Note that when changing this option you need to delete any form_*.png files -# in the HTML output before the changes have effect. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax -# (see http://www.mathjax.org) which uses client side Javascript for the -# rendering instead of using prerendered bitmaps. Use this if you do not -# have LaTeX installed or if you want to formulas look prettier in the HTML -# output. When enabled you also need to install MathJax separately and -# configure the path to it using the MATHJAX_RELPATH option. - -USE_MATHJAX = NO - -# When MathJax is enabled you need to specify the location relative to the -# HTML output directory using the MATHJAX_RELPATH option. The destination -# directory should contain the MathJax.js script. For instance, if the mathjax -# directory is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the -# mathjax.org site, so you can quickly see the result without installing -# MathJax, but it is strongly recommended to install a local copy of MathJax -# before deployment. - -MATHJAX_RELPATH = http://www.mathjax.org/mathjax - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box -# for the HTML output. The underlying search engine uses javascript -# and DHTML and should work on any modern browser. Note that when using -# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets -# (GENERATE_DOCSET) there is already a search function so this one should -# typically be disabled. For large projects the javascript based search engine -# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. - -SEARCHENGINE = YES - -# When the SERVER_BASED_SEARCH tag is enabled the search engine will be -# implemented using a PHP enabled web server instead of at the web client -# using Javascript. Doxygen will generate the search PHP script and index -# file to put on the web server. The advantage of the server -# based approach is that it scales better to large projects and allows -# full text search. The disadvantages are that it is more difficult to setup -# and does not have live searching capabilities. - -SERVER_BASED_SEARCH = NO - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = NO - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. -# Note that when enabling USE_PDFLATEX this option is only used for -# generating bitmaps for formulas in the HTML output, but not in the -# Makefile that is written to the output directory. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = YES - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4 - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = YES - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = YES - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -# If LATEX_SOURCE_CODE is set to YES then doxygen will include -# source code with syntax highlighting in the LaTeX output. -# Note that which sources are shown also depends on other settings -# such as SOURCE_BROWSER. - -LATEX_SOURCE_CODE = NO - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load stylesheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. This is useful -# if you want to understand what is going on. On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = NO - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# in the INCLUDE_PATH (see below) will be search if a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition that -# overrules the definition found in the source code. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all references to function-like macros -# that are alone on a line, have an all uppercase name, and do not end with a -# semicolon, because these will confuse the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option also works with HAVE_DOT disabled, but it is recommended to -# install and use dot, since it yields more powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = NO - -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is -# allowed to run in parallel. When set to 0 (the default) doxygen will -# base this on the number of processors available in the system. You can set it -# explicitly to a value larger than 0 to get control over the balance -# between CPU load and processing speed. - -DOT_NUM_THREADS = 0 - -# By default doxygen will write a font called Helvetica to the output -# directory and reference it in all dot files that doxygen generates. -# When you want a differently looking font you can specify the font name -# using DOT_FONTNAME. You need to make sure dot is able to find the font, -# which can be done by putting it in a standard location or by setting the -# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory -# containing the font. - -DOT_FONTNAME = Helvetica - -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. -# The default size is 10pt. - -DOT_FONTSIZE = 10 - -# By default doxygen will tell dot to use the output directory to look for the -# FreeSans.ttf font (which doxygen will put there itself). If you specify a -# different font using DOT_FONTNAME you can set the path where dot -# can find it using this tag. - -DOT_FONTPATH = - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# the CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT options are set to YES then -# doxygen will generate a call dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable call graphs -# for selected functions only using the \callgraph command. - -CALL_GRAPH = NO - -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then -# doxygen will generate a caller dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable caller -# graphs for selected functions only using the \callergraph command. - -CALLER_GRAPH = NO - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will generate a graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are png, svg, gif or svg. -# If left blank png will be used. - -DOT_IMAGE_FORMAT = png - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MSCFILE_DIRS tag can be used to specify one or more directories that -# contain msc files that are included in the documentation (see the -# \mscfile command). - -MSCFILE_DIRS = - -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the -# number of direct children of the root node in a graph is already larger than -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. - -DOT_GRAPH_MAX_NODES = 50 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not -# seem to support this out of the box. Warning: Depending on the platform used, -# enabling this option may lead to badly anti-aliased labels on the edges of -# a graph (i.e. they become hard to read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES diff --git a/doc/old_dsound.txt b/doc/old_dsound.txt deleted file mode 100644 index 1f4f693aa..000000000 --- a/doc/old_dsound.txt +++ /dev/null @@ -1,3415 +0,0 @@ -// ****************************************************************** -// * -// * .,-::::: .,:: .::::::::. .,:: .: -// * ,;;;'````' `;;;, .,;; ;;;'';;' `;;;, .,;; -// * [[[ '[[,,[[' [[[__[[\. '[[,,[[' -// * $$$ 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 - - -1, // Xref Not Saved - 0, // Xref Not Used - - { - { 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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 - } -}; - -// ****************************************************************** -// * 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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_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 - - -1, // XRef Not Saved - 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 - - -1, // Xref Not Saved - 0, // Xref Not Used - - { - { 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::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 - - -1, // XRef Not Saved - 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_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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef Not Saved - 0, // XRef Not Used - - { - // 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 - 0, // Xref Not Used - - { - { 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 - - -1, // Xref Not Saved - 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 - - -1, // XRef is not saved - 0, // XRef is not used - - { - { 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 - 0, // Xref Not Used - - { - // 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 - - -1, // XRef Not Saved - 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 - - -1, // XRef is not saved - 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 - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer8_AddRef -// ****************************************************************** -SOOVPA<10> IDirectSoundBuffer8_AddRef_1_0_4627 = -{ - 0, // Large == 0 - 10, // Count == 10 - - -1, // XRef Not Saved - 0, // XRef Not Used - - { - // 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 - } -}; - -// ****************************************************************** -// * CMcpxBuffer_GetStatus -// ****************************************************************** -SOOVPA<11> CMcpxBuffer_GetStatus_1_0_4721 = -{ - 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 al, 0x4 - { 0x12, 0xA8 }, // (Offset,Value)-Pair #5 - { 0x13, 0x04 }, // (Offset,Value)-Pair #6 - - // CMcpxBuffer_GetStatus+0x27 : mov ecx, 0x8001 - { 0x27, 0xB9 }, // (Offset,Value)-Pair #7 - { 0x28, 0x01 }, // (Offset,Value)-Pair #8 - { 0x29, 0x80 }, // (Offset,Value)-Pair #9 - { 0x2A, 0x00 }, // (Offset,Value)-Pair #10 - } -}; - -// ****************************************************************** -// * CMcpxBuffer_GetStatus -// ****************************************************************** -SOOVPA<12> CMcpxBuffer_Pause_1_0_4721 = -{ - 0, // Large == 0 - 12, // Count == 12 - - XREF_DirectSound_CMcpxBuffer_Pause, // XRef Is Saved - 0, // XRef Not Used - - { - // CMcpxBuffer_Pause+0x0A : mov esi, ecx - { 0x0A, 0x8B }, // (Offset,Value)-Pair #1 - { 0x0B, 0xF1 }, // (Offset,Value)-Pair #2 - - // CMcpxBuffer_Pause+0x1B : jnz +0x19 - { 0x1B, 0x75 }, // (Offset,Value)-Pair #3 - { 0x1C, 0x19 }, // (Offset,Value)-Pair #4 - - // CMcpxBuffer_Pause+0x1D : cmp dword ptr [ebp+8], 1 - { 0x1D, 0x83 }, // (Offset,Value)-Pair #5 - { 0x1E, 0x7D }, // (Offset,Value)-Pair #6 - { 0x1F, 0x08 }, // (Offset,Value)-Pair #7 - { 0x20, 0x01 }, // (Offset,Value)-Pair #8 - - // CMcpxBuffer_Pause+0x3E : xor eax, eax - { 0x3E, 0x33 }, // (Offset,Value)-Pair #9 - { 0x3F, 0xC0 }, // (Offset,Value)-Pair #10 - - // CMcpxBuffer_Pause+0x42 : retn 4 - { 0x42, 0xC2 }, // (Offset,Value)-Pair #11 - { 0x43, 0x04 }, // (Offset,Value)-Pair #12 - } -}; - -// ****************************************************************** -// * CDirectSoundBuffer_Pause -// ****************************************************************** -SOOVPA<10> CDirectSoundBuffer_Pause_1_0_4721 = -{ - 0, // Large == 0 - 10, // Count == 10 - - XREF_DirectSound_CDirectSoundBuffer_Pause, // XRef Is Saved - 1, // XRef Is Used - - { - // CDirectSoundBuffer_Pause+0x35 : call [CMcpxBuffer::Pause] - { 0x36, XREF_DirectSound_CMcpxBuffer_Pause }, // (Offset,Value)-Pair #1 - - // CDirectSoundBuffer_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 - - // CDirectSoundBuffer_Pause+0x3D : jz +0x0B - { 0x3D, 0x74 }, // (Offset,Value)-Pair #7 - { 0x3E, 0x0B }, // (Offset,Value)-Pair #8 - - // CDirectSoundBuffer_Pause+0x4E : retn 0x08 - { 0x4E, 0xC2 }, // (Offset,Value)-Pair #9 - { 0x4F, 0x08 }, // (Offset,Value)-Pair #10 - } -}; - -// ****************************************************************** -// * IDirectSoundBuffer8_GetStatus -// ****************************************************************** -SOOVPA<9> IDirectSoundBuffer8_Pause_1_0_4721 = -{ - 0, // Large == 0 - 9, // Count == 9 - - -1, // XRef Not Saved - 1, // XRef Is Used - - { - // IDirectSoundBuffer8_Pause+0x15 : call [CDirectSoundBuffer::Pause] - { 0x16, XREF_DirectSound_CDirectSoundBuffer_Pause }, // (Offset,Value)-Pair #1 - - // IDirectSoundBuffer8_Pause+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_Pause+0x0F : sbb ecx, ecx - { 0x0F, 0x1B }, // (Offset,Value)-Pair #6 - { 0x10, 0xC9 }, // (Offset,Value)-Pair #7 - - // IDirectSoundBuffer8_Pause+0x11 : and ecx, eax - { 0x11, 0x23 }, // (Offset,Value)-Pair #8 - { 0x12, 0xC8 }, // (Offset,Value)-Pair #9 - } -}; - -// ****************************************************************** -// * 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_4831, 0, - - #ifdef _DEBUG_TRACE - "CDirectSound_SetAllParametersA_4831 (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 - }, - // 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 4361 *) - { - (OOVPA*)&IDirectSound8_AddRef_1_0_4361, - - 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 - }, - // 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::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_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_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 - }, - // CDirectSound_EnableHeadphones (XREF) - { - (OOVPA*)&CDirectSoundStream_SetHeadroom_1_0_4627, - XTL::EmuIDirectSoundStream_SetHeadroom, - - #ifdef _DEBUG_TRACE - "IDirectSoundStream_SetHeadroom ***" - #endif - }, - // IDirectSoundBuffer_AddRef - // TODO: Same as 3936? - { - (OOVPA*)&IDirectSoundBuffer8_AddRef_1_0_4627, - - XTL::EmuIDirectSoundBuffer_AddRef, - - #ifdef _DEBUG_TRACE - "IDirectSoundBuffer_AddRef" - #endif - }, - // CMcpxBuffer::Pause - { - (OOVPA*)&CMcpxBuffer_Pause_1_0_4721, 0, - - #ifdef _DEBUG_TRACE - "CMcpxBuffer::Pause_4721 (XREF)" - #endif - }, - // CDirectSoundBuffer::Pause - // { - // (OOVPA*)&CDirectSoundBuffer_Pause_1_0_4721, 0, - - // #ifdef _DEBUG_TRACE - // "CDirectSoundBuffer::Pause_4721 (XREF)" - // #endif - // }, - //// IDirectSoundBuffer8_Pause - // { - // (OOVPA*)&IDirectSoundBuffer8_Pause_1_0_4721, - // - // XTL::EmuIDirectSoundBuffer_Pause, - - // #ifdef _DEBUG_TRACE - // "IDirectSoundBuffer8_Pause_4721 (XREF)" - // #endif - // }, -}; - -// ****************************************************************** -// * DSound_1_0_4627_SIZE -// ****************************************************************** -uint32 DSound_1_0_4627_SIZE = sizeof(DSound_1_0_4627);