This is the somewhat redundant (and insecure) Internet page about my very own open source PlayStation SDK project; simply called PSn00bSDK. The term 'n00b' is a immaturely spelled inverse of the word 'pro'- as both a means to make fun of software that brands themselves as 'pro software' yet is often lacking in 'pro' features and the term also emphasizes the fact that the SDK is not developed by 'professional' programmers... The branding also helps reduce the level of expectation to those who just found about this project and avoids sounding like it's trying oversell itself, unlike devKitPro.
Perhaps what makes PSn00bSDK stand out from all other open source SDK projects that came and went in the last two decades or so is its remarkably extensive support for the GPU and GTE hardware to the point of being entirely capable of shifting 3D graphics with the same amount of visual fidelity as the big name titles on the platform, provided the programmer has the required skill set needed to implement it. Don't believe it? See the screenshots and the n00bDEMO video yourself down below.
Also featured is the 2019-2020 update summary of the project which I believe is where much of the significant improvements on the SDK were implemented, especially the addition of libpsxcd.
Below is a feature table which compares supported features between PSn00bSDK and other SDKs, particularly PSXSDK as it was the most well known of them all. The table is subject to change as PSn00bSDK is slowly being developed further.
Feature | PSn00bSDK | Other SDKs |
---|---|---|
Polygon Primitives | Yes | No/Limited |
DMA Ordering Table Upload | Yes | No |
DMA VRAM Transfers | Yes | No | Geometry Transformation Engine | Yes | No |
SPU Support | Partial | Partial |
MDEC Support | No | No |
CD-ROM Support | Full (with multi-session support) | BIOS only |
Controller/Peripherals Support | BIOS | Direct I/O, manual polling |
Memory Card Support | BIOS | BIOS |
Interrupt Service Routine w/ Callbacks | Yes | No |
Serial I/O | Yes | No | C++ | Yes (no Standard C++) | No |
There are apparently several more homebrew projects by other people that were made using this SDK, but I've never been made aware of them hence they haven't been added to the list. But then this page is quite redundant as much of the project news and updates have been on the Github repository.
There are also some projects that were made using this SDK but never ever mentioned the SDK being used. Such projects will not be added to the list so don't bother bringing them up to me even when backed with intense death threats... Projects by <insertprojectname>(-dev) types or developers going by disposable handles will also be ignored as the evasive, unaspiring and likely cowardly are not to be promoted on this website.
At this point, I think this list should be removed entirely for how useless it is due to the 'rules'.
Name | Date Released | Author | Description |
---|---|---|---|
n00bdemo | March 26, 2019 | Lameguy64 | A rather small demo featuring real-time dynamic point lighting, an over
1000 polygon bunny girl model with real-time per-vertex lighting, stencil
mask demo, a cel-shaded Hat Kid (from A Hat in Time) model with a 'full
3D skybox' and classic plasma all running at high resolution at 60FPS. This
is the very first first proper homebrew made using PSn00bSDK meant to
showcase the possibility of an SDK project capable of pushing high
performance graphics that other SDK projects are severely lacking at. All
3D scenes make very extensive use of the GTE. This demo is both NTSC and PAL compatible. Video standard selection is determined by the video standard of the last video mode (ie. if the BIOS screen or Xplorer/Caetla cartrige sets the video mode to PAL this demo will initialize the display in PAL mode). Source code is included with PSn00bSDK as an example program. Youtube Video |
LITELOAD | July 19, 2019 | Lameguy64 |
A simple and lightweight but very reliable serial loader for the PS1
with support for debug monitor patches. As of version 1.2, it has been
ported to PSn00bSDK which dramatically reduced the size of the loader
by over 50%. This also makes it perhaps the first PS1 homebrew to be ported from the official PsyQ/Programmers Tool SDK to an open source SDK with zero functionality lost from the porting process. |
Since Jan 18, 2022, binary releases for Windows and Linux are provided through Github Actions courtesy of spicyjpeg and is the recommended way to obtain PSn00bSDK. The Github Actions releases includes the most recent GNU GCC toolchain, LibPSn00b libraries, examples programs, documentation and some additional tools like mkpsxiso. The Windows release requires MSys2 and the contents should be extracted into /usr/local.
If you want to build PSn00bSDK from source or desire to modify it to your liking, the main project repository can be found on Github. The old SVN repository has been retired for being redundant.
If for whatever reason you need a pre-compiled GCC toolchain that is hosted on a old enough version of MinGW that it will run on Win9x and NT4 even though PSn00bSDK is impossible to build on such systems after the move to cmake (the community desired it, so go blame them if you don't approve of the change), they can still be found right here.
The PSn00bSDK project goes with the Mozilla Public License as it grants a bit more control over GPL and encourages modifications made to the project to be committed upstream to the main branch (which would be good enough as a donation to the project to me, I don't take monetary dontations afterall). It shouldn't be a deal breaker however as you can still use PSn00bSDK freely and projects made with the SDK can use a different license, only assets that are going to be part of PSn00bSDK must fall under MPL.
This is just my basic understanding of how the MPL license works however. You may want to read the actual license yourself to get the exact details.