-// noise handler... just produces some noise data
-// surely wrong... and no noise frequency (spuCtrl&0x3f00) will be used...
-// and sometimes the noise will be used as fmod modulation... pfff
-
-INLINE int iGetNoiseVal(int ch)
-{
- int fa;
-
- if((dwNoiseVal<<=1)&0x80000000L)
- {
- dwNoiseVal^=0x0040001L;
- fa=((dwNoiseVal>>2)&0x7fff);
- fa=-fa;
- }
- else fa=(dwNoiseVal>>2)&0x7fff;
-
- // mmm... depending on the noise freq we allow bigger/smaller changes to the previous val
- fa=s_chan[ch].iOldNoise+((fa-s_chan[ch].iOldNoise)/((0x001f-((spuCtrl&0x3f00)>>9))+1));
- if(fa>32767L) fa=32767L;
- if(fa<-32767L) fa=-32767L;
- s_chan[ch].iOldNoise=fa;
-
- if(iUseInterpolation<2) // no gauss/cubic interpolation?
- s_chan[ch].SB[29] = fa; // -> store noise val in "current sample" slot
- return fa;
-}
-
-////////////////////////////////////////////////////////////////////////
-