mirror of https://github.com/PCSX2/pcsx2.git
SPU2ghz: Reverted an experimental ASDR slider that broke way more than expected.. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@471 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
d5bc5099d1
commit
343afaffdf
|
@ -344,8 +344,8 @@ static int GetLinearSrAr( uint SrAr )
|
|||
// the bottom 2 bits go on the left side of the shift, and
|
||||
// the right side of the shift gets divided by 4:
|
||||
|
||||
const uint newSr = 0x127 - SrAr;
|
||||
return (1+(newSr&3)) << (30UL-(newSr>>2));
|
||||
const uint newSr = 0x7f - SrAr;
|
||||
return ((1|(newSr&3)) << (newSr>>2));
|
||||
}
|
||||
|
||||
static void __forceinline CalculateADSR( V_Voice& vc )
|
||||
|
@ -372,9 +372,9 @@ static void __forceinline CalculateADSR( V_Voice& vc )
|
|||
|
||||
if (env.Am && (env.Value>=0x60000000))
|
||||
env.Value += PsxRates[(env.Ar^0x7f)-0x18+32];
|
||||
else if( env.Ar < 0x7f )
|
||||
//env.Value+=PsxRates[(env.Ar^0x7f)-0x10+32];
|
||||
env.Value += GetLinearSrAr( env.Ar );
|
||||
else //if( env.Ar < 0x7f )
|
||||
env.Value+=PsxRates[(env.Ar^0x7f)-0x10+32];
|
||||
//env.Value += GetLinearSrAr( env.Ar );
|
||||
|
||||
if( env.Value < 0 )
|
||||
{
|
||||
|
@ -422,8 +422,8 @@ static void __forceinline CalculateADSR( V_Voice& vc )
|
|||
}
|
||||
else // linear
|
||||
{
|
||||
//env.Value-=PsxRates[(env.Sr^0x7f)-0xf+32];
|
||||
env.Value -= GetLinearSrAr( env.Sr );
|
||||
env.Value-=PsxRates[(env.Sr^0x7f)-0xf+32];
|
||||
//env.Value -= GetLinearSrAr( env.Sr );
|
||||
}
|
||||
|
||||
if( env.Value <= 0 )
|
||||
|
@ -439,10 +439,8 @@ static void __forceinline CalculateADSR( V_Voice& vc )
|
|||
else
|
||||
{
|
||||
// linear / Pseudo below 75% (they're the same)
|
||||
//env.Value+=PsxRates[(env.Sr^0x7f)-0x10+32];
|
||||
|
||||
int newSr = 0x7f-env.Sr;
|
||||
env.Value += GetLinearSrAr( env.Sr );
|
||||
env.Value+=PsxRates[(env.Sr^0x7f)-0x10+32];
|
||||
//env.Value += GetLinearSrAr( env.Sr );
|
||||
}
|
||||
|
||||
if( env.Value < 0 )
|
||||
|
@ -471,7 +469,7 @@ static void __forceinline CalculateADSR( V_Voice& vc )
|
|||
{
|
||||
//env.Value-=PsxRates[((env.Rr^0x1f)*4)-0xc+32];
|
||||
if( env.Rr != 0x1f )
|
||||
env.Value -= 1 << (30UL-env.Rr);
|
||||
env.Value -= (1 << (0x1f-env.Rr));
|
||||
}
|
||||
|
||||
if( env.Value <= 0 )
|
||||
|
@ -1068,8 +1066,8 @@ static __forceinline void MixVoice( V_Core& thiscore, V_Voice& vc, s32& VValL, s
|
|||
|
||||
// Write-back of raw voice data (post ADSR applied)
|
||||
|
||||
if (voice==1) spu2M_WriteFast( 0x400 + (core<<12) + OutPos, (s16)Value>>3 );
|
||||
else if (voice==3) spu2M_WriteFast( 0x600 + (core<<12) + OutPos, (s16)Value>>3 );
|
||||
if (voice==1) spu2M_WriteFast( 0x400 + (core<<12) + OutPos, (s16)Value );
|
||||
else if (voice==3) spu2M_WriteFast( 0x600 + (core<<12) + OutPos, (s16)Value );
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1317,17 +1317,15 @@ void VoiceStart(int core,int vc)
|
|||
|
||||
#ifndef PUBLIC
|
||||
DebugCores[core].Voices[vc].FirstBlock=1;
|
||||
if(core==1)
|
||||
{
|
||||
if(MsgKeyOnOff()) ConLog(" * SPU2: KeyOn: C%dV%02d: SSA: %8x; M: %s%s%s%s; H: %02x%02x; P: %04x V: %04x/%04x; ADSR: %04x%04x\n",
|
||||
core,vc,Cores[core].Voices[vc].StartA,
|
||||
(Cores[core].Voices[vc].DryL)?"+":"-",(Cores[core].Voices[vc].DryR)?"+":"-",
|
||||
(Cores[core].Voices[vc].WetL)?"+":"-",(Cores[core].Voices[vc].WetR)?"+":"-",
|
||||
*(u8*)GetMemPtr(Cores[core].Voices[vc].StartA),*(u8 *)GetMemPtr((Cores[core].Voices[vc].StartA)+1),
|
||||
Cores[core].Voices[vc].Pitch,
|
||||
Cores[core].Voices[vc].VolumeL.Value,Cores[core].Voices[vc].VolumeR.Value,
|
||||
Cores[core].Voices[vc].ADSR.Reg_ADSR1,Cores[core].Voices[vc].ADSR.Reg_ADSR2);
|
||||
}
|
||||
|
||||
if(MsgKeyOnOff()) ConLog(" * SPU2: KeyOn: C%dV%02d: SSA: %8x; M: %s%s%s%s; H: %02x%02x; P: %04x V: %04x/%04x; ADSR: %04x%04x\n",
|
||||
core,vc,Cores[core].Voices[vc].StartA,
|
||||
(Cores[core].Voices[vc].DryL)?"+":"-",(Cores[core].Voices[vc].DryR)?"+":"-",
|
||||
(Cores[core].Voices[vc].WetL)?"+":"-",(Cores[core].Voices[vc].WetR)?"+":"-",
|
||||
*(u8*)GetMemPtr(Cores[core].Voices[vc].StartA),*(u8 *)GetMemPtr((Cores[core].Voices[vc].StartA)+1),
|
||||
Cores[core].Voices[vc].Pitch,
|
||||
Cores[core].Voices[vc].VolumeL.Value,Cores[core].Voices[vc].VolumeR.Value,
|
||||
Cores[core].Voices[vc].ADSR.Reg_ADSR1,Cores[core].Voices[vc].ADSR.Reg_ADSR2);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue