diff --git a/pcsx2/VU1microInterp.cpp b/pcsx2/VU1microInterp.cpp index 109f35bd22..61bfe1fa8c 100644 --- a/pcsx2/VU1microInterp.cpp +++ b/pcsx2/VU1microInterp.cpp @@ -214,6 +214,8 @@ static void _vu1Exec(VURegs* VU) IPU_LOG("Banana New packet size %x", VU->xgkicksizeremaining); } u32 transfersize = std::min(VU->xgkicksizeremaining / 0x10, (VU1.cycle - VU->xgkicklastcycle) / 2); + transfersize = std::min(transfersize, VU->xgkickdiff / 0x10); + if (transfersize) { IPU_LOG("Banana Transferring %x bytes from %x size left %x", transfersize * 0x10, VU->xgkickaddr, VU->xgkicksizeremaining); diff --git a/pcsx2/VUmicro.cpp b/pcsx2/VUmicro.cpp index 1346cb56d5..657b635ff8 100644 --- a/pcsx2/VUmicro.cpp +++ b/pcsx2/VUmicro.cpp @@ -48,6 +48,8 @@ void BaseVUmicroCPU::ExecuteBlock(bool startUp) IPU_LOG("Banana New packet size %x", VU1.xgkicksizeremaining); } u32 transfersize = std::min(VU1.xgkicksizeremaining / 0x10, (cpuRegs.cycle - VU1.xgkicklastcycle) / 2); + transfersize = std::min(transfersize, VU1.xgkickdiff / 0x10); + if (transfersize) { IPU_LOG("Banana Transferring %x bytes from %x size left %x", transfersize * 0x10, VU1.xgkickaddr, VU1.xgkicksizeremaining);