mirror of https://github.com/PCSX2/pcsx2.git
Fixed for Looney Tunes menu. Commented some Forcebreak stuff for future reference, removed offending code from Vif0 till i can be bothered to rewrite the DMA to be like Vif1.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2760 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
bd94bc0483
commit
c697f6e6da
|
@ -106,13 +106,14 @@ _f void vif0FBRST(u32 value) {
|
||||||
vif0Regs->stat.clear_flags(VIF0_STAT_FQC | VIF0_STAT_INT | VIF0_STAT_VSS | VIF0_STAT_VIS | VIF0_STAT_VFS | VIF0_STAT_VPS); // FQC=0
|
vif0Regs->stat.clear_flags(VIF0_STAT_FQC | VIF0_STAT_INT | VIF0_STAT_VSS | VIF0_STAT_VIS | VIF0_STAT_VFS | VIF0_STAT_VPS); // FQC=0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Fixme: Forcebreaks are pretty unknown for operation, presumption is it just stops it what its doing
|
||||||
|
usually accompanied by a reset, but if we find a broken game which falls here, we need to see it! (Refraction) */
|
||||||
if (value & 0x2) // Forcebreak Vif,
|
if (value & 0x2) // Forcebreak Vif,
|
||||||
{
|
{
|
||||||
/* I guess we should stop the VIF dma here, but not 100% sure (linuz) */
|
/* I guess we should stop the VIF dma here, but not 100% sure (linuz) */
|
||||||
cpuRegs.interrupt &= ~1; //Stop all vif0 DMA's
|
cpuRegs.interrupt &= ~1; //Stop all vif0 DMA's
|
||||||
vif0Regs->stat.VFS = true;
|
vif0Regs->stat.VFS = true;
|
||||||
vif0Regs->stat.VPS = VPS_IDLE;
|
vif0Regs->stat.VPS = VPS_IDLE;
|
||||||
vif0.vifstalled = true;
|
|
||||||
Console.WriteLn("vif0 force break");
|
Console.WriteLn("vif0 force break");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,13 +180,15 @@ _f void vif1FBRST(u32 value) {
|
||||||
vif1Regs->stat.clear_flags(VIF1_STAT_FDR | VIF1_STAT_INT | VIF1_STAT_VSS | VIF1_STAT_VIS | VIF1_STAT_VFS | VIF1_STAT_VPS);
|
vif1Regs->stat.clear_flags(VIF1_STAT_FDR | VIF1_STAT_INT | VIF1_STAT_VSS | VIF1_STAT_VIS | VIF1_STAT_VFS | VIF1_STAT_VPS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Fixme: Forcebreaks are pretty unknown for operation, presumption is it just stops it what its doing
|
||||||
|
usually accompanied by a reset, but if we find a broken game which falls here, we need to see it! (Refraction) */
|
||||||
|
|
||||||
if (FBRST(value).FBK) // Forcebreak Vif.
|
if (FBRST(value).FBK) // Forcebreak Vif.
|
||||||
{
|
{
|
||||||
/* I guess we should stop the VIF dma here, but not 100% sure (linuz) */
|
/* I guess we should stop the VIF dma here, but not 100% sure (linuz) */
|
||||||
vif1Regs->stat.VFS = true;
|
vif1Regs->stat.VFS = true;
|
||||||
vif1Regs->stat.VPS = VPS_IDLE;
|
vif1Regs->stat.VPS = VPS_IDLE;
|
||||||
cpuRegs.interrupt &= ~((1 << 1) | (1 << 10)); //Stop all vif1 DMA's
|
cpuRegs.interrupt &= ~((1 << 1) | (1 << 10)); //Stop all vif1 DMA's
|
||||||
vif1.vifstalled = true;
|
|
||||||
Console.WriteLn("vif1 force break");
|
Console.WriteLn("vif1 force break");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ void vif0Interrupt()
|
||||||
|
|
||||||
if (!vif0ch->chcr.STR) Console.WriteLn("Vif0 running when CHCR = %x", vif0ch->chcr._u32);
|
if (!vif0ch->chcr.STR) Console.WriteLn("Vif0 running when CHCR = %x", vif0ch->chcr._u32);
|
||||||
|
|
||||||
if ((vif0ch->chcr.MOD == CHAIN_MODE) && (!vif0.done) && (!vif0.vifstalled))
|
if ((vif0ch->chcr.MOD == CHAIN_MODE) && (!vif0.done))
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!(dmacRegs->ctrl.DMAE))
|
if (!(dmacRegs->ctrl.DMAE))
|
||||||
|
|
Loading…
Reference in New Issue