Added proper support for stepping in VU0 microprograms.

This commit is contained in:
Jean-Philip Desjardins 2014-12-29 19:45:53 -05:00
parent c1e38550fb
commit b24364f3d4
3 changed files with 9 additions and 1 deletions

View File

@ -162,6 +162,13 @@ void CPS2VM::StepIop()
m_mailBox.SendCall(std::bind(&CPS2VM::ResumeImpl, this), true);
}
void CPS2VM::StepVu0()
{
if(GetStatus() == RUNNING) return;
m_singleStepVu0 = true;
m_mailBox.SendCall(std::bind(&CPS2VM::ResumeImpl, this), true);
}
void CPS2VM::StepVu1()
{
if(GetStatus() == RUNNING) return;

View File

@ -48,6 +48,7 @@ public:
void StepEe();
void StepIop();
void StepVu0();
void StepVu1();
void Resume();

View File

@ -71,7 +71,7 @@ CDebugger::CDebugger(CPS2VM& virtualMachine)
m_pView[DEBUGVIEW_EE] = new CDebugView(m_pMDIClient->m_hWnd, m_virtualMachine, &m_virtualMachine.m_ee->m_EE,
std::bind(&CPS2VM::StepEe, &m_virtualMachine), m_virtualMachine.m_ee->m_os, "EmotionEngine");
m_pView[DEBUGVIEW_VU0] = new CDebugView(m_pMDIClient->m_hWnd, m_virtualMachine, &m_virtualMachine.m_ee->m_VU0,
std::bind(&CPS2VM::StepEe, &m_virtualMachine), nullptr, "Vector Unit 0", CDisAsmWnd::DISASM_VU);
std::bind(&CPS2VM::StepVu0, &m_virtualMachine), nullptr, "Vector Unit 0", CDisAsmWnd::DISASM_VU);
m_pView[DEBUGVIEW_VU1] = new CDebugView(m_pMDIClient->m_hWnd, m_virtualMachine, &m_virtualMachine.m_ee->m_VU1,
std::bind(&CPS2VM::StepVu1, &m_virtualMachine), nullptr, "Vector Unit 1", CDisAsmWnd::DISASM_VU);
m_pView[DEBUGVIEW_IOP] = new CDebugView(m_pMDIClient->m_hWnd, m_virtualMachine, &m_virtualMachine.m_iop->m_cpu,