- FIX RE0 GFX fifo errors :D

- This game read the CPRead pointer when the GP is processing data and after detach the fifo  and attach again an use this pointer for continue, so implement fifo.SafeCPReadPointer pointer.
- fifo.SafeCPReadPointer is updated when (FAKE_GetFifoEndPtr() - g_pVideoData) == 0) to have a pointer without GFX Commands Cut in the beginning of 32 block.
- Reset video buffer when the CPReadWriteDistance is written by the software.
- This commit is experimental please test a lot your games.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7165 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Marcos Vitali
2011-02-13 15:08:37 +00:00
parent c30859dae0
commit be193088ca
3 changed files with 16 additions and 6 deletions

View File

@ -169,7 +169,8 @@ void Fifo_EnterLoop()
Common::AtomicStore(_fifo.CPReadPointer, readPtr);
Common::AtomicAdd(_fifo.CPReadWriteDistance, -distToSend);
if((FAKE_GetFifoEndPtr() - g_pVideoData) == 0)
Common::AtomicStore(_fifo.SafeCPReadPointer, _fifo.CPReadPointer);
CommandProcessor::SetStatus();
// This call is pretty important in DualCore mode and must be called in the FIFO Loop.