mirror of
https://github.com/ARMSX2/ARMSX2.git
synced 2026-08-24 16:50:16 -07:00
VU Int: Some formatting/logging cleanup, optimise some variable placement
This commit is contained in:
+12
-10
@@ -41,18 +41,24 @@ void BaseVUmicroCPU::ExecuteBlock(bool startUp)
|
||||
{
|
||||
if (VU1.xgkicksizeremaining == 0)
|
||||
{
|
||||
IPU_LOG("Banana Reading next packet from %x", VU1.xgkickaddr);
|
||||
u32 size = gifUnit.GetGSPacketSize(GIF_PATH_1, VU1.Mem, VU1.xgkickaddr);
|
||||
VU1.xgkicksizeremaining = size & 0xFFFF;
|
||||
VU1.xgkickendpacket = size >> 31;
|
||||
IPU_LOG("Banana New packet size %x", VU1.xgkicksizeremaining);
|
||||
VUM_LOG("XGKICK New packet size %x", VU1.xgkicksizeremaining);
|
||||
|
||||
if (VU1.xgkicksizeremaining == 0)
|
||||
{
|
||||
VUM_LOG("Invalid GS packet size returned, cancelling XGKick");
|
||||
VU1.xgkickenable = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
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);
|
||||
VUM_LOG("XGKICK Transferring %x bytes from %x size left %x", transfersize * 0x10, VU1.xgkickaddr, VU1.xgkicksizeremaining);
|
||||
if ((transfersize * 0x10) > VU1.xgkicksizeremaining)
|
||||
gifUnit.gifPath[GIF_PATH_1].CopyGSPacketData(&VU1.Mem[VU1.xgkickaddr], transfersize * 0x10, true);
|
||||
else
|
||||
@@ -61,20 +67,16 @@ void BaseVUmicroCPU::ExecuteBlock(bool startUp)
|
||||
VU1.xgkickaddr = (VU1.xgkickaddr + (transfersize * 0x10)) & 0x3FFF;
|
||||
VU1.xgkicksizeremaining -= (transfersize * 0x10);
|
||||
VU1.xgkickdiff = 0x4000 - VU1.xgkickaddr;
|
||||
IPU_LOG("Banana next addr %x left size %x EOP %d", VU1.xgkickaddr, VU1.xgkicksizeremaining, VU1.xgkickendpacket);
|
||||
VU1.xgkicklastcycle += std::max(transfersize * 2, 2U);
|
||||
|
||||
if (VU1.xgkicksizeremaining || !VU1.xgkickendpacket)
|
||||
VU1.xgkickenable = 1;
|
||||
VUM_LOG("XGKICK next addr %x left size %x", VU1.xgkickaddr, VU1.xgkicksizeremaining);
|
||||
else
|
||||
{
|
||||
|
||||
VU1.xgkickenable = 0;
|
||||
IPU_LOG("Banana transfer finished");
|
||||
VU1.xgkickenable = false;
|
||||
VUM_LOG("XGKICK transfer finished");
|
||||
}
|
||||
}
|
||||
else
|
||||
VU1.xgkickenable = 1;
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user