summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/CommandProcessor.cpp
diff options
context:
space:
mode:
authorayuanx <ayuanx@gmail.com>2010-06-15 10:58:14 +0000
committerayuanx <ayuanx@gmail.com>2010-06-15 10:58:14 +0000
commit105f64359a0594dd74144c10c0890a6fd33451ba (patch)
treebcf1ad9d5aee939029ee5c6d8ae525b6b1be8ac2 /Source/Core/VideoCommon/Src/CommandProcessor.cpp
parent64299206d19938f74caaa5a0a0e1df571c376502 (diff)
Games like "Star Fox Adventures" which were enabled in r5681 are now InGame, though the watermark slows the emulator a bit.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5706 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/VideoCommon/Src/CommandProcessor.cpp')
-rw-r--r--Source/Core/VideoCommon/Src/CommandProcessor.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/Source/Core/VideoCommon/Src/CommandProcessor.cpp b/Source/Core/VideoCommon/Src/CommandProcessor.cpp
index 881ee910cd..1072ff1662 100644
--- a/Source/Core/VideoCommon/Src/CommandProcessor.cpp
+++ b/Source/Core/VideoCommon/Src/CommandProcessor.cpp
@@ -177,7 +177,7 @@ void Read16(u16& _rReturnValue, const u32 _Address)
switch (_Address & 0xFFF)
{
case STATUS_REGISTER:
- m_CPStatusReg.Breakpoint = fifo.bFF_Breakpoint && fifo.bFF_BPInt;
+ m_CPStatusReg.Breakpoint = fifo.bFF_Breakpoint;
m_CPStatusReg.ReadIdle = fifo.bFF_Breakpoint || !fifo.CPReadWriteDistance || !fifo.bFF_GPReadEnable;
m_CPStatusReg.CommandIdle = fifo.CPCmdIdle;
m_CPStatusReg.UnderflowLoWatermark = fifo.CPReadIdle;
@@ -186,6 +186,7 @@ void Read16(u16& _rReturnValue, const u32 _Address)
//m_CPStatusReg.ReadIdle = 1;
//m_CPStatusReg.CommandIdle = 1;
+ INFO_LOG(COMMANDPROCESSOR,"\t Read from STATUS_REGISTER : %04x", m_CPStatusReg.Hex);
DEBUG_LOG(COMMANDPROCESSOR, "(r) status: iBP %s | fReadIdle %s | fCmdIdle %s | iOvF %s | iUndF %s"
, m_CPStatusReg.Breakpoint ? "ON" : "OFF"
, m_CPStatusReg.ReadIdle ? "ON" : "OFF"
@@ -391,8 +392,7 @@ void Write16(const u16 _Value, const u32 _Address)
UCPCtrlReg tmpCtrl(_Value);
m_CPCtrlReg.Hex = tmpCtrl.Hex;
- if (!tmpCtrl.BPEnable)
- Common::AtomicStore(fifo.bFF_Breakpoint, false);
+ Common::AtomicStore(fifo.bFF_Breakpoint, false);
if (tmpCtrl.FifoUnderflowIntEnable)
Common::AtomicStore(fifo.CPReadIdle, false);
@@ -406,7 +406,7 @@ void Write16(const u16 _Value, const u32 _Address)
UpdateInterrupts();
- INFO_LOG(COMMANDPROCESSOR,"\t write to CTRL_REGISTER : %04x", _Value);
+ INFO_LOG(COMMANDPROCESSOR,"\t Write to CTRL_REGISTER : %04x", _Value);
DEBUG_LOG(COMMANDPROCESSOR, "\t GPREAD %s | BP %s | Int %s | OvF %s | UndF %s | LINK %s"
, fifo.bFF_GPReadEnable ? "ON" : "OFF"
, fifo.bFF_BPEnable ? "ON" : "OFF"
@@ -498,10 +498,15 @@ void Write16(const u16 _Value, const u32 _Address)
case FIFO_BP_LO:
WriteLow ((u32 &)fifo.CPBreakpoint, _Value);
+// Ayuanx: What if BP is not aligned ...
+// WriteLow ((u32 &)fifo.CPBreakpoint, (_Value + 31) & 0xFFE0);
DEBUG_LOG(COMMANDPROCESSOR,"write to FIFO_BP_LO : %04x", _Value);
break;
case FIFO_BP_HI:
WriteHigh((u32 &)fifo.CPBreakpoint, _Value);
+// Ayuanx: If it is set at the very end, it would never be achieved ...
+// if (fifo.CPBreakpoint == fifo.CPEnd + 32)
+// fifo.CPBreakpoint = fifo.CPBase;
DEBUG_LOG(COMMANDPROCESSOR,"write to FIFO_BP_HI : %04x", _Value);
break;