From 4e1e2b01bae8885ebef21d1abc0fe0b4d4d57918 Mon Sep 17 00:00:00 2001 From: ramapcsx2 Date: Sun, 20 Sep 2009 13:59:13 +0000 Subject: [PATCH] Took out the optimizations in gifTransferDummy. They broke games still (so3, same stuff as arc the lad earlier). With this simplified version all the problematic games found so far work. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1893 96395faa-99c1-11dd-bbfe-3dabce05a288 --- pcsx2/MTGS.cpp | 46 +++++++++++++--------------------------------- 1 file changed, 13 insertions(+), 33 deletions(-) diff --git a/pcsx2/MTGS.cpp b/pcsx2/MTGS.cpp index 311467b61a..737263928a 100644 --- a/pcsx2/MTGS.cpp +++ b/pcsx2/MTGS.cpp @@ -295,42 +295,22 @@ __forceinline int mtgsThreadObject::_gifTransferDummy(GIF_PATH pathidx, const u8 switch(path.tag.FLG) { case GIF_FLG_PACKED: path.PrepPackedRegs(); - if((path.numregs * path.nloop) < (size-1)) { - //optPrint((path.numregs*path.nloop), 500); - u32 temp1 = (path.numregs - path.curreg); - u32 temp2 = (path.numregs * subVal(path.nloop, 1)); - u32 temp3 = temp1 + temp2; - incTag((temp3*16), temp3); - path.nloop = 0; - } - else { - do { - if (path.GetReg() == 0xe) { - gsHandler(pMem); - } - incTag(16, 1); - } while(path.StepReg() && size > 0); - } - break; + do { + if (path.GetReg() == 0xe) { + gsHandler(pMem); + } + incTag(16, 1); + } while(path.StepReg() && size > 0); + break; case GIF_FLG_REGLIST: { - u32 numregs = (((path.tag.NREG-1)&0xf)+2)/2; - if((numregs * path.nloop) < (size-1)) { - //optPrint((numregs*path.nloop), 500); - u32 temp1 = (numregs - (((path.curreg&0xf)+1)/2)); - u32 temp2 = (numregs * subVal(path.nloop, 1)); - u32 temp3 = temp1 + temp2; - incTag((temp3*16), temp3); - path.nloop = 0; - } - else { - size *= 2; - do { incTag(8, 1); } - while(path.StepReg() && size > 0); + size *= 2; - if (size & 1) { incTag(8, 1); } - size /= 2; - } + do { incTag(8, 1); } + while(path.StepReg() && size > 0); + + if (size & 1) { incTag(8, 1); } + size /= 2; } break; case GIF_FLG_IMAGE: