Exemplo n.º 1
0
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);
	}
}
Exemplo n.º 2
0
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);
	}
}