IPC: Clear X1 when acknowledging a reply

Hardware tests indicate that IOS clears X1 when it acknowledges
an IPC request.
This commit is contained in:
Léo Lam 2018-02-28 17:00:26 +01:00
parent 1a71076e50
commit d029f2a7b6
3 changed files with 7 additions and 0 deletions

View File

@ -211,6 +211,11 @@ static void UpdateInterrupts(u64 userdata, s64 cyclesLate)
!!(ppc_irq_flags & ppc_irq_masks));
}
void ClearX1()
{
ctrl.X1 = 0;
}
void GenerateAck(u32 _Address)
{
ctrl.Y2 = 1;

View File

@ -42,6 +42,7 @@ void DoState(PointerWrap& p);
void RegisterMMIO(MMIO::Mapping* mmio, u32 base);
void ClearX1();
void GenerateAck(u32 _Address);
void GenerateReply(u32 _Address);

View File

@ -629,6 +629,7 @@ void Kernel::UpdateIPC()
if (m_request_queue.size())
{
ClearX1();
GenerateAck(m_request_queue.front());
u32 command = m_request_queue.front();
m_request_queue.pop_front();