summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
diff options
context:
space:
mode:
authorhrydgard <hrydgard@gmail.com>2008-11-24 19:31:49 +0000
committerhrydgard <hrydgard@gmail.com>2008-11-24 19:31:49 +0000
commitb9c6f7cb89179d8ff1c878673bec528295a7605c (patch)
treecdf2c0c7c782f2d8734e96d1bf8bbe4ef61ba17c /Source/Core/VideoCommon
parent0b5fed62c1b92017ce43a87ba223763a75e7fbef (diff)
Hacky fix for weird video hangs in Metroid Prime 1. May think of something better later.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1290 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/VideoCommon')
-rw-r--r--Source/Core/VideoCommon/Src/Fifo.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/Source/Core/VideoCommon/Src/Fifo.cpp b/Source/Core/VideoCommon/Src/Fifo.cpp
index 0773ed3f37..605b0aded4 100644
--- a/Source/Core/VideoCommon/Src/Fifo.cpp
+++ b/Source/Core/VideoCommon/Src/Fifo.cpp
@@ -110,8 +110,14 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize)
Common::InterlockedExchange((int*)&_fifo.CPReadIdle, 0);
#endif
//video_initialize.pLog("RUN...........................",FALSE);
- while(_fifo.bFF_GPReadEnable && (_fifo.CPReadWriteDistance > 0) )
+ int peek_counter = 0;
+ while (_fifo.bFF_GPReadEnable && (_fifo.CPReadWriteDistance > 0))
{
+ peek_counter++;
+ if (peek_counter == 50) {
+ video_initialize.pPeekMessages();
+ peek_counter = 0;
+ }
// read the data and send it to the VideoPlugin
u32 readPtr = _fifo.CPReadPointer;
u8 *uData = video_initialize.pGetMemoryPointer(readPtr);