mirror of https://github.com/PCSX2/pcsx2.git
Vif/Gif: Hack for Hotwheels World Race, should be pretty harmless at it's very rare conditions.
(Note: Game runs better on ZeroGS than GSDX) git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4889 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
915d2cc3a1
commit
c355393b5b
|
@ -576,10 +576,10 @@ struct Gif_Unit {
|
|||
// DirectHL
|
||||
bool CanDoPath2HL() { return (stat.APATH == 0 || stat.APATH == 2)
|
||||
&& (CanDoGif() == 1); }
|
||||
// Gif DMA
|
||||
// Gif DMA - gifch.qwc <= 1 is a hack for Hot Wheels, shouldnt cause much trouble (if any):S
|
||||
bool CanDoPath3() { return((stat.APATH == 0 && !Path3Masked())
|
||||
|| stat.APATH == 3)
|
||||
&& (CanDoGif() == 1); }
|
||||
&& (CanDoGif() == 1 || gifch.qwc <= 1); }
|
||||
|
||||
bool CanDoP3Slice() { return stat.IMT == 1 && gifPath[GIF_PATH_3].state == GIF_PATH_IMAGE; }
|
||||
bool CanDoGif() { return stat.PSE == 0 && stat.DIR == 0 && gsSIGNAL.queued == 0; }
|
||||
|
|
|
@ -260,7 +260,12 @@ __fi void vif1STAT(u32 value) {
|
|||
if ((vif1Regs.stat.FDR) ^ ((tVIF_STAT&)value).FDR) {
|
||||
// different so can't be stalled
|
||||
if (vif1Regs.stat.test(VIF1_STAT_INT | VIF1_STAT_VSS | VIF1_STAT_VIS | VIF1_STAT_VFS)) {
|
||||
DevCon.WriteLn("changing dir when vif1 fifo stalled");
|
||||
DevCon.WriteLn("changing dir when vif1 fifo stalled done = %x qwc = %x", vif1.done, vif1ch.qwc);
|
||||
|
||||
//Hack!! Hotwheels seems to leave 1QW in the fifo and expect the DMA to be ready for a reverse FIFO
|
||||
//There's no important data in there so for it to work, we will just end it.
|
||||
vif1ch.chcr.STR = false;
|
||||
//This is actually more important for our handling, else the DMA for reverse fifo doesnt start properly.
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue