mirror of https://github.com/PCSX2/pcsx2.git
GIF: Slight modification to earlier's work, curPath might not have been set right if no APATH at start.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5226 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
407c8072f7
commit
8b2ee14b04
|
@ -543,9 +543,9 @@ struct Gif_Unit {
|
||||||
int Execute() {
|
int Execute() {
|
||||||
if (!CanDoGif()) { DevCon.Error("Gif Unit - Signal or PSE Set or Dir = GS to EE"); return 0; }
|
if (!CanDoGif()) { DevCon.Error("Gif Unit - Signal or PSE Set or Dir = GS to EE"); return 0; }
|
||||||
bool didPath3 = false;
|
bool didPath3 = false;
|
||||||
int curPath = stat.APATH-1;
|
int curPath = stat.APATH > 0 ? stat.APATH-1 : 0; //Init to zero if no path is already set.
|
||||||
stat.OPH = 1;
|
stat.OPH = 1;
|
||||||
gifPath[curPath].dmaRewind = 0;
|
|
||||||
for(;;) {
|
for(;;) {
|
||||||
if (stat.APATH) { // Some Transfer is happening
|
if (stat.APATH) { // Some Transfer is happening
|
||||||
Gif_Path& path = gifPath[stat.APATH-1];
|
Gif_Path& path = gifPath[stat.APATH-1];
|
||||||
|
@ -579,10 +579,10 @@ struct Gif_Unit {
|
||||||
//DevCon.WriteLn("Adding GS Packet for path %d", stat.APATH);
|
//DevCon.WriteLn("Adding GS Packet for path %d", stat.APATH);
|
||||||
AddCompletedGSPacket(gsPack, (GIF_PATH)(stat.APATH-1));
|
AddCompletedGSPacket(gsPack, (GIF_PATH)(stat.APATH-1));
|
||||||
}
|
}
|
||||||
if (!gsSIGNAL.queued && !gifPath[0].isDone()) { stat.APATH = 1; stat.P1Q = 0; }
|
if (!gsSIGNAL.queued && !gifPath[0].isDone()) { stat.APATH = 1; stat.P1Q = 0; gifPath[0].dmaRewind = 0; curPath = 0; }
|
||||||
elif (!gsSIGNAL.queued && !gifPath[1].isDone()) { stat.APATH = 2; stat.P2Q = 0; }
|
elif (!gsSIGNAL.queued && !gifPath[1].isDone()) { stat.APATH = 2; stat.P2Q = 0; gifPath[1].dmaRewind = 0; curPath = 1; }
|
||||||
elif (!gsSIGNAL.queued && !gifPath[2].isDone() && !Path3Masked() /*&& !stat.P2Q*/)
|
elif (!gsSIGNAL.queued && !gifPath[2].isDone() && !Path3Masked() /*&& !stat.P2Q*/)
|
||||||
{ stat.APATH = 3; stat.P3Q = 0; stat.IP3 = 0; }
|
{ stat.APATH = 3; stat.P3Q = 0; stat.IP3 = 0; gifPath[2].dmaRewind = 0; curPath = 2; }
|
||||||
else { stat.APATH = 0; stat.OPH = 0; break; }
|
else { stat.APATH = 0; stat.OPH = 0; break; }
|
||||||
}
|
}
|
||||||
Gif_FinishIRQ();
|
Gif_FinishIRQ();
|
||||||
|
|
Loading…
Reference in New Issue