mirror of https://github.com/PCSX2/pcsx2.git
The Digital Devil Saga reverb fix "fixed" too much. It's gone :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2090 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
1cc740a9c0
commit
fdde56115c
|
@ -1031,30 +1031,7 @@ static void __fastcall RegWrite_Core( u16 value )
|
|||
break;
|
||||
|
||||
case REG_A_EEA:
|
||||
|
||||
// Experimental Fix!! --> Disable reverb is EEA is set to 0.
|
||||
//
|
||||
// Rationale:
|
||||
// Digital Devil Saga on the PS2 has no reverb, but it *appears* to have all reverb
|
||||
// enabled (FX bit, volumes, etc. are all on). On SPU2-X it's reverb settings inevitably
|
||||
// result in a nasty feedback loop, even when all other games work fine (the values for
|
||||
// buffers and coefficients are quite odd and unlike most other games' reverb settings, so
|
||||
// the feedback isn't surprising). Theory: DDS is one of very few games that writes a 0 to
|
||||
// EffectsEndA, and so my guess is that this disables effects processing on this game.
|
||||
//
|
||||
// Any other value written to the EEA serves as a page selector for the effects buffer, but
|
||||
// it's possible the SPU2 ignores EEA set to 0 before it even gets to the point of establishing
|
||||
// whether or not the 0xffff portion is a valid buffer position.
|
||||
//
|
||||
|
||||
if( value == 0 )
|
||||
{
|
||||
thiscore.EffectsEndA = 0;
|
||||
fprintf( stderr, "* SPU2: EffectsEndA set to 0; disabling reverb effects!\n" );
|
||||
}
|
||||
else
|
||||
thiscore.EffectsEndA = ((u32)value<<16) | 0xFFFF;
|
||||
|
||||
thiscore.EffectsEndA = ((u32)value<<16) | 0xFFFF;
|
||||
thiscore.RevBuffers.NeedsUpdated = true;
|
||||
thiscore.ReverbX = 0;
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue