tremble upon the NDMA implementation

that doesn't do much beyond getting stuck
This commit is contained in:
Arisotura
2019-06-18 22:54:07 +02:00
parent 841122bc51
commit d6bbc6f0f1
7 changed files with 556 additions and 9 deletions

View File

@ -827,6 +827,7 @@ u32 RunFrame()
if (!(CPUStop & 0x80000000)) DMAs[1]->Run();
if (!(CPUStop & 0x80000000)) DMAs[2]->Run();
if (!(CPUStop & 0x80000000)) DMAs[3]->Run();
DSi::RunNDMAs(0);
}
else
{
@ -849,6 +850,7 @@ u32 RunFrame()
DMAs[5]->Run();
DMAs[6]->Run();
DMAs[7]->Run();
DSi::RunNDMAs(1);
}
else
{
@ -1153,6 +1155,7 @@ void GXFIFOStall()
DMAs[1]->StallIfRunning();
DMAs[2]->StallIfRunning();
DMAs[3]->StallIfRunning();
DSi::StallNDMAs();
}
}
@ -1367,6 +1370,7 @@ bool DMAsRunning(u32 cpu)
if (DMAs[cpu+1]->IsRunning()) return true;
if (DMAs[cpu+2]->IsRunning()) return true;
if (DMAs[cpu+3]->IsRunning()) return true;
if (DSi::NDMAsRunning(cpu>>2)) return true;
return false;
}