From 92ef4f115638a677f2e6a1f2baff6da537b82a19 Mon Sep 17 00:00:00 2001 From: ayuanx Date: Sat, 2 Jan 2010 05:15:36 +0000 Subject: 1. Fixed the freeze issue in "Super Mario Galaxy" and other games, which was introduced since r4762 2. Fixed Issue 1909 Multi-Nunchuck control problem 3. Updated SYSCONF, which should enable games that require MotionPlus, such as "Wii Sports Resort" git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4773 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/VideoCommon/Src/CommandProcessor.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Source/Core/VideoCommon/Src/CommandProcessor.cpp') diff --git a/Source/Core/VideoCommon/Src/CommandProcessor.cpp b/Source/Core/VideoCommon/Src/CommandProcessor.cpp index e966b5ffcc..ba9a75ed7a 100644 --- a/Source/Core/VideoCommon/Src/CommandProcessor.cpp +++ b/Source/Core/VideoCommon/Src/CommandProcessor.cpp @@ -158,6 +158,7 @@ void Init() memset(&fifo,0,sizeof(fifo)); fifo.CPCmdIdle = 1 ; fifo.CPReadIdle = 1; + fifo.bFF_Breakpoint = 1; s_fifoIdleEvent.Init(); @@ -564,7 +565,7 @@ bool AllowIdleSkipping() // if not then lock CPUThread until GP finish a frame. void WaitForFrameFinish() { - while ((fake_GPWatchdogLastToken == fifo.Fake_GPWDToken) && fifo.bFF_GPReadEnable && fifo.CPReadWriteDistance && !fifo.bFF_Breakpoint) + while ((fake_GPWatchdogLastToken == fifo.Fake_GPWDToken) && fifo.bFF_GPReadEnable && ((!fifo.bFF_BPEnable && fifo.CPReadWriteDistance) || (fifo.bFF_BPEnable && !fifo.bFF_Breakpoint))); s_fifoIdleEvent.MsgWait(); fake_GPWatchdogLastToken = fifo.Fake_GPWDToken; @@ -605,7 +606,7 @@ void STACKALIGN GatherPipeBursted() // - CPU can write to fifo // - disable Underflow interrupt - INFO_LOG(COMMANDPROCESSOR, "(GatherPipeBursted): CPHiWatermark reached, 0x%04X, 0x%04X", fifo.CPReadWriteDistance, fifo.CPLoWatermark); + INFO_LOG(COMMANDPROCESSOR, "(GatherPipeBursted): CPHiWatermark (Hi: 0x%04x, Lo: 0x%04x) reached (RWDistance: 0x%04x)", fifo.CPHiWatermark, fifo.CPLoWatermark, fifo.CPReadWriteDistance); // Wait for GPU to catch up while (fifo.CPReadWriteDistance > fifo.CPLoWatermark && !fifo.bFF_Breakpoint) s_fifoIdleEvent.MsgWait(); -- cgit v1.2.3