aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorspicyjpeg <88942473+spicyjpeg@users.noreply.github.com>2022-01-17 17:55:09 +0100
committerspicyjpeg <88942473+spicyjpeg@users.noreply.github.com>2022-01-17 17:55:09 +0100
commite9475e283a82665fe6c19bebc3318b5084f15a2e (patch)
tree5740f396d10a9580c3a39ca536544436898ff1b6 /README.md
parentde38196a978548b61c4b45115d24ef743b9eef90 (diff)
parent08de895e8582dbc70b639ae5f511ab9ebfb4d68a (diff)
downloadpsn00bsdk-e9475e283a82665fe6c19bebc3318b5084f15a2e.tar.gz
Merge branch 'master' of github.com:Lameguy64/PSn00bSDK into latest-commit
Diffstat (limited to 'README.md')
-rw-r--r--README.md68
1 files changed, 33 insertions, 35 deletions
diff --git a/README.md b/README.md
index 13ab7d1..f3fa7f5 100644
--- a/README.md
+++ b/README.md
@@ -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.