aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorspicyjpeg <88942473+spicyjpeg@users.noreply.github.com>2021-11-29 00:17:28 +0100
committerspicyjpeg <88942473+spicyjpeg@users.noreply.github.com>2021-11-29 00:22:33 +0100
commit31fba94b8e8c15c1d127925f01a38efc68933fd1 (patch)
tree90c718366499458ade032a879b7e02f58fcd7820 /README.md
parent7186b911cc461dbdad9307afd8901be118e20893 (diff)
downloadpsn00bsdk-31fba94b8e8c15c1d127925f01a38efc68933fd1.tar.gz
Add io/system573 example, rewrite dev notes, fix CI
Diffstat (limited to 'README.md')
-rw-r--r--README.md87
1 files changed, 43 insertions, 44 deletions
diff --git a/README.md b/README.md
index 6fd4cd1..13ab7d1 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
+
# PSn00bSDK
PSn00bSDK is a 100% free and open source SDK project for the original Sony
@@ -5,33 +6,32 @@ 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.
+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`.
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, moreso 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)
+stability (the BIOS `libc` implementation of the PlayStation is actually buggy)
and performance reasons.
-
## Notable features
-As of August 16, 2021
+As of November 28, 2021
* Extensive GPU support with polygon, line and sprite primitives, high-speed
DMA transfers for VRAM data and ordering tables. All video modes for both
@@ -76,28 +76,25 @@ As of August 16, 2021
* Fully expandable and customizable to your heart's content.
-
## Obtaining PSn00bSDK
PSn00bSDK has switched to a CMake-based build and installation system. See
[installation.md](doc/installation.md) for details.
-Because PSn00bSDK is updated semi-regularly due to this project being in
-a work-in-progress state, it is better to obtain this SDK from source and
-building it yourself in the long run. Pre-compiled packages for Debian and
-Msys2 are being planned however (it is already possible to build installers,
-DEB and RPM packages through CPack so it's only a matter of time).
+Prebuilt SDK packages and versions of the GCC toolchain for Windows and Linux
+(DEB/RPM) are available through GitHub Actions. Stable releases haven't yet
+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 examples directory. More example programs may be added in the future
-and contributed example programs are welcome.
-
-There's also Lameguy's PlayStation Programming Tutorial Series at
-http://lameguy64.net/tutorials/pstutorials/ for learning how to program
-for the PlayStation. The tutorials should still apply to PSn00bSDK.
+There are a few examples and complete source code of `n00bdemo` included in the
+`examples` directory. More example programs may be added in the future and
+contributed example programs are welcome.
+There's also [Lameguy's PlayStation Programming Tutorial Series](http://lameguy64.net/tutorials/pstutorials)
+for learning how to program for the PlayStation. The tutorials should still
+apply to PSn00bSDK.
## To-do List
@@ -121,33 +118,35 @@ for the PlayStation. The tutorials should still apply to PSn00bSDK.
## 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.
+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.
+projects that enhance its functionality, such changes must be contributed back
+in return.
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.
-
## Credits
-Main developer:
-* Lameguy64
+Main developers:
+
+* **Lameguy64**
+* **spicyjpeg**: dynamic linker, CMake scripts, some docs and examples
Honorable mentions:
-* ijacquez - helpful suggestions for getting C++ working.
-* NicolasNoble - his OpenBIOS project gave insight to how the BIOS works
+
+* **ijacquez**: helpful suggestions for getting C++ working.
+* **Nicolas Noble**: his OpenBIOS project gave insight to how the BIOS works
internally.
Helpful contributors can be found in the changelog.
References used:
-* nocash's PlayStation specs document (http://problemkaputt.de/psx-spx.htm)
+
+* [nocash's PlayStation specs document](http://problemkaputt.de/psx-spx.htm)
* Tails92's PSXSDK project (during PSn00bSDK's infancy).