From 75ec10b0be20eb36e40c71c562b1e0040080cc58 Mon Sep 17 00:00:00 2001 From: Marko Pusljar Date: Sun, 29 May 2011 14:08:54 +0000 Subject: [PATCH] dsphle - lets save some vars for ax/axwii and mailqueue - should improve savestates and fix issue 4542 git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7570 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp | 13 +++++++++++++ Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.h | 1 + .../Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.cpp | 12 ++++++++++++ Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.h | 1 + 4 files changed, 27 insertions(+) diff --git a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp index 40359d4f7d..3170deedde 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp +++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp @@ -454,3 +454,16 @@ bool CUCode_AX::AXTask(u32& _uMail) m_rMailHandler.PushMail(DSP_YIELD); return true; } + +void CUCode_AX::DoState(PointerWrap &p) +{ + std::lock_guard lk(m_csMix); + + p.Do(_CRC); + p.Do(numPBaddr); + p.Do(m_addressPBs); + p.Do(PBaddr); + p.Do(m_UploadSetupInProgress); + + m_rMailHandler.DoState(p); +} diff --git a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.h b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.h index 62bcf732ef..3ad87c228f 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.h +++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.h @@ -35,6 +35,7 @@ public: void HandleMail(u32 _uMail); void MixAdd(short* _pBuffer, int _iSize); void Update(int cycles); + void DoState(PointerWrap &p); // PBs u8 numPBaddr; diff --git a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.cpp b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.cpp index aeaa602c56..41f044f9be 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.cpp +++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.cpp @@ -255,3 +255,15 @@ bool CUCode_AXWii::AXTask(u32& _uMail) m_rMailHandler.PushMail(DSP_YIELD); //its here in case there is a CMD fuckup return true; } + +void CUCode_AXWii::DoState(PointerWrap &p) +{ + std::lock_guard lk(m_csMix); + + p.Do(_CRC); + p.Do(m_addressPBs); + p.Do(wiisportsHack); + p.Do(m_UploadSetupInProgress); + + m_rMailHandler.DoState(p); +} diff --git a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.h b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.h index 31dbca7965..10ed5241a2 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.h +++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.h @@ -31,6 +31,7 @@ public: void HandleMail(u32 _uMail); void MixAdd(short* _pBuffer, int _iSize); void Update(int cycles); + void DoState(PointerWrap &p); private: enum