GPU: Implement FIFO and timings
This will cause a slight performance loss. I've left some knobs in which can be tweaked to mitigate this, but the goal is to be compatible with all games which require them.
This commit is contained in:
@ -259,14 +259,6 @@ void DMA::TransferChannel(Channel channel)
|
||||
if (word_count > 0)
|
||||
TransferMemoryToDevice(channel, (current_address + sizeof(header)) & ADDRESS_MASK, 4, word_count);
|
||||
|
||||
// Self-referencing DMA loops.. not sure how these are happening?
|
||||
if (current_address == next_address)
|
||||
{
|
||||
Log_ErrorPrintf("HACK: Aborting self-referencing DMA loop @ 0x%08X. Something went wrong to generate this.",
|
||||
current_address);
|
||||
break;
|
||||
}
|
||||
|
||||
current_address = next_address;
|
||||
if (current_address & UINT32_C(0x800000))
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user