Lameguy64 Banner
PSn00bSDK - Lameguy64's Website

The Open Source PS1 SDK Project that Doesn't Suck! And sort of doesn't suck as bad now...

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.

What can PSn00bSDK do so far?

(All screenshots are captured from real hardware, hence the noise)

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.

PSn00bSDK vs. Other Open Source SDKs

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

What's made with PSn00bSDK so far

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.

Get PSn00bSDK

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.

License

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.

Psn00bsdk - Lameguy64's Website