From b125dd93a13bcc61a2a19cf181fa3074004e8e63 Mon Sep 17 00:00:00 2001 From: blueshogun96 Date: Sat, 3 Sep 2011 10:04:21 +0000 Subject: [PATCH] Some stuff I completely forgot I did a few months ago... --- build/win32/Cxbx.suo | Bin 313344 -> 325632 bytes doc/ShogunChangelog.txt | 9 +- src/CxbxKrnl/EmuDSound.cpp | 19 ++-- src/CxbxKrnl/EmuKrnl.cpp | 33 +++++- src/CxbxKrnl/EmuXactEng.cpp | 2 +- src/CxbxKrnl/EmuXapi.cpp | 35 +++++- src/CxbxKrnl/EmuXapi.h | 10 ++ src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl | 66 ++++++++++++ src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl | 107 +++++++++++++++++++ src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl | 97 +++++++++++++++++ 10 files changed, 364 insertions(+), 14 deletions(-) diff --git a/build/win32/Cxbx.suo b/build/win32/Cxbx.suo index fcb981ee6defa7d752ee5d5962739baaa257d3e2..bf4aca37758567a8019843f61377db6fc5a04947 100644 GIT binary patch delta 21562 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 M57{uoNf7vd08|t<8 delta 26501 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 diff --git a/doc/ShogunChangelog.txt b/doc/ShogunChangelog.txt index d8c6a6361..e9880d5f7 100644 --- a/doc/ShogunChangelog.txt +++ b/doc/ShogunChangelog.txt @@ -1211,4 +1211,11 @@ TODO: Verify that Lock3DSurface is the same on other XDKs like Lock2DSurface XGUnswizzleRect (4627) - Added the following source file(s) - XG.1.0.4432.h/inl \ No newline at end of file + 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... \ No newline at end of file diff --git a/src/CxbxKrnl/EmuDSound.cpp b/src/CxbxKrnl/EmuDSound.cpp index 11374f77d..3b659b093 100644 --- a/src/CxbxKrnl/EmuDSound.cpp +++ b/src/CxbxKrnl/EmuDSound.cpp @@ -1390,19 +1390,24 @@ HRESULT WINAPI XTL::EmuIDirectSoundBuffer8_GetCurrentPosition ");\n", GetCurrentThreadId(), pThis, pdwCurrentPlayCursor, pdwCurrentWriteCursor); + HRESULT hRet = E_FAIL; + HackUpdateSoundBuffers(); HackUpdateSoundStreams(); // NOTE: TODO: This call always seems to fail on primary buffers! - HRESULT hRet = pThis->EmuDirectSoundBuffer8->GetCurrentPosition(pdwCurrentPlayCursor, pdwCurrentWriteCursor); + if( pThis && pThis->EmuDirectSoundBuffer8 ) + { + hRet = pThis->EmuDirectSoundBuffer8->GetCurrentPosition(pdwCurrentPlayCursor, pdwCurrentWriteCursor); - if(FAILED(hRet)) - EmuWarning("GetCurrentPosition Failed!"); + if(FAILED(hRet)) + EmuWarning("GetCurrentPosition Failed!"); - if(pdwCurrentPlayCursor != 0 && pdwCurrentWriteCursor != 0) - { - DbgPrintf("*pdwCurrentPlayCursor := %d, *pdwCurrentWriteCursor := %d\n", *pdwCurrentPlayCursor, *pdwCurrentWriteCursor); - } + if(pdwCurrentPlayCursor != 0 && pdwCurrentWriteCursor != 0) + { + DbgPrintf("*pdwCurrentPlayCursor := %d, *pdwCurrentWriteCursor := %d\n", *pdwCurrentPlayCursor, *pdwCurrentWriteCursor); + } + } EmuSwapFS(); // XBox FS diff --git a/src/CxbxKrnl/EmuKrnl.cpp b/src/CxbxKrnl/EmuKrnl.cpp index 551d8538e..d48ab0a19 100644 --- a/src/CxbxKrnl/EmuKrnl.cpp +++ b/src/CxbxKrnl/EmuKrnl.cpp @@ -194,6 +194,35 @@ XBSYSAPI EXPORTNUM(1) xboxkrnl::PVOID NTAPI xboxkrnl::AvGetSavedDataAddress() DbgPrintf("EmuKrnl (0x%X): AvGetSavedDataAddress();\n", GetCurrentThreadId() ); +// __asm int 3; + + // Allocate a buffer the size of the screen buffer and return that. + // TODO: Fill this buffer with the contents of the front buffer. + // TODO: This isn't always the size we need... + + if( g_pPersistedData ) + { + CxbxFree( g_pPersistedData ); + g_pPersistedData = NULL; + } + + g_pPersistedData = CxbxMalloc( 640*480*4 ); + +#if 0 + // Get a copy of the front buffer + IDirect3DSurface8* pFrontBuffer = NULL; + + if( SUCCEEDED(g_pD3DDevice8->GetFrontBuffer(pFrontBuffer))) + { + D3DLOCKED_RECT LockedRect; + pFrontBuffer->LockRect( 0, NULL, &LockedRect ); + + CopyMemory( g_pPersistedData, LockRect.pBits, 640*480*4 ); + + pFrontBuffer->UnlockRect(); + } +#endif + // TODO: We might want to return something sometime... /*if( !g_pPersistedData ) { @@ -207,7 +236,7 @@ XBSYSAPI EXPORTNUM(1) xboxkrnl::PVOID NTAPI xboxkrnl::AvGetSavedDataAddress() EmuSwapFS(); // Xbox FS - return NULL; //g_pPersistedData; + return NULL;//g_pPersistedData; } // ****************************************************************** @@ -772,7 +801,7 @@ XBSYSAPI EXPORTNUM(129) xboxkrnl::UCHAR NTAPI xboxkrnl::KeRaiseIrqlToDpcLevel() DbgPrintf("EmuKrnl (0x%X): KeRaiseIrqlToDpcLevel()\n", GetCurrentThreadId()); // I really tried to avoid adding this... - __asm int 3; +// __asm int 3; // CxbxKrnlCleanup("KeRaiseIrqlToDpcLevel not implemented! (Tell blueshogun -_-)"); EmuSwapFS(); diff --git a/src/CxbxKrnl/EmuXactEng.cpp b/src/CxbxKrnl/EmuXactEng.cpp index 5adb2d6a4..7f85cbbf3 100644 --- a/src/CxbxKrnl/EmuXactEng.cpp +++ b/src/CxbxKrnl/EmuXactEng.cpp @@ -247,7 +247,7 @@ HRESULT WINAPI XTL::EmuIXACTEngine_CreateSoundSource ");\n", GetCurrentThreadId(), pThis, dwFlags, ppSoundSource); - *ppSoundSource = (X_XACTSoundSource*) malloc( sizeof( X_XACTSoundSource ) ); + *ppSoundSource = (X_XACTSoundSource*) CxbxMalloc( sizeof( X_XACTSoundSource ) ); EmuSwapFS(); diff --git a/src/CxbxKrnl/EmuXapi.cpp b/src/CxbxKrnl/EmuXapi.cpp index 8c5b63748..71b639113 100644 --- a/src/CxbxKrnl/EmuXapi.cpp +++ b/src/CxbxKrnl/EmuXapi.cpp @@ -1321,6 +1321,10 @@ LPVOID WINAPI XTL::EmuXLoadSectionA else if(!strcmp(pSectionName, "DSPImage")) pRet = (void*) 0x41F900; + // Zapper (NTSC) +// else if(!strcmp(pSectionName, "sig")) +// pRet = (void*) 0x41F900; + else __asm int 3; @@ -1401,7 +1405,7 @@ HANDLE WINAPI XTL::EmuXGetSectionHandleA } else if(!strcmp(pSectionName, ".XTLID")) { - __asm int 3; +// __asm int 3; pRet = (void*) 0x91B0A0; } @@ -1438,7 +1442,7 @@ HANDLE WINAPI XTL::EmuXGetSectionHandleA else { - __asm int 3; +// __asm int 3; } EmuSwapFS(); // Xbox FS @@ -2602,4 +2606,29 @@ BOOL WINAPI XTL::EmuSwitchToThread() EmuSwapFS(); // Xbox FS return bRet; -} \ No newline at end of file +} + +// ****************************************************************** +// * func: EmuXInputGetDeviceDescription +// ****************************************************************** +DWORD WINAPI XTL::EmuXInputGetDeviceDescription +( + HANDLE hDevice, + PVOID pDescription +) +{ + EmuSwapFS(); // Win2k/XP FS + + DbgPrintf("EmuXapi (0x%X): EmuXInputGetDeviceDescription\n" + "(\n" + " hDevice : 0x%.08X\n" + " pDescription : 0x%.08X\n" + ");\n", + GetCurrentThreadId(), hDevice, pDescription); + + // TODO: Lightgun support? + + EmuSwapFS(); // Xbox FS + + return ERROR_NOT_SUPPORTED; // ERROR_DEVICE_NOT_CONNECTED; +} diff --git a/src/CxbxKrnl/EmuXapi.h b/src/CxbxKrnl/EmuXapi.h index cdd986949..2d96d126a 100644 --- a/src/CxbxKrnl/EmuXapi.h +++ b/src/CxbxKrnl/EmuXapi.h @@ -947,6 +947,16 @@ DWORD WINAPI EmuXGetDeviceEnumerationStatus(); // ****************************************************************** BOOL WINAPI EmuSwitchToThread(); +// ****************************************************************** +// * func: EmuXInputGetDeviceDescription +// ****************************************************************** +DWORD WINAPI EmuXInputGetDeviceDescription +( + HANDLE hDevice, + PVOID pDescription +); + + // s+ /* not necessary? // ****************************************************************** diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl index 66e5d022a..52239b15f 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5233.inl @@ -850,6 +850,29 @@ SOOVPA<12> IDirect3DDevice8_SetLight_1_0_5233 = } }; +// ****************************************************************** +// * IDirect3DDevice8_SetLight +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_SetLight_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + -1, // Xref Not Saved + 0, // Xref Not Used + + { + { 0x1E, 0x00 }, + { 0x3E, 0x89 }, + { 0x5E, 0x00 }, + { 0x7E, 0x03 }, + { 0x9E, 0xC8 }, + { 0xBE, 0xC9 }, + { 0xDE, 0x03 }, + { 0xFE, 0xC1 }, + } +}; + // ****************************************************************** // * IDirect3DDevice8_LightEnable // ****************************************************************** @@ -887,6 +910,29 @@ SOOVPA<13> IDirect3DDevice8_LightEnable_1_0_5233 = } }; +// ****************************************************************** +// * IDirect3DDevice8_LightEnable +// ****************************************************************** +SOOVPA<8> IDirect3DDevice8_LightEnable_1_0_5344 = +{ + 0, // Large == 0 + 8, // Count == 8 + + -1, // Xref Not Saved + 0, // Xref Not Used + + { + { 0x1E, 0x8D }, + { 0x3E, 0xC7 }, + { 0x5E, 0xC7 }, + { 0x7E, 0x00 }, + { 0x9E, 0x85 }, + { 0xBE, 0x01 }, + { 0xDE, 0x00 }, + { 0xFE, 0x83 }, + } +}; + // ****************************************************************** // * IDirect3DVertexBuffer8_GetDesc // ****************************************************************** @@ -2499,6 +2545,16 @@ OOVPATable D3D8_1_0_5233[] = #ifdef _DEBUG_TRACE "EmuIDirect3DDevice8_SetLight" #endif + }, + // IDirect3DDevice8::SetLight + { + (OOVPA*)&IDirect3DDevice8_SetLight_1_0_5344, + + XTL::EmuIDirect3DDevice8_SetLight, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetLight (5344)" + #endif }, // IDirect3DDevice8::LightEnable { @@ -2509,6 +2565,16 @@ OOVPATable D3D8_1_0_5233[] = #ifdef _DEBUG_TRACE "EmuIDirect3DDevice8_LightEnable" #endif + }, + // IDirect3DDevice8::LightEnable + { + (OOVPA*)&IDirect3DDevice8_LightEnable_1_0_5344, + + XTL::EmuIDirect3DDevice8_LightEnable, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_LightEnable (5344)" + #endif }, // IDirect3DDevice8::DrawIndexedVertices { diff --git a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl index dec10d3c3..2ec08488d 100644 --- a/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl +++ b/src/CxbxKrnl/HLEDataBase/D3D8.1.0.5558.inl @@ -1854,6 +1854,73 @@ SOOVPA<7> D3DCubeTexture_GetCubeMapSurface_1_0_5558 = } }; +// ****************************************************************** +// * D3DDevice_SetVertexDataColor +// ****************************************************************** +SOOVPA<7> D3DDevice_SetVertexDataColor_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + -1, // Xref Not Saved + 0, // Xref Not Used + + { + { 0x08, 0x06 }, + { 0x14, 0x8B }, + { 0x1C, 0x19 }, + { 0x26, 0xB6 }, + { 0x30, 0x00 }, + { 0x3A, 0xFF }, + { 0x44, 0x08 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexData4f +// ****************************************************************** +SOOVPA<7> D3DDevice_SetVertexData4f_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + -1, // Xref Not Saved + 0, // Xref Not Used + + { + { 0x0A, 0x46 }, + { 0x16, 0x08 }, + { 0x22, 0x09 }, + { 0x2E, 0x24 }, + { 0x3A, 0x24 }, + { 0x46, 0x8B }, + { 0x52, 0x14 }, + } +}; + +// ****************************************************************** +// * D3DDevice_SetVertexData2f +// ****************************************************************** +SOOVPA<8> D3DDevice_SetVertexData2f_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + -1, // Xref Not Saved + 0, // Xref Not Used + + { + { 0x07, 0x8B }, + { 0x0C, 0x72 }, + { 0x13, 0x8B }, + { 0x1A, 0x80 }, + { 0x21, 0x0C }, + { 0x28, 0x89 }, + { 0x2F, 0xC0 }, + { 0x36, 0x00 }, + } +}; + // ****************************************************************** // * D3D8_1_0_5558 // ****************************************************************** @@ -3151,6 +3218,46 @@ OOVPATable D3D8_1_0_5558[] = "EmuIDirect3DCubeTexture8_GetCubeMapSurface" #endif }, + // IDirect3DDevice8::GetCreationParameters (* unchanged since 4034 *) + { + (OOVPA*)&IDirect3DDevice8_GetCreationParameters_1_0_4034, + + XTL::EmuIDirect3DDevice8_GetCreationParameters, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_GetCreationParameters" + #endif + }, + // IDirect3DDevice8::SetVertexDataColor + { + (OOVPA*)&D3DDevice_SetVertexDataColor_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetVertexDataColor, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexDataColor" + #endif + }, + // IDirect3DDevice8::SetVertexData4f + { + (OOVPA*)&D3DDevice_SetVertexData4f_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetVertexData4f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData4f" + #endif + }, + // IDirect3DDevice8::SetVertexData2f + { + (OOVPA*)&D3DDevice_SetVertexData2f_1_0_5558, + + XTL::EmuIDirect3DDevice8_SetVertexData2f, + + #ifdef _DEBUG_TRACE + "EmuIDirect3DDevice8_SetVertexData2f" + #endif + }, }; // ****************************************************************** diff --git a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl index 99884a6c6..bf6ea1bbf 100644 --- a/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl +++ b/src/CxbxKrnl/HLEDataBase/DSound.1.0.5558.inl @@ -2158,6 +2158,76 @@ SOOVPA<8> IDirectSound_EnableHeadphones_1_0_5558 = } }; +// ****************************************************************** +// * DirectSound::CDirectSound::GetOutputLevels +// ****************************************************************** +SOOVPA<7> DirectSound_CDirectSound_GetOutputLevels_1_0_5558 = +{ + 0, // Large == 0 + 7, // Count == 7 + + XREF_DirectSound_CDirectSound_GetOutputLevels, // Xref Is Saved + 0, // Xref Not Used + + { + { 0x07, 0x10 }, + { 0x10, 0xF3 }, + { 0x19, 0x5E }, + { 0x22, 0xFE }, + { 0x2B, 0x85 }, + { 0x34, 0xA6 }, + { 0x3D, 0xD0 }, + } +}; + +// ****************************************************************** +// * IDirectSound_GetOutputLevels +// ****************************************************************** +SOOVPA<9> IDirectSound_GetOutputLevels_1_0_5558 = +{ + 0, // Large == 0 + 9, // Count == 9 + + -1, // Xref Not Saved + 1, // Xref Is Used + + { + { 0x19, XREF_DirectSound_CDirectSound_GetOutputLevels }, + + { 0x02, 0x24 }, + { 0x06, 0x24 }, + { 0x0A, 0xFF }, + { 0x0E, 0x83 }, + { 0x12, 0xD9 }, + { 0x16, 0xC8 }, + { 0x1D, 0xC2 }, + { 0x1E, 0x0C }, + } +}; + +// ****************************************************************** +// * XAudioDownloadEffectsImage +// ****************************************************************** +SOOVPA<8> XAudioDownloadEffectsImage_1_0_5558 = +{ + 0, // Large == 0 + 8, // Count == 8 + + -1, // Xref Not Saved + 0, // Xref Not Used + + { + { 0x1E, 0xB6 }, + { 0x41, 0x83 }, + { 0x61, 0x8B }, + { 0x80, 0x85 }, + { 0x9E, 0x8B }, + { 0xBE, 0x6A }, + { 0xDE, 0x07 }, + { 0xFE, 0xF7 }, + } +}; + // ****************************************************************** // * Direct_1_0_5558 // ****************************************************************** @@ -3256,6 +3326,33 @@ OOVPATable DSound_1_0_5558[] = "IDirectSound8_EnableHeadphones" #endif }, + // DirectSound::CDirectSound::GetOutputLevels (XREF) + { + (OOVPA*)&DirectSound_CDirectSound_GetOutputLevels_1_0_5558, + 0, + + #ifdef _DEBUG_TRACE + "DirectSound::CDirectSound::GetOutputLevels (XREF)" + #endif + }, + // IDirectSound_GetOutputLevels + { + (OOVPA*)&IDirectSound_GetOutputLevels_1_0_5558, + XTL::EmuIDirectSound8_GetOutputLevels, + + #ifdef _DEBUG_TRACE + "IDirectSound_GetOutputLevels" + #endif + }, + // XAudioDownloadEffectsImage + { + (OOVPA*)&XAudioDownloadEffectsImage_1_0_5558, + XTL::EmuXAudioDownloadEffectsImage, + + #ifdef _DEBUG_TRACE + "XAudioDownloadEffectsImage" + #endif + }, }; // ******************************************************************