mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-11-14 10:10:12 +01:00
DMA: Disallow MADR/QWC/TADR writes while the DMA is busy, solves the Mana Khemia voodooness
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4061 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
1 parent
5da2f7cecd
commit
d5e60af439
1 file changed
+10
@@ -413,6 +413,16 @@ __fi bool dmacWrite32( u32 mem, mem32_t& value )
|
||||
}
|
||||
}
|
||||
|
||||
//DMA Writes are invalid to everything except the STR on CHCR when it is busy
|
||||
if((mem & 0xf0))
|
||||
{
|
||||
if((psHu32(mem & ~0xff) & 0x100) && dmacRegs.ctrl.DMAE && !psHu8(DMAC_ENABLER+2))
|
||||
{
|
||||
DevCon.Warning("Write to DMA addr %x while STR is busy! Ignoring", mem);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// fall-through: use the default writeback provided by caller.
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user