Add debugging support of running game on mainly int (interpreter) mode.
$ tree /h/Proj/pcsx2/bin
/h/Proj/pcsx2/bin
├── monitor
│ ├── __init__.py
│ ├── 00000000.py
│ ├── 93F8A60B.py
│ ├── F266B00B.py
│ └── main.py
├── pcsx2.exe
*.py
#!pcsx2pypcsx2.ClearClientClear break points.
pcsx2.WriteLn("")Console.WriteLn(L"%s", pzwOutput);
Write line to pcsx2 debug window.
pcsx2.AddBrk(addr, callable)def bp(addr):
def setbp(funct):
print('Add bp: {0:x}'.format(addr))
pcsx2.AddBrk(addr, funct)
return setbp
@bp(0x002fdfc8)
def S_ASSERT():
print("ASSERT!")
print(read0Str(pcsx2.GetUL0('a0')))Add breakpoint (max 32)
pcsx2.GetUL0(regName)pcsx2.GetUL0('ra')Get lower 32 bits of given register name.
pcsx2.SetUL0(regName, long)pcsx2.SetUL0("a0", 0)Update only lower 32 bits of given register name.
pcsx2.ReadMem(start, length)mem = pcsx2.ReadMem(0, 32*1024*1024)Read EE memory.
long = pcsx2.ReadUI16(addr) u16 *pRd = (u16 *)PSM(off);
return PyLong_FromLong(*pRd);Read 2 bytes from EE memory.
u32 *pRd = (u32 *)PSM(off);
return PyLong_FromLong(*pRd); s16 *pRd = (s16 *)PSM(off);
return PyLong_FromLong(*pRd); s32 *pRd = (s32 *)PSM(off);
return PyLong_FromLong(*pRd); u8 *pRd = (u8 *)PSM(off);
return PyLong_FromLong(*pRd);pcsx2.WriteMem(PyBytes, startIndex, addr, len)Write bytes to EE memory.
pcsx2.WriteByte(addr, value) memWrite8(off, val);Write a byte to EE memory.
memWrite16(off, val); memWrite32(off, val);index = pcsx2.AddRBrk(addr, length, callable)Set memory read break point. Max 32 read break points.
pcsx2.DelRBrk(index)index = pcsx2.AddWBrk(addr, length, callable)Set memory write break point. Max 32 write break points.
pcsx2.DelWBrk(index)Return current pc (program counter) only for int mode.
- True if rec mode.
- False if int mode.
Console.Error(L"%s", pzwOutput);
Console.Warning(L"%s", pzwOutput);
@pcsx2.OnSuspend
def onSuspend():
dump()
print('Suspend')@pcsx2.OnResume
def onResume():
print('Resume')