mirror of https://github.com/PCSX2/pcsx2.git
DMA: Fix for FFXII in r5915. Apparently it tries to use an invalid DMA mode, so we shall assume they meant "chain" mode.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5917 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
b460019846
commit
3f2f799248
|
@ -267,6 +267,12 @@ static __ri void DmaExec( void (*func)(), u32 mem, u32 value )
|
||||||
|
|
||||||
reg.chcr.set(value);
|
reg.chcr.set(value);
|
||||||
|
|
||||||
|
//Final Fantasy XII sets the DMA Mode to 3 which doesn't exist. On some channels (like SPR) this will break logic completely. so lets assume they mean chain.
|
||||||
|
if (reg.chcr.MOD == 0x3)
|
||||||
|
{
|
||||||
|
DevCon.Warning(L"%s CHCR.MOD set to 3, assuming 1 (chain)", ChcrName(mem));
|
||||||
|
reg.chcr.MOD = 0x1;
|
||||||
|
}
|
||||||
if (reg.chcr.STR && dmacRegs.ctrl.DMAE && !psHu8(DMAC_ENABLER+2))
|
if (reg.chcr.STR && dmacRegs.ctrl.DMAE && !psHu8(DMAC_ENABLER+2))
|
||||||
{
|
{
|
||||||
func();
|
func();
|
||||||
|
|
Loading…
Reference in New Issue