+ // occasionally CDDAFeed underflows by a few samples due to poor timing,
+ // hence this 'ns_to < 8'
+ else if(spu.CDDAPlay != spu.CDDAFeed || ns_to < 8)
+ {
+ for(ns = 0; ns < ns_to*2; )
+ {
+ if(spu.CDDAPlay != spu.CDDAFeed) v=*spu.CDDAPlay++;
+ if(spu.CDDAPlay == spu.CDDAEnd) spu.CDDAPlay=spu.CDDAStart;