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 4bda7e2638..eb2a71969b 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp +++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp @@ -628,11 +628,26 @@ void CUCode_AX::Update(int cycles) } } +void CUCode_AX::DoAXState(PointerWrap& p) +{ + p.Do(m_cmdlist); + p.Do(m_cmdlist_size); + + p.Do(m_samples_left); + p.Do(m_samples_right); + p.Do(m_samples_surround); + p.Do(m_samples_auxA_left); + p.Do(m_samples_auxA_right); + p.Do(m_samples_auxA_surround); + p.Do(m_samples_auxB_left); + p.Do(m_samples_auxB_right); + p.Do(m_samples_auxB_surround); +} + void CUCode_AX::DoState(PointerWrap& p) { std::lock_guard lk(m_processing); - // TODO - DoStateShared(p); + DoAXState(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 32083f675a..7155a245bb 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.h +++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.h @@ -140,6 +140,9 @@ protected: void SendAUXAndMix(u32 main_auxa_up, u32 auxb_s_up, u32 main_l_dl, u32 main_r_dl, u32 auxb_l_dl, u32 auxb_r_dl); + // Handle save states for main AX. + void DoAXState(PointerWrap& p); + private: enum CmdType { 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 42b2d510da..8c74c7a1e7 100644 --- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.cpp +++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AXWii.cpp @@ -364,7 +364,20 @@ void CUCode_AXWii::DoState(PointerWrap &p) { std::lock_guard lk(m_processing); - // TODO - DoStateShared(p); + DoAXState(p); + + p.Do(m_samples_auxC_left); + p.Do(m_samples_auxC_right); + p.Do(m_samples_auxC_surround); + + p.Do(m_samples_wm0); + p.Do(m_samples_wm1); + p.Do(m_samples_wm2); + p.Do(m_samples_wm3); + + p.Do(m_samples_aux0); + p.Do(m_samples_aux1); + p.Do(m_samples_aux2); + p.Do(m_samples_aux3); }