aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/dfsound/registers.c7
-rw-r--r--plugins/dfsound/spu.c8
2 files changed, 4 insertions, 11 deletions
diff --git a/plugins/dfsound/registers.c b/plugins/dfsound/registers.c
index 210adb2..8e4956e 100644
--- a/plugins/dfsound/registers.c
+++ b/plugins/dfsound/registers.c
@@ -362,16 +362,9 @@ static void SoundOn(int start,int end,unsigned short val)
{
if((val&1) && regAreaGet(ch,6)) // mmm... start has to be set before key on !?!
{
- // do this here, not in StartSound
- // - fixes fussy timing issues
- s_chan[ch].bStop=0;
s_chan[ch].pCurr=spu.spuMemC+((regAreaGet(ch,6)&~1)<<3); // must be block aligned
s_chan[ch].pLoop=spu.spuMemC+((regAreaGet(ch,14)&~1)<<3);
- s_chan[ch].prevflags=2;
-
spu.dwNewChannel|=(1<<ch);
- spu.dwChannelOn|=1<<ch;
- spu.dwChannelDead&=~(1<<ch);
}
}
}
diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c
index 1d5e28f..147db94 100644
--- a/plugins/dfsound/spu.c
+++ b/plugins/dfsound/spu.c
@@ -238,10 +238,8 @@ INLINE void StartSound(int ch)
StartADSR(ch);
StartREVERB(ch);
- // fussy timing issues - do in VoiceOn
- //s_chan[ch].pCurr=s_chan[ch].pStart; // set sample start
- //s_chan[ch].bStop=0;
- //s_chan[ch].bOn=1;
+ s_chan[ch].bStop=0;
+ s_chan[ch].prevflags=2;
s_chan[ch].SB[26]=0; // init mixing vars
s_chan[ch].SB[27]=0;
@@ -254,6 +252,8 @@ INLINE void StartSound(int ch)
s_chan[ch].spos=0;
spu.dwNewChannel&=~(1<<ch); // clear new channel bit
+ spu.dwChannelOn|=1<<ch;
+ spu.dwChannelDead&=~(1<<ch);
}
////////////////////////////////////////////////////////////////////////