aboutsummaryrefslogtreecommitdiff
path: root/plugins/dfsound
diff options
context:
space:
mode:
authornotaz2015-01-01 19:35:16 +0200
committernotaz2015-01-03 02:25:30 +0200
commit4ccd0fb2874dab39c9db8ab973d4db9b8d54fa0d (patch)
tree4a291365c6f0c500c5b13b86356fed7978291446 /plugins/dfsound
parent011755d7a88f7128d04a14136e9fd61870706dcf (diff)
downloadpcsx_rearmed-4ccd0fb2874dab39c9db8ab973d4db9b8d54fa0d.tar.gz
pcsx_rearmed-4ccd0fb2874dab39c9db8ab973d4db9b8d54fa0d.tar.bz2
pcsx_rearmed-4ccd0fb2874dab39c9db8ab973d4db9b8d54fa0d.zip
spu: move more things to StartSound
Diffstat (limited to 'plugins/dfsound')
-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);
}
////////////////////////////////////////////////////////////////////////