From b9d6b11e0fb4f9c3dd511152cfeb408fb4aa8ea7 Mon Sep 17 00:00:00 2001 From: Daniel Welch Date: Thu, 18 Jun 2026 22:44:01 +0100 Subject: [PATCH 1/3] point to `ps3dev` for dev environment --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index b451f5ad..7be54b94 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,11 @@ PSL1GHT is a lightweight PlayStation 3 homebrew SDK that uses the open-source PlayStation 3 toolchains to compile user applications that will run from the XMB menu (GameOS homebrew). +> [!NOTE] +> This is the SDK repository. +> For the full development environment, please use +> [ps3dev](https://github.com/ps3dev/ps3dev). + Credits ------- From 216ae3c921a5a2c01a0f9995f8f23a0010ce5e84 Mon Sep 17 00:00:00 2001 From: Daniel Welch Date: Sun, 28 Jun 2026 23:22:54 +0100 Subject: [PATCH 2/3] README overhaul - "Current Status" was out of date, and its underlying model is wrong. Several of the claims listed are stale - hostname lookup is not actually "missing", the filesystem header has moved to `ppu/include`, and so on. PSL1GHT has lots of legacy code, and much of it has not been tested in years; it will be impossible to give an honest status until the SDK matures and settles post-modernisation and likely until more maintainers are on-board. Instead, it's been reframed to point towards a live source of documentation (DeepWiki) and not try to give a broad but untested feature overview. - Credits moved to the end to focus on repository status. - Change wording surrounding the PS3 toolchain (eg. "at the moment only one toolchain does so") to more accurately reflect current PS3DEV. - Remove old claim that Python 2.x is required for `fself.py`, `sfo.py` and `pkg.py`. These have since been refactored into C/C++. --- README.md | 170 ++++++++++++++++++++++++++---------------------------- 1 file changed, 81 insertions(+), 89 deletions(-) diff --git a/README.md b/README.md index 7be54b94..65a44a0d 100644 --- a/README.md +++ b/README.md @@ -1,126 +1,118 @@ [![License](https://img.shields.io/github/license/ps3dev/PSL1GHT.svg)](./LICENSE) [![CI](https://github.com/ps3dev/PSL1GHT/actions/workflows/build.yml/badge.svg)](https://github.com/ps3dev/PSL1GHT/actions/workflows/build.yml) -PSL1GHT -======= +# PSL1GHT -PSL1GHT is a lightweight PlayStation 3 homebrew SDK that uses the open-source -PlayStation 3 toolchains to compile user applications that will run from the -XMB menu (GameOS homebrew). +PSL1GHT is an open-source PlayStation 3 homebrew SDK. It uses the PS3 +toolchain to compile applications for GameOS as SELF executables or +PKG packages. > [!NOTE] > This is the SDK repository. > For the full development environment, please use > [ps3dev](https://github.com/ps3dev/ps3dev). -Credits -------- +## Environment - AerialX - Founder, Author - Parlane - Author - phiren - Author - Tempus - PSL1GHT Logo - lousyphreak - libaudio - Hermes - sysmodule, libpngdec, libjpgdec - BigBoss - EyeToy support added to libcamera sample, libgem sample. - ooPo - ps3libraries - ElSemi - Vertex Program Compiler - zerkman - SPU sample code - shagkur - Author - miigotu - Author - -Environment ------------ - -A GCC toolchain that supports the PowerPC 64bit architecture is required to -build PSL1GHT and its samples. It also requires the toolchain to provide -a patched newlib environment; at the moment only one toolchain does so: +The master repository, [ps3dev](https://github.com/ps3dev/ps3dev), combines +the toolchain, libraries and PSL1GHT into a complete environment; this is the +recommended way for most users to get started with PSL1GHT. -* [ps3toolchain](http://github.com/ps3dev/ps3toolchain) +PSL1GHT is built and tested with the toolchain provided by +[ps3toolchain](http://github.com/ps3dev/ps3toolchain). The toolchain supplies +compilers for the PPU and SPU, patched newlib environment, binutils, signing +tools and other programs required by PSL1GHT. -The SDK also includes a few standalone tools to help compilation. A host gcc -is required to build raw2h, ps3load, and sprxlinker requires libelf. ps3load -requires zlib installed. Python 2.x is required to run fself.py, sfo.py, and -pkg.py. Nvidia's [Cg Toolkit](http://developer.nvidia.com/object/cg_toolkit.html) +Nvidia's [Cg Toolkit](http://developer.nvidia.com/object/cg_toolkit.html) is required for compiling vertex programs. The signing tools require libgmp. +Most PSL1GHT samples require various libraries from +[ps3libraries](http://github.com/ps3dev/ps3libraries) to be installed. -Most of the PSL1GHT samples included in the samples/ directory require various -libraries from [ps3libraries](http://github.com/ps3dev/ps3libraries) to be -installed. -Building --------- +## Building -Run make install in the psl1ght directory to build it all, and make sure to -set the environment variable $PSL1GHT to the folder where you wish to -install it to, for example... +This is useful when developing PSL1GHT itself or testing changes. A working +PS3 toolchain must already be installed. - cd /path/to/psl1ght.git/ - export PSL1GHT=/path/to/psl1ght.git/build - make install-ctrl - make - make install +``` +git clone https://github.com/ps3dev/PSL1GHT.git +cd PSL1GHT +make install-ctrl +make +make install +``` -... for a local build of it. Ensure that $PSL1GHT is set when you are -building any of the examples or other apps that use PSL1GHT. +make install-ctrl installs the shared build rules required during the SDK build. +make install installs the completed headers, libraries, rules, and host utilities +into $PSL1GHT and $PS3DEV. -Current Status --------------- +To remove generated build files: +``` +make clean +``` -### Graphics +## Building Applications -PSL1GHT supports hardware accelerated 3d graphics. -Vertex and Fragment shaders are a work in progress. +PSL1GHT programs are built using their Makefile. The repository currently provides +samples organised by sub-system, such as `audio`, `graphics` and `input`. -### Input +To build an individual sample: +``` +cd samples// +make +``` +Depending on the sample, `.elf`, `.self` and/or `.pkg` files may be generated. Samples +that provide a package target can be packaged with `make pkg`. Package metadata is set +by the application's Makefile. -PS3 controllers are fully supported, and pressing the PS button brings up the -in-game XMB menu, assuming the framebuffer is working. +## Optional Dependencies -Quitting from the XMB requires the application to register a callback to handle the event. An example using this is the camera example. +### ps3libraries -### Filesystem Access +Though not required, many samples and applications use libraries from +[ps3libraries](https://github.com/ps3dev/ps3libraries/). It is a collection of libraries +ported to the PS3 such as SDL and zlib. -Full filesystem support is available, with access to the internal PS3 hard -drive, game disc contents, and external devices like USB drives. Only directory -iteration is missing, though it can be done using the lv2 filesystem interface -directly (see include/psl1ght/lv2/filesystem.h) +### NVidia CgToolkit -### Networking +The current shader workflow relies upon the NVidia Cg Toolkit when compiling `.vcg` +and `.fcg` shader sources. Cg is proprietary and discontinued and cannot be included +in the PS3DEV environment - it must be installed separately. It is not required for +applications that don't need shaders. -Berkeley sockets are available for use in PSL1GHT, though some -implementation remains incomplete at this time (hostname lookups, for example). +## Documentation -### STDOUT Debugging +There is a [DeepWiki](https://deepwiki.com/ps3dev/PSL1GHT) set up for PSL1GHT that +contains information about the SDK and allows you to ask it questions. -By default, PSL1GHT applications redirect stdout and stderr to the lv2 TTY -interface. Kammy's ethdebug module can be used to retrieve this live debugging -information over UDP broadcast packets. -See [Kammy](http://github.com/AerialX/Kammy) for more information and a -precompiled ethdebug hook loader. +The public headers contain Doxygen documentation for many APIs. Generate it with: +``` +make doc +``` -### SPUs +Doxygen must be installed. -PSL1GHT provides access to running programs on the raw SPUs, and communication -with it from the PPU. See sputest in the samples directory for a simple -example. +## Current Status -### SPRX Linking +PSL1GHT is mostly historical code that is known to have problems building on modern +toolchains. CI needs to be expanded and made more robust to test the veracity of +PSL1GHT's samples. -Any dynamic libraries available to normal PS3 applications can be used with -PSL1GHT, they just need to be made into a stub library and have the exports -filled out. See any of the examples in sprx/ for information on the -creation of SPRX stub libraries. +Contributions are welcome. Before submitting a pull request, please verify the code +is hardware-compatible and includes a description so that it can be replicated. -The following libraries are currently supported: +## Credits -* libio - * libpad - * libmouse -* liblv2 -* libsysutil -* libgcm_sys -* libsysmodule -* libpngdec -* libjpgdec -* libgem + + AerialX - Founder, Author + Parlane - Author + phiren - Author + Tempus - PSL1GHT Logo + lousyphreak - libaudio + Hermes - sysmodule, libpngdec, libjpgdec + BigBoss - EyeToy support added to libcamera sample, libgem sample. + ooPo - ps3libraries + ElSemi - Vertex Program Compiler + zerkman - SPU sample code + shagkur - Author + miigotu - Author From 5c4877523d7d39695f4ae1d92cf514511f4b3d5a Mon Sep 17 00:00:00 2001 From: Daniel Welch Date: Sun, 28 Jun 2026 23:57:43 +0100 Subject: [PATCH 3/3] second pass cleanups - add `sh` to the markdown code blocks and add backticks where missing - fix http://github.com to https - tighten some phrasing - add link to contributors graph --- README.md | 68 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 65a44a0d..3f67418b 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,9 @@ # PSL1GHT -PSL1GHT is an open-source PlayStation 3 homebrew SDK. It uses the PS3 -toolchain to compile applications for GameOS as SELF executables or -PKG packages. +PSL1GHT is an open-source PlayStation 3 homebrew SDK. It provides libraries +and build tools for creating GameOS homebrew applications as SELF executables +and installable PKG packages. > [!NOTE] > This is the SDK repository. @@ -19,22 +19,16 @@ the toolchain, libraries and PSL1GHT into a complete environment; this is the recommended way for most users to get started with PSL1GHT. PSL1GHT is built and tested with the toolchain provided by -[ps3toolchain](http://github.com/ps3dev/ps3toolchain). The toolchain supplies +[ps3toolchain](https://github.com/ps3dev/ps3toolchain). The toolchain supplies compilers for the PPU and SPU, patched newlib environment, binutils, signing tools and other programs required by PSL1GHT. -Nvidia's [Cg Toolkit](http://developer.nvidia.com/object/cg_toolkit.html) -is required for compiling vertex programs. The signing tools require libgmp. -Most PSL1GHT samples require various libraries from -[ps3libraries](http://github.com/ps3dev/ps3libraries) to be installed. - - ## Building -This is useful when developing PSL1GHT itself or testing changes. A working -PS3 toolchain must already be installed. +Building PSL1GHT directly is useful when developing PSL1GHT itself or testing changes. +A working PS3 toolchain must already be installed. -``` +```sh git clone https://github.com/ps3dev/PSL1GHT.git cd PSL1GHT make install-ctrl @@ -42,9 +36,9 @@ make make install ``` -make install-ctrl installs the shared build rules required during the SDK build. -make install installs the completed headers, libraries, rules, and host utilities -into $PSL1GHT and $PS3DEV. +`make install-ctrl` installs the shared build rules required during the SDK build. +`make install` installs the completed headers, libraries, rules, and host utilities +into `$PSL1GHT` and `$PS3DEV`. To remove generated build files: ``` @@ -54,39 +48,45 @@ make clean ## Building Applications PSL1GHT programs are built using their Makefile. The repository currently provides -samples organised by sub-system, such as `audio`, `graphics` and `input`. +samples organised by subsystem, such as `audio`, `graphics` and `input`. To build an individual sample: ``` cd samples// make ``` -Depending on the sample, `.elf`, `.self` and/or `.pkg` files may be generated. Samples -that provide a package target can be packaged with `make pkg`. Package metadata is set +A typical sample build produces `.elf` and `.self` outputs. Samples that define a package +target can be packaged with +```sh +make pkg +``` +Package metadata is set by the application's Makefile. ## Optional Dependencies ### ps3libraries -Though not required, many samples and applications use libraries from +Some samples and applications use libraries from [ps3libraries](https://github.com/ps3dev/ps3libraries/). It is a collection of libraries ported to the PS3 such as SDL and zlib. -### NVidia CgToolkit +### NVidia Cg Toolkit -The current shader workflow relies upon the NVidia Cg Toolkit when compiling `.vcg` -and `.fcg` shader sources. Cg is proprietary and discontinued and cannot be included -in the PS3DEV environment - it must be installed separately. It is not required for -applications that don't need shaders. +The current shader workflow relies upon the discontinued proprietary NVidia Cg Toolkit +when compiling `.vcg` and `.fcg` shader sources. Cg Toolkit cannot be included in the +PS3DEV environment - it must be installed separately. It is not required for applications +that don't need shaders. ## Documentation There is a [DeepWiki](https://deepwiki.com/ps3dev/PSL1GHT) set up for PSL1GHT that -contains information about the SDK and allows you to ask it questions. +contains information about the SDK and allows you to ask it questions. This can +provide a start for basic questions; the source code and public headers remain the +authority. The public headers contain Doxygen documentation for many APIs. Generate it with: -``` +```sh make doc ``` @@ -94,12 +94,13 @@ Doxygen must be installed. ## Current Status -PSL1GHT is mostly historical code that is known to have problems building on modern -toolchains. CI needs to be expanded and made more robust to test the veracity of -PSL1GHT's samples. +The core PSL1GHT SDK is built in CI with the PS3 toolchain. +Coverage of samples is currently incomplete - some samples are excluded from the +top sample build script, and CI does not yet verify anything beyond a top-level +`make`. -Contributions are welcome. Before submitting a pull request, please verify the code -is hardware-compatible and includes a description so that it can be replicated. +Contributions that improve compatibility, sample coverage and documentation are welcome. +For runtime changes, please describe the toolchain and hardware used for testing. ## Credits @@ -116,3 +117,6 @@ is hardware-compatible and includes a description so that it can be replicated. zerkman - SPU sample code shagkur - Author miigotu - Author + +Thanks to all [contributors](https://github.com/ps3dev/PSL1GHT/graphs/contributors) who have +helped to maintain and improve PSL1GHT over the years.