Fixed Various Issue

- Corrected File linkage for EmuDSoundInline.hpp (Thanks PatrickvL)
- Check if is not a null variable in release referred by PatrickvL
- Add missing passdown to ResizeIDirectSoundBuffer function (oops)
- Add another test case for SYNCHPLAYBACK

Should compile this time.

Known regress issue:
JSRF report dirty disc - Wait until DirectSound audio control is
implement, then it will go away.
This commit is contained in:
RadWolfie 2017-06-10 12:08:39 -05:00
parent 28cdfafb4c
commit 14172824b1
2 changed files with 8 additions and 8 deletions

View File

@ -329,7 +329,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSound_SynchPlayback)
");\n", ");\n",
pThis); pThis);
//TODO: Test case Rayman 3 - Hoodlum Havoc //TODO: Test case Rayman 3 - Hoodlum Havoc, Battlestar Galactica
EmuWarning("EmuIDirectSound_SynchPlayback ignored"); EmuWarning("EmuIDirectSound_SynchPlayback ignored");
@ -955,7 +955,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_SetBufferData)
// update buffer data cache // update buffer data cache
pThis->EmuBuffer = pvBufferData; pThis->EmuBuffer = pvBufferData;
ResizeIDirectSoundBuffer(pThis->EmuDirectSoundBuffer, pThis->EmuBufferDesc, pThis->EmuFlags, dwBufferBytes); ResizeIDirectSoundBuffer(pThis->EmuDirectSoundBuffer, pThis->EmuBufferDesc, pThis->EmuFlags, dwBufferBytes, pThis->EmuDirectSound3DBuffer);
if (pThis->EmuFlags & DSB_FLAG_ADPCM) { if (pThis->EmuFlags & DSB_FLAG_ADPCM) {
DSoundBufferUnlockXboxAdpcm(pThis->EmuDirectSoundBuffer, pThis->EmuBufferDesc, pvBufferData, dwBufferBytes, NULL, 0); DSoundBufferUnlockXboxAdpcm(pThis->EmuDirectSoundBuffer, pThis->EmuBufferDesc, pvBufferData, dwBufferBytes, NULL, 0);
@ -1040,7 +1040,7 @@ HRESULT WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Lock)
*pdwAudioBytes1 = dwBytes; *pdwAudioBytes1 = dwBytes;
} else { } else {
if (dwBytes > pThis->EmuBufferDesc->dwBufferBytes) { if (dwBytes > pThis->EmuBufferDesc->dwBufferBytes) {
ResizeIDirectSoundBuffer(pThis->EmuDirectSoundBuffer, pThis->EmuBufferDesc, pThis->EmuFlags, dwBytes); ResizeIDirectSoundBuffer(pThis->EmuDirectSoundBuffer, pThis->EmuBufferDesc, pThis->EmuFlags, dwBytes, pThis->EmuDirectSound3DBuffer);
} }
if (pThis->EmuLockPtr1 != 0) { if (pThis->EmuLockPtr1 != 0) {
@ -1156,7 +1156,7 @@ ULONG WINAPI XTL::EMUPATCH(IDirectSoundBuffer_Release)
uRet = pThis->EmuDirectSoundBuffer->Release(); uRet = pThis->EmuDirectSoundBuffer->Release();
if (uRet == 0) { if (uRet == 0) {
if (pThis->EmuDirectSound3DBuffer) { if (pThis->EmuDirectSound3DBuffer != NULL) {
pThis->EmuDirectSound3DBuffer->Release(); pThis->EmuDirectSound3DBuffer->Release();
} }
// remove cache entry // remove cache entry
@ -1686,7 +1686,7 @@ ULONG WINAPI XTL::EMUPATCH(CDirectSoundStream_Release)
uRet = pThis->EmuDirectSoundBuffer->Release(); uRet = pThis->EmuDirectSoundBuffer->Release();
if (uRet == 0) { if (uRet == 0) {
if (pThis->EmuDirectSound3DBuffer) { if (pThis->EmuDirectSound3DBuffer != NULL) {
pThis->EmuDirectSound3DBuffer->Release(); pThis->EmuDirectSound3DBuffer->Release();
} }
// remove cache entry // remove cache entry
@ -1788,7 +1788,7 @@ HRESULT WINAPI XTL::EMUPATCH(CDirectSoundStream_Process)
// update buffer data cache // update buffer data cache
pThis->EmuBuffer = pInputBuffer->pvBuffer; pThis->EmuBuffer = pInputBuffer->pvBuffer;
ResizeIDirectSoundBuffer(pThis->EmuDirectSoundBuffer, pThis->EmuBufferDesc, pThis->EmuFlags, pInputBuffer->dwMaxSize); ResizeIDirectSoundBuffer(pThis->EmuDirectSoundBuffer, pThis->EmuBufferDesc, pThis->EmuFlags, pInputBuffer->dwMaxSize, pThis->EmuDirectSound3DBuffer);
if (pInputBuffer->pdwStatus != 0) { if (pInputBuffer->pdwStatus != 0) {
*pInputBuffer->pdwStatus = S_OK; *pInputBuffer->pdwStatus = S_OK;

View File

@ -7,7 +7,7 @@
// * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo, // * `88bo,__,o, oP"``"Yo, _88o,,od8P oP"``"Yo,
// * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm, // * "YUMMMMMP",m" "Mm,""YUMMMP" ,m" "Mm,
// * // *
// * Cxbx->Win32->CxbxKrnl->EmuD3D8->VertexShader.h // * Cxbx->Win32->CxbxKrnl->EmuDSoundInline.hpp
// * // *
// * This file is part of the Cxbx project. // * This file is part of the Cxbx project.
// * // *
@ -525,7 +525,7 @@ inline HRESULT HybridDirectSoundBuffer_Pause(
} }
break; break;
case X_DSSPAUSE_SYNCHPLAYBACK: case X_DSSPAUSE_SYNCHPLAYBACK:
//TODO: Test case Rayman 3 - Hoodlum Havoc, and ... ? //TODO: Test case Rayman 3 - Hoodlum Havoc, Battlestar Galactica and ... ?
EmuWarning("X_DSSPAUSE_SYNCHPLAYBACK is unsupported!"); EmuWarning("X_DSSPAUSE_SYNCHPLAYBACK is unsupported!");
break; break;
case X_DSSPAUSE_PAUSENOACTIVATE: case X_DSSPAUSE_PAUSENOACTIVATE: