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 CD-ROM 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 good as the official SDK.
|DMA OT Upload||Yes||No|
|DMA VRAM Transfers||Yes||No||Geometry Transformation Engine||Yes||No|
|SPU Support||Partial (currently)||Limited and no DMA|
|CD-ROM Support||Yes (via BIOS)||Yes (via BIOS)|
|Controller/Peripherals Support||Yes w/ auto polling (via BIOS)||Crude direct I/O implementation w/ manual polling|
|Memory Card Support||Maybe via BIOS functions, not tested yet||Yes (via BIOS)|
|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.
|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 up 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 beware
that it may be unstable especially when I'm in the midst of working on a new
implementation of something later down the line. I recommend sticking with
the Github repository unless you fully understand the nature of this
codebase. There's usually prototype code included when new functionality
is in the process of being implemented.
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.
I'm not yet certain if I should put together precompiled binary releases of PSn00bSDK as the libraries are updated very regularly in its current state. Perhaps when it reaches production ready status. It isn't all that difficult to compile the tools and libraries, as long as you have the right software.
I can provide pre-built copies of the GNU GCC toolchain that has been configured for mipsel, to be used with PSn00bSDK. This should help significantly with setting up PSn00bSDK yourself, as building the toolchain is the most tedious step in setting up PSn00bSDK from scratch.
You will need MSys2 for the GNU utilities, such as make.
You can find the packages in Pre-built GNU GCC Toolchain, there are also pre-built packages for Debian Linux.
I recommend GCC 7.4.0 as that is the version I'm currently using the SDK with the most.
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.