if (val == 0 && (r & 0xff8) == 0xd88)\r
return;\r
\r
- do_samples_if_needed(cycles);\r
+ do_samples_if_needed(cycles, 0);\r
\r
if(r>=0x0c00 && r<0x0d80) // some channel info?\r
{\r
{\r
if((val&1) && regAreaGet(ch,6)) // mmm... start has to be set before key on !?!\r
{\r
- // do this here, not in StartSound\r
- // - fixes fussy timing issues\r
- s_chan[ch].bStop=0;\r
s_chan[ch].pCurr=spu.spuMemC+((regAreaGet(ch,6)&~1)<<3); // must be block aligned\r
s_chan[ch].pLoop=spu.spuMemC+((regAreaGet(ch,14)&~1)<<3);\r
- s_chan[ch].prevflags=2;\r
-\r
spu.dwNewChannel|=(1<<ch);\r
- spu.dwChannelOn|=1<<ch;\r
- spu.dwChannelDead&=~(1<<ch);\r
}\r
}\r
}\r
int ch;\r
for(ch=start;ch<end;ch++,val>>=1) // loop channels\r
{\r
- if(val&1) // && s_chan[i].bOn) mmm...\r
+ if(val&1)\r
{\r
- s_chan[ch].bStop=1;\r
+ s_chan[ch].ADSRX.State = ADSR_RELEASE;\r
\r
// Jungle Book - Rhythm 'n Groove\r
// - turns off buzzing sound (loop hangs)\r