Merge pull request #4571 from degasus/DSPHLE

Attempt re-adding the missing AXWii DSP_SYNC
This commit is contained in:
Markus Wick 2017-01-10 22:23:35 +01:00 committed by GitHub
commit d9a37d38b4
2 changed files with 5 additions and 12 deletions

View File

@ -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);
}
}

View File

@ -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)