void SWLoadXFReg(u32 transferSize, u32 baseAddress, u32 *pData) { // do not allow writes past registers if (baseAddress + transferSize > 0x1058) { INFO_LOG(VIDEO, "XF load exceeds address space: %x %d bytes", baseAddress, transferSize); if (baseAddress >= 0x1058) transferSize = 0; else transferSize = 0x1058 - baseAddress; } // write to XF regs if (transferSize > 0) { memcpy((u32*)(&xfmem) + baseAddress, pData, transferSize * 4); XFWritten(transferSize, baseAddress); } }
void SWLoadXFReg(u32 transferSize, u32 baseAddress, u32 *pData) { u32 size = transferSize; // do not allow writes past registers if (baseAddress + transferSize > 0x1058) { INFO_LOG(VIDEO, "xf load exceeds address space: %x %d bytes\n", baseAddress, transferSize); if (baseAddress >= 0x1058) size = 0; else size = 0x1058 - baseAddress; } if (size > 0) { memcpy_gc( &((u32*)&swxfregs)[baseAddress], pData, size * 4); XFWritten(transferSize, baseAddress); } }