diff options
| author | spicyjpeg <88942473+spicyjpeg@users.noreply.github.com> | 2022-01-17 17:55:09 +0100 |
|---|---|---|
| committer | spicyjpeg <88942473+spicyjpeg@users.noreply.github.com> | 2022-01-17 17:55:09 +0100 |
| commit | e9475e283a82665fe6c19bebc3318b5084f15a2e (patch) | |
| tree | 5740f396d10a9580c3a39ca536544436898ff1b6 /README.md | |
| parent | de38196a978548b61c4b45115d24ef743b9eef90 (diff) | |
| parent | 08de895e8582dbc70b639ae5f511ab9ebfb4d68a (diff) | |
| download | psn00bsdk-e9475e283a82665fe6c19bebc3318b5084f15a2e.tar.gz | |
Merge branch 'master' of github.com:Lameguy64/PSn00bSDK into latest-commit
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 68 |
1 files changed, 33 insertions, 35 deletions
@@ -2,28 +2,32 @@ # PSn00bSDK PSn00bSDK is a 100% free and open source SDK project for the original Sony -PlayStation for developing homebrew applications and games for the console -100% freely. This SDK can be used for freeware, commercial, and open source -homebrew projects. - -The SDK is composed mainly of libraries (`libpsn00b`) and some utilities that -provide a basic framework for developing software for the PlayStation hardware, -the compiler is separate (GCC) and should be acquired from GNU. The library API -is intentionally written to resemble the library API of the official libraries -as closely as possible. This design decision is not only for familiarity -reasons to experienced programmers, but also so that existing sample code and -tutorials would still apply to this SDK, as well as making the process of -porting over existing homebrew originally made with official SDKs easier with -minimal modification, provided it doesn't use `libgs`. +PlayStation for developing homebrew applications and games for the console. +This SDK may be used for freeware, commercial, and open source homebrew +projects as far as what the SDK currently supports. Out of all the open +source PS1 SDK projects that have come and gone from active development +over the years, PSn00bSDK is arguably the most capable of them all. + +Much of the SDK is merely just a set of libraries (`libpsn00b`) and some +utilities for converting executables and data files to formats more usable +on the target platform. The compiler used is just the standard GNU GCC +toolchain compiled to target mipsel and has to be acquired separately. +The library API was deliberately written to resemble the library API of the +official libraries as closely as possible not only for familiarity reasons +to experienced programmers but also so that existing sample code and tutorials +that have been written over the years would still apply to this SDK, as well +as making the process of porting over existing homebrew originally made with +official SDKs easier with minimal modificationn provided they do not depend +on libgs. PSn00bSDK is currently a work in progress and cannot really be considered -production ready, but what is currently implemented should be enough to produce -some interesting homebrew with the SDK, especially with its extensive support -for the GPU and GTE hardware. There's no reason not to fully support hardware -features of a target platform when said hardware features have been fully -documented for years (nocash's PSX specs document in this case). +production ready, but what is currently implemented should be enough to +produce some interesting homebrew with the SDK especially with its extensive +support for the GPU and GTE hardware. There's no reason not to fully support +hardware features of a target platform when said hardware features have been +fully documented for years (nocash's PSX specs document in this case). -Most of `libpsn00b` is written mostly in MIPS assembly, moreso functions that +Most of `libpsn00b` is written mostly in MIPS assembly more so functions that interface with the hardware. Many of the standard C functions are implemented in custom MIPS assembly instead of equivalents found in the BIOS ROM, for both stability (the BIOS `libc` implementation of the PlayStation is actually buggy) @@ -86,6 +90,7 @@ Prebuilt SDK packages and versions of the GCC toolchain for Windows and Linux been published however, due to this project being in a work-in-progress state. It is still recommended to build the SDK from source for the time being. + ## Examples There are a few examples and complete source code of `n00bdemo` included in the @@ -116,27 +121,16 @@ apply to PSn00bSDK. * Pad and memory card libraries that don't use the BIOS routines. -## Usage terms (or lack thereof) - -PSn00bSDK falls under the terms and conditions of the Mozilla Public License. A -quick summary of this license is that PSn00bSDK can be used freely in both free -and open source projects and commercial closed source projects as projects -using PSn00bSDK does not necessarily have to follow the MPL as well. - -If modifications to the SDK were made as part of the development of such -projects that enhance its functionality, such changes must be contributed back -in return. +## Credits -Homebrew made with PSn00bSDK may not be released under 'annoyingmous'. Although -there's nothing that would enforce it, this term may as well be ignored despite -it annoying this SDK's author. +Main developer/author/whatever: -## Credits +* **Lameguy64** (John "Lameguy" Wilbert Villamor) -Main developers: +Contributors: -* **Lameguy64** * **spicyjpeg**: dynamic linker, CMake scripts, some docs and examples + (`system/dynlink`, `sound/spustream`, `io/pads`, `io/system573`). Honorable mentions: @@ -149,4 +143,8 @@ Helpful contributors can be found in the changelog. References used: * [nocash's PlayStation specs document](http://problemkaputt.de/psx-spx.htm) + and Nicolas Noble's [updated version](https://psx-spx.consoledev.net). +* MIPS and System V ABI specs (for the dynamic linker). * Tails92's PSXSDK project (during PSn00bSDK's infancy). + +Additional references can be found in individual source files. |
