summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/CommandProcessor.cpp
diff options
context:
space:
mode:
authorMarcos Vitali <marcosvitali@gmail.com>2010-12-03 04:58:28 +0000
committerMarcos Vitali <marcosvitali@gmail.com>2010-12-03 04:58:28 +0000
commitad8248cedd737c6adbb79a6a7ac052c669882686 (patch)
tree3f4caf8b7d071bbfd4491b6bb53936c10d6de9d3 /Source/Core/VideoCommon/Src/CommandProcessor.cpp
parent9f6dd239b62078a70f3c472cc2cae6c287781b8c (diff)
The STATUS_REGISTER should return the actual status HI (Overflow) and LO (underflow) watermark because this register can be polled by the game.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6508 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/VideoCommon/Src/CommandProcessor.cpp')
-rw-r--r--Source/Core/VideoCommon/Src/CommandProcessor.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/Source/Core/VideoCommon/Src/CommandProcessor.cpp b/Source/Core/VideoCommon/Src/CommandProcessor.cpp
index cc683a362a..a835dc4b53 100644
--- a/Source/Core/VideoCommon/Src/CommandProcessor.cpp
+++ b/Source/Core/VideoCommon/Src/CommandProcessor.cpp
@@ -185,8 +185,9 @@ void Read16(u16& _rReturnValue, const u32 _Address)
m_CPStatusReg.Breakpoint = fifo.bFF_Breakpoint;
m_CPStatusReg.ReadIdle = !fifo.CPReadWriteDistance || !fifo.bFF_GPReadEnable;
m_CPStatusReg.CommandIdle = fifo.CPCmdIdle;
- m_CPStatusReg.UnderflowLoWatermark = fifo.CPReadIdle;
-
+ m_CPStatusReg.UnderflowLoWatermark = (fifo.CPReadWriteDistance <= fifo.CPLoWatermark);
+ m_CPStatusReg.OverflowHiWatermark = (fifo.CPReadWriteDistance >= fifo.CPHiWatermark);
+
// hack: CPU will always believe fifo is empty and on idle
//m_CPStatusReg.ReadIdle = 1;
//m_CPStatusReg.CommandIdle = 1;