From 24eafcb342b1620733224f75df4e0dacabb8fc4a Mon Sep 17 00:00:00 2001 From: Marcos Vitali Date: Wed, 29 Dec 2010 07:12:37 +0000 Subject: [PATCH] More FIFO work. This is an Experimental commit, Fixed "Monopoly Wii" ("FIFOs linked but out of sync" problem in this game) Re-sync the FIFO again when this is in immediate mode. Copy CP register values to PI register. Now this games is booting and ingame :) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6682 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/VideoCommon/Src/CommandProcessor.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/Core/VideoCommon/Src/CommandProcessor.cpp b/Source/Core/VideoCommon/Src/CommandProcessor.cpp index 0adbf42b9b..a700ef76ba 100644 --- a/Source/Core/VideoCommon/Src/CommandProcessor.cpp +++ b/Source/Core/VideoCommon/Src/CommandProcessor.cpp @@ -461,6 +461,12 @@ void Write16(const u16 _Value, const u32 _Address) fifo.bFF_HiWatermarkInt = tmpCtrl.FifoOverflowIntEnable; fifo.bFF_LoWatermarkInt = tmpCtrl.FifoUnderflowIntEnable; + if(tmpCtrl.GPReadEnable && tmpCtrl.GPLinkEnable) + { + *(g_VideoInitialize.Fifo_CPUWritePointer) = fifo.CPWritePointer; + *(g_VideoInitialize.Fifo_CPUBase) = fifo.CPBase; + *(g_VideoInitialize.Fifo_CPUEnd) = fifo.CPEnd; + } // If overflown happens process the fifo to LoWatemark if (bProcessFifoToLoWatemark) ProcessFifoToLoWatemark();