--- np2/sound/adpcmg.c 2003/12/08 00:55:33 1.3 +++ np2/sound/adpcmg.c 2004/02/04 10:30:55 1.4 @@ -129,10 +129,10 @@ static void SOUNDCALL getadpcmdata(ADPCM pos = ad->pos; if (!(ad->reg.ctrl2 & 2)) { data = ad->buf[(pos >> 3) & 0x3ffff]; - pos += ADPCM_NBR + 4; if (!(pos & ADPCM_NBR)) { data >>= 4; } + pos += ADPCM_NBR + 4; } else { const BYTE *ptr; @@ -160,7 +160,7 @@ static void SOUNDCALL getadpcmdata(ADPCM dir = data & 8; data &= 7; dlt = adpcmdeltatable[data] * ad->delta; - dlt -= 12; +// dlt -= 12; dlt >>= 8; if (dlt < 126) { dlt = 126; @@ -208,7 +208,7 @@ static void SOUNDCALL getadpcmdata(ADPCM samp >>= (10 + 1); ad->out0 = ad->out1; ad->out1 = samp + ad->fb; - ad->fb = samp >> 1; + ad->fb = samp; // >> 1; } void SOUNDCALL adpcm_getpcm(ADPCM ad, SINT32 *pcm, UINT count) {