fred flintstone

This commit is contained in:
Aaron Robinson 2004-01-14 02:57:14 +00:00
parent c496420223
commit 02f6039baf
2 changed files with 16 additions and 1 deletions

BIN
Cxbx.opt

Binary file not shown.

View File

@ -792,8 +792,23 @@ HRESULT WINAPI XTL::EmuDirectSoundCreateBuffer
if(pdsbd->lpwfxFormat != NULL) if(pdsbd->lpwfxFormat != NULL)
{ {
pDSBufferDesc->lpwfxFormat = (WAVEFORMATEX*)malloc(sizeof(WAVEFORMATEX)); pDSBufferDesc->lpwfxFormat = (WAVEFORMATEX*)malloc(sizeof(WAVEFORMATEX)+pdsbd->lpwfxFormat->cbSize);
memcpy(pDSBufferDesc->lpwfxFormat, pdsbd->lpwfxFormat, sizeof(WAVEFORMATEX)); memcpy(pDSBufferDesc->lpwfxFormat, pdsbd->lpwfxFormat, sizeof(WAVEFORMATEX));
if(pDSBufferDesc->lpwfxFormat->wFormatTag == /*WAVE_FORMAT_XBOX_ADPCM*/0x0069)
{
EmuWarning("WAVE_FORMAT_XBOX_ADPCM Unsupported!");
pDSBufferDesc->lpwfxFormat->wFormatTag = WAVE_FORMAT_PCM;
pDSBufferDesc->lpwfxFormat->nBlockAlign = (pDSBufferDesc->lpwfxFormat->nChannels*pDSBufferDesc->lpwfxFormat->wBitsPerSample)/8;
// the above calculation can yield zero for wBitsPerSample < 8, so we'll bound it to 1 byte minimum
if(pDSBufferDesc->lpwfxFormat->nBlockAlign == 0)
pDSBufferDesc->lpwfxFormat->nBlockAlign = 1;
pDSBufferDesc->lpwfxFormat->nAvgBytesPerSec = pDSBufferDesc->lpwfxFormat->nSamplesPerSec*pDSBufferDesc->lpwfxFormat->nBlockAlign;
pDSBufferDesc->lpwfxFormat->wBitsPerSample = 8;
}
} }
pDSBufferDesc->guid3DAlgorithm = DS3DALG_DEFAULT; pDSBufferDesc->guid3DAlgorithm = DS3DALG_DEFAULT;