diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp index 21ff955a54..42124939aa 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp @@ -31,8 +31,7 @@ AXUCode::~AXUCode() void AXUCode::Initialize() { - m_mail_handler.PushMail(DSP_INIT); - DSP::GenerateDSPInterruptFromDSPEmu(DSP::INT_DSP); + m_mail_handler.PushMail(DSP_INIT, true); LoadResamplingCoefficients(); } @@ -75,8 +74,7 @@ void AXUCode::LoadResamplingCoefficients() void AXUCode::SignalWorkEnd() { // Signal end of processing - m_mail_handler.PushMail(DSP_YIELD); - DSP::GenerateDSPInterruptFromDSPEmu(DSP::INT_DSP); + m_mail_handler.PushMail(DSP_YIELD, true); } void AXUCode::HandleCommandList() @@ -620,8 +618,7 @@ void AXUCode::HandleMail(u32 mail) else if (mail == MAIL_RESUME) { // Acknowledge the resume request - m_mail_handler.PushMail(DSP_RESUME); - DSP::GenerateDSPInterruptFromDSPEmu(DSP::INT_DSP); + m_mail_handler.PushMail(DSP_RESUME, true); } else if (mail == MAIL_NEW_UCODE) { @@ -668,8 +665,7 @@ void AXUCode::Update() // Used for UCode switching. if (NeedsResumeMail()) { - m_mail_handler.PushMail(DSP_RESUME); - DSP::GenerateDSPInterruptFromDSPEmu(DSP::INT_DSP); + m_mail_handler.PushMail(DSP_RESUME, true); } } diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp index f7cbbcfd3f..7edd9c1d0f 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXWii.cpp @@ -611,10 +611,7 @@ void AXWiiUCode::OutputSamples(u32 lr_addr, u32 surround_addr, u16 volume, bool } memcpy(HLEMemory_Get_Pointer(lr_addr), buffer, sizeof(buffer)); - - // There should be a DSP_SYNC message sent here. However, it looks like not - // sending it does not cause any issue, and sending it actually causes some - // sounds to go at half speed. I have no idea why. + m_mail_handler.PushMail(DSP_SYNC, true); } void AXWiiUCode::OutputWMSamples(u32* addresses)