notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
spu: compact chan structure a bit
[pcsx_rearmed.git]
/
plugins
/
dfsound
/
adsr.c
diff --git
a/plugins/dfsound/adsr.c
b/plugins/dfsound/adsr.c
index
2496e46
..
1e397af
100644
(file)
--- a/
plugins/dfsound/adsr.c
+++ b/
plugins/dfsound/adsr.c
@@
-53,8
+53,7
@@
void InitADSR(void) // INIT ADSR
\r
INLINE void StartADSR(int ch) // MIX ADSR
\r
{
\r
\r
INLINE void StartADSR(int ch) // MIX ADSR
\r
{
\r
- s_chan[ch].ADSRX.lVolume=1; // and init some adsr vars
\r
- s_chan[ch].ADSRX.State=0;
\r
+ s_chan[ch].ADSRX.State=0; // and init some adsr vars
\r
s_chan[ch].ADSRX.EnvelopeVol=0;
\r
}
\r
\r
s_chan[ch].ADSRX.EnvelopeVol=0;
\r
}
\r
\r
@@
-86,13
+85,15
@@
INLINE int MixADSR(int ch) // MIX ADSR
if(s_chan[ch].ADSRX.EnvelopeVol<0)
\r
{
\r
s_chan[ch].ADSRX.EnvelopeVol=0;
\r
if(s_chan[ch].ADSRX.EnvelopeVol<0)
\r
{
\r
s_chan[ch].ADSRX.EnvelopeVol=0;
\r
- s_chan[ch].bOn=0;
\r
+ // don't stop if this chan can still cause irqs
\r
+ if(!(spuCtrl&0x40) || (s_chan[ch].pCurr > pSpuIrq && s_chan[ch].pLoop > pSpuIrq))
\r
+ //s_chan[ch].bOn=0;
\r
+ s_chan[ch].pCurr=(unsigned char *)-1;
\r
//s_chan[ch].bReverb=0;
\r
//s_chan[ch].bNoise=0;
\r
}
\r
\r
//s_chan[ch].bReverb=0;
\r
//s_chan[ch].bNoise=0;
\r
}
\r
\r
- s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21;
\r
- return s_chan[ch].ADSRX.lVolume;
\r
+ return s_chan[ch].ADSRX.EnvelopeVol>>21;
\r
}
\r
else // not stopped yet?
\r
{
\r
}
\r
else // not stopped yet?
\r
{
\r
@@
-116,8
+117,7
@@
INLINE int MixADSR(int ch) // MIX ADSR
s_chan[ch].ADSRX.State=1;
\r
}
\r
\r
s_chan[ch].ADSRX.State=1;
\r
}
\r
\r
- s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21;
\r
- return s_chan[ch].ADSRX.lVolume;
\r
+ return s_chan[ch].ADSRX.EnvelopeVol>>21;
\r
}
\r
//--------------------------------------------------//
\r
if(s_chan[ch].ADSRX.State==1) // -> decay
\r
}
\r
//--------------------------------------------------//
\r
if(s_chan[ch].ADSRX.State==1) // -> decay
\r
@@
-140,8
+140,7
@@
INLINE int MixADSR(int ch) // MIX ADSR
s_chan[ch].ADSRX.State=2;
\r
}
\r
\r
s_chan[ch].ADSRX.State=2;
\r
}
\r
\r
- s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21;
\r
- return s_chan[ch].ADSRX.lVolume;
\r
+ return s_chan[ch].ADSRX.EnvelopeVol>>21;
\r
}
\r
//--------------------------------------------------//
\r
if(s_chan[ch].ADSRX.State==2) // -> sustain
\r
}
\r
//--------------------------------------------------//
\r
if(s_chan[ch].ADSRX.State==2) // -> sustain
\r
@@
-191,8
+190,7
@@
INLINE int MixADSR(int ch) // MIX ADSR
s_chan[ch].ADSRX.EnvelopeVol=0;
\r
}
\r
}
\r
s_chan[ch].ADSRX.EnvelopeVol=0;
\r
}
\r
}
\r
- s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21;
\r
- return s_chan[ch].ADSRX.lVolume;
\r
+ return s_chan[ch].ADSRX.EnvelopeVol>>21;
\r
}
\r
}
\r
return 0;
\r
}
\r
}
\r
return 0;
\r