External Resources

Here are some links to other Sony PlayStation documentation and source code that are quite useful.


PSX-SPX is the current gold standard for PlayStation hardware documentation. It contains a wealth of information about the PS1 hardware, although it can at times be rather terse.

PlayStation Emulation Guide is a PDF document by simias that walks a reader through creating a new PlayStation emulator in Rust capable of displaying the Sony PlayStation BIOS boot logo. It unfortunately ends at that point, but it's a good starting reference.

Test Programs

ps1-tests contains many test programs with accompanying source code to ensure that an emulator is functioning properly. Release builds include PSX-EXE files, so you will need side-loading support for EXEs in your emulator, along with kernel hooks to catch stdout writes to print its diagnostic messages.

krom has also written several PlayStation hardware tests for emulator developers. They are distributed in either BIN or EXE format, and include source code.

amidog has a collection of PSX-EXE files as well, and his downloads include more traditional CD-ROM images you can also use if you don't have side-loading support yet. Unfortunately, amidog's test programs are closed source, which makes them much less useful for correcting errors in your emulation.


Lastly, emulator source code can be useful for understanding behaviors when documentation and test programs fail you.

Avocado is by far the nicest source code to read, but it is still young and is missing many hardware edge cases at this time.

ares similarly has highly-readable source code, but it is even younger and more incomplete, much slower, and rather buggy. Still, it's a good starting reference for how one might go about starting a new PS1 emulator.

DuckStation is the fastest PlayStation emulator with still very readable code. An extreme adherence to type-casting rules and an unrelenting focus on performance can sometimes make it the more difficult option to learn from, however.

Mednafen could also be useful in a pinch, but lacks an official online Git repository so you'll have to download it as a tarball or find a third-party mirror. It has the least reader-friendly source code of the bunch, but probably the highest hardware compatibility of all emulators mentioned here.