This is a PlayStation SDK project of my own creation capable of achieving high performance graphics which other SDK projects had been most lacking at for years. With extensive GPU and GTE and someday full SPU and MDEC support, this SDK project may very well replace the official SDK for homebrew development, and would pave the way for 100% legal homebrews to be developed that would make use of the hardware just as well if not better than the official SDK.
|DMA Ordering Table Upload||Yes||No|
|DMA VRAM Transfers||Yes||No||Geometry Transformation Engine||Yes||No|
|SPU Support||Partial (currently)||Limited and no DMA|
|Full CD-ROM Support||Yes (with multi-session support)||BIOS only|
|Multi-session CD Support||Yes||No|
|Controller/Peripherals Support||Yes w/ auto polling (via BIOS)||Crude direct I/O implementation w/ manual polling|
|Memory Card Support||BIOS only, not tested yet||BIOS only|
|Interrupt Service Routine w/ Callbacks||Yes||No|
|Serial I/O||Yes||No||C++||Yes (no Standard C++)||No|
This table is subject to change as more features get developed/implemented in the future.
|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.
|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.
As of Feburary 18, 2021 I was able to cobble together a pre-compiled, ready to use package of PSn00bSDK for 64-bit Windows. It depends on MSys2 however mostly to provide the necessary run-time libraries and build utilities like make, as trying to bundle those into the package would be a whole load of hassle and generally harder to maintain. Fortunately setting it up is just a matter of extracting the PSn00bSDK package and installing the required prerequisites in the MSys2 shell stated in the included readme file. The package also includes additional tools (usually ones made by me) to get you started in PlayStation homebrew development pretty quickly.Get the first ever PSn00bSDK binary release for Win64: psn00bsdk-msys64-r0-20210217.7z
If you still prefer to set it up the old fashioned way and build the libraries from source yourself, you can still find the old pre-compiled GCC toolchain right here, there are also pre-built packages for Debian Linux and a build that should work on older Windows versions as old as NT 4.0 if you want to be that old school.
|Github repo||This is the recommended repository to pull source code from as its
usually the most stable. This is also the recommended repository for
creating forks if you wish to contribute to this project.
More info about PSn00bSDK can also be found here as well.
This is the self-hosted repository of PSn00bSDK that I usually use to
sync the project to my other computers. There's a possibility that the
code in this repo would be more up to date than the Github repo, but be aware
that it may be unstable especially when I'm in the midst of implementing
something new later down the line (though work in progress libraries are
stored in the indev directory). I recommend sticking with the Github
repository unless you want to put up the nature of this codebase. There's
usually prototype code included when new functionality is in the process of
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 for nobodies on my self-hosted SVN.
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.