mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-04 22:19:02 +00:00
PPU breakpoints resurrected
Now with zero overhead
This commit is contained in:
parent
8262d56574
commit
b20d7ff48c
3 changed files with 54 additions and 3 deletions
|
|
@ -13,14 +13,18 @@
|
|||
#include "Emu/Cell/PPUDisAsm.h"
|
||||
#include "Emu/Cell/SPUDisAsm.h"
|
||||
#include "Emu/PSP2/ARMv7DisAsm.h"
|
||||
#include "Emu/Cell/PPUInterpreter.h"
|
||||
|
||||
#include "InstructionEditor.h"
|
||||
#include "RegisterEditor.h"
|
||||
|
||||
//static const int show_lines = 30;
|
||||
#include <map>
|
||||
|
||||
std::map<u32, bool> g_breakpoints;
|
||||
|
||||
extern void ppu_breakpoint(u32 addr);
|
||||
|
||||
u32 InterpreterDisAsmFrame::GetPc() const
|
||||
{
|
||||
const auto cpu = this->cpu.lock();
|
||||
|
|
@ -159,6 +163,11 @@ void InterpreterDisAsmFrame::UpdateUI()
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Emu.IsStopped())
|
||||
{
|
||||
g_breakpoints.clear();
|
||||
}
|
||||
}
|
||||
|
||||
void InterpreterDisAsmFrame::UpdateUnitList()
|
||||
|
|
@ -516,9 +525,11 @@ bool InterpreterDisAsmFrame::IsBreakPoint(u32 pc)
|
|||
void InterpreterDisAsmFrame::AddBreakPoint(u32 pc)
|
||||
{
|
||||
g_breakpoints.emplace(pc, false);
|
||||
ppu_breakpoint(pc);
|
||||
}
|
||||
|
||||
bool InterpreterDisAsmFrame::RemoveBreakPoint(u32 pc)
|
||||
void InterpreterDisAsmFrame::RemoveBreakPoint(u32 pc)
|
||||
{
|
||||
return g_breakpoints.erase(pc) != 0;
|
||||
g_breakpoints.erase(pc);
|
||||
ppu_breakpoint(pc);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue