http://bugs.winehq.org/show_bug.cgi?id=7670
------- Additional Comments From romain.iehl@gmail.com 2007-02-07 18:17 ------- some more details : in fact, the intensity of the sounds isn't 0, it's just far too low. Maybe the function determining intensity with regard to spatial position is behaving incorrectly.
For example, the following ugly patch restores certains sounds in a certain range (footsteps, certain spells, etc) to more or less normal levels, by multiplying the intensity :
--- mixer.c +++ mixer.c @@ -315,6 +315,12 @@ BYTE *bpc = buf; INT16 *bps = (INT16 *) buf;
+ if (dsb->volpan.lVolume <= -9000 && dsb->volpan.lVolume >= -20000) { + dsb->volpan.lVolume /= 10; + dsb->volpan.lPan /=10; + DSOUND_RecalcVolPan(&(dsb->volpan)); + } + TRACE("(%p,%p,%d)\n",dsb,buf,len); TRACE("left = %x, right = %x\n", dsb->volpan.dwTotalLeftAmpFactor, dsb->volpan.dwTotalRightAmpFactor);