diff options
| author | ayuanx <ayuanx@gmail.com> | 2010-01-02 05:15:36 +0000 |
|---|---|---|
| committer | ayuanx <ayuanx@gmail.com> | 2010-01-02 05:15:36 +0000 |
| commit | 92ef4f115638a677f2e6a1f2baff6da537b82a19 (patch) | |
| tree | 5b0039ffaba99e7155f5d0e12e390de7a4d4859d /Source/Core/VideoCommon/Src/CommandProcessor.cpp | |
| parent | e55c3793b6475e5a2ab9d74f6617e7bb47eb0213 (diff) | |
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
Diffstat (limited to 'Source/Core/VideoCommon/Src/CommandProcessor.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/CommandProcessor.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
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();
|
