--- np2/sound/beepg.c 2003/10/16 17:58:03 1.1.1.1 +++ np2/sound/beepg.c 2003/10/21 11:22:05 1.4 @@ -1,5 +1,4 @@ #include "compiler.h" -#include "pccore.h" #include "sound.h" #include "beep.h" @@ -14,11 +13,11 @@ static void oneshot(BEEP bp, SINT32 *pcm SINT32 remain; BPEVENT *bev; - vol = beepcfg.vol << 11; + vol = beepcfg.vol; bev = bp->event; do { - remain = pc.sampleclock; + remain = (1 << 16); samp = 0; while(remain >= bev->clock) { if (--bp->events) { @@ -33,7 +32,7 @@ static void oneshot(BEEP bp, SINT32 *pcm if (bp->lastenable) { samp += remain; samp *= vol; - samp /= pc.sampleclock; + samp >>= (16 - 11); do { pcm[0] += samp; pcm[1] += samp; @@ -43,10 +42,11 @@ static void oneshot(BEEP bp, SINT32 *pcm } else { samp *= vol; - samp /= pc.sampleclock; + samp >>= (16 - 11); pcm[0] += samp; pcm[1] += samp; } + bp->lastenable = bev->enable; return; } } @@ -55,7 +55,7 @@ static void oneshot(BEEP bp, SINT32 *pcm samp += remain; } samp *= vol; - samp /= pc.sampleclock; + samp >>= (16 - 11); pcm[0] += samp; pcm[1] += samp; pcm += 2; @@ -86,7 +86,7 @@ void SOUNDCALL beep_getpcm(BEEP bp, SINT if ((count) && (beepcfg.vol)) { if (bp->mode == 0) { - if ((bp->events) && (pc.sampleclock)) { + if (bp->events) { oneshot(bp, pcm, count); } }