Lameguy64 / PSn00bSDK

The most powerful open source SDK for the PS1 (as far as open source PS1 SDKs go). Not recommended for beginner use.
Other
854 stars 68 forks source link

PSn00bSDK

PSn00bSDK is an open source homebrew software development kit for the original Sony PlayStation, consisting of a C/C++ compiler toolchain and a set of libraries that provide a layer of abstraction over the raw hardware in order to make game and app development easier. A CMake-based build system, CD-ROM image packing tool (mkpsxiso) and asset conversion utilities are also provided.

At the heart of PSn00bSDK is libpsn00b, a set of libraries that implements most of the core functionality of the official Sony SDK (excluding higher-level libraries) plus several new extensions to it. Most of the basic APIs commonly used by homebrew apps and games built with the official SDK are available, making PSn00bSDK a good starting point for those who have an existing codebase but want to move away from Sony tools.

Currently supported features include:

Note that, while PSn00bSDK's API is to some extent compatible with the official SDK's, the project is not meant to be a drop-in replacement for it, both since reimplementing the entire SDK would be a major undertaking and because many parts of it are inefficient, clunky and/or provide relatively little value.

Obtaining PSn00bSDK

Prebuilt PSn00bSDK packages for Windows and Linux are available on the releases page and include the libraries, a copy of the GCC MIPS toolchain, command-line tools, examples and documentation. CMake is not included and must be installed separately, either from its website or via MSys2 or your distro's package manager.

The releases can be installed by simply extracting the archives into any directory and adding the bin subfolder to the PATH environment variable. share/psn00bsdk/template contains a barebones example project that can be used as a starting point.

For more information on how to get started, or if you wish to build the SDK yourself from source instead, refer to installation.md.

Tutorials and examples

The examples directory contains several example programs showcasing different parts of the SDK (mostly graphics); the source code of n00bdemo can also be found in the same directory. More example programs may be added in the future and contributed example programs are welcome.

Lameguy's PlayStation Programming Tutorial Series was written with older versions of PSn00bSDK in mind and is outdated at this point, but may still be useful as an introduction to the console's hardware and the basics of the graphics and controller APIs.

To-do List

Credits

Main developers/authors:

Contributors:

Honorable mentions:

Helpful contributors can be found in the changelog.

References used:

Additional references can be found in individual source files.