diff --git a/pcsx2/x86/newVif_Unpack.cpp b/pcsx2/x86/newVif_Unpack.cpp index 4778d0d1da..5671c00dae 100644 --- a/pcsx2/x86/newVif_Unpack.cpp +++ b/pcsx2/x86/newVif_Unpack.cpp @@ -139,24 +139,12 @@ _vifT int nVifUnpack(const u8* data) { // to read back from it mid-transfer. Since so few games actually use partial transfers // of VIF unpacks, this code should not be any bottleneck. - // We can optimize the calculation either way as some games have big partial chunks (Guitar Hero). - // Skipping writes are easy, filling is a bit more complex, so for now until we can - // be sure its right (if it happens) it just prints debug stuff and processes the old way. if (!isFill) { vifRegs.num -= (size / vSize); } else { - int guessedsize = (size / vSize); - guessedsize = vifRegs.num - (((guessedsize / vifRegs.cycle.cl) * (vifRegs.cycle.wl - vifRegs.cycle.cl)) + guessedsize); - - while (size >= vSize) { - --vifRegs.num; - ++vif.cl; - - if (vif.cl <= vifRegs.cycle.cl) size -= vSize; - else if (vif.cl == vifRegs.cycle.wl) vif.cl = 0; - } - DevCon.Warning("Fill!! Partial num left = %x, guessed %x", vifRegs.num, guessedsize); + int dataSize = (size / vSize); + vifRegs.num = vifRegs.num - (((dataSize / vifRegs.cycle.cl) * (vifRegs.cycle.wl - vifRegs.cycle.cl)) + dataSize); } }