diff options
| author | spicyjpeg <88942473+spicyjpeg@users.noreply.github.com> | 2021-11-29 00:17:28 +0100 |
|---|---|---|
| committer | spicyjpeg <88942473+spicyjpeg@users.noreply.github.com> | 2021-11-29 00:22:33 +0100 |
| commit | 31fba94b8e8c15c1d127925f01a38efc68933fd1 (patch) | |
| tree | 90c718366499458ade032a879b7e02f58fcd7820 /README.md | |
| parent | 7186b911cc461dbdad9307afd8901be118e20893 (diff) | |
| download | psn00bsdk-31fba94b8e8c15c1d127925f01a38efc68933fd1.tar.gz | |
Add io/system573 example, rewrite dev notes, fix CI
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 87 |
1 files changed, 43 insertions, 44 deletions
@@ -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). |
