From 758d5c234d5d55bcc9d21bfea533edf8264d7c88 Mon Sep 17 00:00:00 2001 From: Nolan Check Date: Thu, 23 Jul 2009 22:02:03 +0000 Subject: [PATCH] Corrections to r3875. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3876 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Common/Src/Thread.h | 1 + Source/Core/Core/Src/HW/CommandProcessor.cpp | 3 ++- Source/Core/VideoCommon/Src/Fifo.cpp | 6 +++++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/Core/Common/Src/Thread.h b/Source/Core/Common/Src/Thread.h index b51d4185ca..f341c2d327 100644 --- a/Source/Core/Common/Src/Thread.h +++ b/Source/Core/Common/Src/Thread.h @@ -36,6 +36,7 @@ #else +#include #define THREAD_RETURN void* #include #ifdef _POSIX_THREADS diff --git a/Source/Core/Core/Src/HW/CommandProcessor.cpp b/Source/Core/Core/Src/HW/CommandProcessor.cpp index 6e7493a762..2e3771fee4 100644 --- a/Source/Core/Core/Src/HW/CommandProcessor.cpp +++ b/Source/Core/Core/Src/HW/CommandProcessor.cpp @@ -716,7 +716,8 @@ void UpdateFifoRegister() void UpdateInterrupts() { - if (fifo.bFF_BPEnable && fifo.bFF_Breakpoint) + if (m_CPCtrlReg.CPIntEnable && + (fifo.bFF_BPEnable && fifo.bFF_Breakpoint)) { CPeripheralInterface::SetInterrupt(CPeripheralInterface::INT_CAUSE_CP, true); } diff --git a/Source/Core/VideoCommon/Src/Fifo.cpp b/Source/Core/VideoCommon/Src/Fifo.cpp index 1f7a3488ee..e5211b1730 100644 --- a/Source/Core/VideoCommon/Src/Fifo.cpp +++ b/Source/Core/VideoCommon/Src/Fifo.cpp @@ -136,7 +136,7 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize) { Common::AtomicStore(_fifo.CPReadIdle, 0); - while (_fifo.bFF_GPReadEnable && _fifo.CPReadWriteDistance) + while (_fifo.bFF_GPReadEnable && _fifo.CPReadWriteDistance && !(_fifo.bFF_BPEnable && _fifo.bFF_Breakpoint)) { if(!fifoStateRun) break; @@ -144,6 +144,7 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize) u32 readPtr = _fifo.CPReadPointer; s32 distToSend; +#if 1 // XXX: Put "0" here to always send 32 bytes at a time. // Only send 32 bytes at a time if breakpoint is enabled. if (_fifo.bFF_BPEnable) distToSend = 32; @@ -153,6 +154,9 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize) if ((distToSend + readPtr) >= _fifo.CPEnd) distToSend = _fifo.CPEnd - readPtr; } +#else + distToSend = 32; +#endif u8 *uData = video_initialize.pGetMemoryPointer(readPtr); // Execute new instructions found in uData