From e059587c1a15c2f99212c53254911bd67dec8b9b Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Wed, 22 Dec 2010 17:32:17 +0000 Subject: [PATCH] Don't reset all of ARAM when DSPReset is sent. Fixes issue 3594 git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6647 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Core/Src/HW/DSP.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Source/Core/Core/Src/HW/DSP.cpp b/Source/Core/Core/Src/HW/DSP.cpp index 1bf7783752..99c364445c 100644 --- a/Source/Core/Core/Src/HW/DSP.cpp +++ b/Source/Core/Core/Src/HW/DSP.cpp @@ -387,11 +387,12 @@ void Write16(const u16 _Value, const u32 _Address) tmpControl.Hex = (_Value & ~DSP_CONTROL_MASK) | (dsp_plugin->DSP_WriteControlRegister(_Value) & DSP_CONTROL_MASK); - // HACK for DSPReset: do it instantaneously - if (_Value & 1) + // Not really sure if this is correct, but it works... + // Kind of a hack because DSP_CONTROL_MASK should make this bit + // only viewable to dsp plugin + if (_Value & 1 /*DSPReset*/) { - Shutdown(); - Init(); + g_audioDMA.AudioDMAControl.Hex = 0; } // Update DSP related flags