diff --git a/plugins/spu2-x/src/defs.h b/plugins/spu2-x/src/defs.h index 575a20e87..0306b6c47 100644 --- a/plugins/spu2-x/src/defs.h +++ b/plugins/spu2-x/src/defs.h @@ -412,10 +412,11 @@ struct V_Core u32 ExtEffectsEndA; u32 ReverbX; - // Current size of the effects buffer. Pre-caculated when the effects start + // Current size of and position of the effects buffer. Pre-caculated when the effects start // or end position registers are written. CAN BE NEGATIVE OR ZERO, in which // case reverb should be disabled. s32 EffectsBufferSize; + u32 EffectsBufferStart; V_CoreRegs Regs; // Registers diff --git a/plugins/spu2-x/src/spu2freeze.cpp b/plugins/spu2-x/src/spu2freeze.cpp index 572ba07a0..3c3b68cdc 100644 --- a/plugins/spu2-x/src/spu2freeze.cpp +++ b/plugins/spu2-x/src/spu2freeze.cpp @@ -25,7 +25,7 @@ namespace Savestate // versioning for saves. // Increment this when changes to the savestate system are made. - static const u32 SAVE_VERSION = 0x000c; + static const u32 SAVE_VERSION = 0x000d; static void wipe_the_cache() { diff --git a/plugins/spu2-x/src/spu2sys.cpp b/plugins/spu2-x/src/spu2sys.cpp index 3557693fe..e9a2ca0f9 100644 --- a/plugins/spu2-x/src/spu2sys.cpp +++ b/plugins/spu2-x/src/spu2sys.cpp @@ -265,10 +265,11 @@ void V_Core::UpdateEffectsBufferSize() //printf("too big, returning\n"); //return; } - if (newbufsize == EffectsBufferSize) return; + if (newbufsize == EffectsBufferSize && EffectsStartA == EffectsBufferStart) return; RevBuffers.NeedsUpdated = false; EffectsBufferSize = newbufsize; + EffectsBufferStart = EffectsStartA; if( EffectsBufferSize <= 0 ) return;