X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=plugins%2Fdfsound%2Fspu.c;h=022a1e3d3e136b5cbe74456a16cf1ef2617ca18f;hb=3047daea4d4f6f00fdaa0467c15efd128b822367;hp=ad86cabc8be39c895e7556d4d79c38148f2a3b83;hpb=8fb79cd1347e938cfecd799ad8ce7934164d6d63;p=pcsx_rearmed.git diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c index ad86cabc..022a1e3d 100644 --- a/plugins/dfsound/spu.c +++ b/plugins/dfsound/spu.c @@ -1000,8 +1000,10 @@ static void queue_channel_work(int ns_to, unsigned int silentch) if (unlikely(s_chan->bFMod == 2)) { // sucks, have to do double work - assert(!s_chan->bNoise); - d = do_samples_gauss(tmpFMod, decode_block, NULL, ch, ns_to, + if (s_chan->bNoise) + d = do_samples_noise(tmpFMod, ch, ns_to); + else + d = do_samples_gauss(tmpFMod, decode_block, NULL, ch, ns_to, &spu.sb[ch], s_chan->sinc, &s_chan->spos, &s_chan->iSBPos); if (!s_chan->bStarting) { d = MixADSR(tmpFMod, &s_chan->ADSRX, d); @@ -1243,6 +1245,7 @@ void do_samples(unsigned int cycles_to, int force_no_thread) spu.cycles_played += ns_to * 768; spu.decode_pos = (spu.decode_pos + ns_to) & 0x1ff; + spu.spuStat = (spu.spuStat & ~0x800) | ((spu.decode_pos << 3) & 0x800); #if 0 static int ccount; static time_t ctime; ccount++; if (time(NULL) != ctime)