VU Int: Fix XGKick wrapping

This commit is contained in:
refractionpcsx2 2021-09-04 02:05:52 +01:00
parent 067faccdd2
commit 3bad60ce84
2 changed files with 4 additions and 0 deletions

View File

@ -214,6 +214,8 @@ static void _vu1Exec(VURegs* VU)
IPU_LOG("Banana New packet size %x", VU->xgkicksizeremaining); IPU_LOG("Banana New packet size %x", VU->xgkicksizeremaining);
} }
u32 transfersize = std::min(VU->xgkicksizeremaining / 0x10, (VU1.cycle - VU->xgkicklastcycle) / 2); u32 transfersize = std::min(VU->xgkicksizeremaining / 0x10, (VU1.cycle - VU->xgkicklastcycle) / 2);
transfersize = std::min(transfersize, VU->xgkickdiff / 0x10);
if (transfersize) if (transfersize)
{ {
IPU_LOG("Banana Transferring %x bytes from %x size left %x", transfersize * 0x10, VU->xgkickaddr, VU->xgkicksizeremaining); IPU_LOG("Banana Transferring %x bytes from %x size left %x", transfersize * 0x10, VU->xgkickaddr, VU->xgkicksizeremaining);

View File

@ -48,6 +48,8 @@ void BaseVUmicroCPU::ExecuteBlock(bool startUp)
IPU_LOG("Banana New packet size %x", VU1.xgkicksizeremaining); IPU_LOG("Banana New packet size %x", VU1.xgkicksizeremaining);
} }
u32 transfersize = std::min(VU1.xgkicksizeremaining / 0x10, (cpuRegs.cycle - VU1.xgkicklastcycle) / 2); u32 transfersize = std::min(VU1.xgkicksizeremaining / 0x10, (cpuRegs.cycle - VU1.xgkicklastcycle) / 2);
transfersize = std::min(transfersize, VU1.xgkickdiff / 0x10);
if (transfersize) if (transfersize)
{ {
IPU_LOG("Banana Transferring %x bytes from %x size left %x", transfersize * 0x10, VU1.xgkickaddr, VU1.xgkicksizeremaining); IPU_LOG("Banana Transferring %x bytes from %x size left %x", transfersize * 0x10, VU1.xgkickaddr, VU1.xgkicksizeremaining);