Lameguy64 Banner
PSn00bDEBUG - Lameguy64's Website
PSn00bDEBUG Logo

The only open source on-hardware debugger for the PS1!

This is a PlayStation debuger tool that's been in the works since June of 2018, when it started out as an experiment with exception vectors and cop0 debug registers. There is nothing else like this in the homebrew scene that I'm aware of, outside of emulators having debug facilities such as no$psx as this debugger works on real hardware. For years, the only way to accomplish this was by obtaining a development unit, and my DTL-H2000 hasn't received much use in a very long time thanks to this debugger, and that it can debug programs made with PSn00bSDK which is not possible on the DTL-H2000.

Its a shame this project is a little less known than PSn00bSDK, though someday this debugger will greatly compliment PSn00bSDK.

Notable Features

Limitations

The most obvious limitation of PSn00bDEBUG is the interfae can get sluggish at updating, especially with interval update due to communications between the host and target being constrined to the speeds of the serial interface. I have plans to make this debugger work with faster interfaces, such as Commslink and I even designed my own parallel port adapter for it. I chose Commslink because it offers full 8-bit out 8-bit in communications, instead of the 8-bit in, 3-bit out scheme on Xplorer cartridges.

Another limitation of this debugger is that there cannot be multiple data access breakpoints, and I don't know of any method that would allow it without having some kind of address monitor between the CPU and memory chips on the PS1, which the DTL-H2000 probably has that would allow for such a thing, or crippling speed by having exceptions occur on any memory access in the user address space.

Multiple program breakpoints would also be a feature I'd want to implement, but the last time I tried implementing such a thing that consisted of patching in break opcodes turned out to be a failure, as the CPU kept getting a break opcode when trying to resume execution despite it being patched out with an uncached segment. Likely a cache thing going on but I'm not sure if calling FlushCache() after patching it out would solve that problem.

Get PSn00bDEBUG

Github repo This is the recommended repository for obtain PSn00bDEBUG in source or binary form. If you have a Github account, you can fork off of this if you want to post your own modifications yourself, which may be merged into the main repo if such changes are decent enough to warrant merging in.
SVN repo This is the self-hosted repository of PSn00bDEBUG that I update most regularly. Often you'd find the version here to be newer than the Github release, but beware that it might be pretty buggy especially in the midst of new features/fixes being implemented.

Remember to login to the SVN as annoyingmous just like the FTP. It is also not advisable to work off of this codebase as you won't be able to commit changes upstream easily and that I don't share credentials nor create accounts to randos on the Internet.
Psn00bdebug - Lameguy64's Website