- Notifications
You must be signed in to change notification settings - Fork65
ps3dev/PSL1GHT
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
PSL1GHT is a lightweight PlayStation 3 homebrew SDK that uses the open-sourcePlayStation 3 toolchains to compile user applications that will run from theXMB menu (GameOS homebrew).
AerialX - Founder, AuthorParlane - Authorphiren - AuthorTempus - PSL1GHT Logolousyphreak - libaudioHermes - sysmodule, libpngdec, libjpgdecBigBoss - EyeToy support added to libcamera sample, libgem sample.ooPo - ps3librariesElSemi - Vertex Program Compilerzerkman - SPU sample codeshagkur - Authormiigotu - Author
A GCC toolchain that supports the PowerPC 64bit architecture is required tobuild PSL1GHT and its samples. It also requires the toolchain to providea patched newlib environment; at the moment only one toolchain does so:
The SDK also includes a few standalone tools to help compilation. A host gccis required to build raw2h, ps3load, and sprxlinker requires libelf. ps3loadrequires zlib installed. Python 2.x is required to run fself.py, sfo.py, andpkg.py. Nvidia'sCg Toolkitis required for compiling vertex programs. The signing tools require libgmp.
Most of the PSL1GHT samples included in the samples/ directory require variouslibraries fromps3libraries to beinstalled.
Run make install in the psl1ght directory to build it all, and make sure toset the environment variable $PSL1GHT to the folder where you wish toinstall it to, for example...
cd /path/to/psl1ght.git/export PSL1GHT=/path/to/psl1ght.git/buildmake install-ctrlmakemake install
... for a local build of it. Ensure that $PSL1GHT is set when you arebuilding any of the examples or other apps that use PSL1GHT.
PSL1GHT supports hardware accelerated 3d graphics.Vertex shaders are a work in progress and Fragment shaders don't exist yet.
PS3 controllers are fully supported, and pressing the PS button brings up thein-game XMB menu, assuming the framebuffer is working.
Quitting from the XMB requires the application to register a callback to handle the event. An example using this is the camera example.
Full filesystem support is available, with access to the internal PS3 harddrive, game disc contents, and external devices like USB drives. Only directoryiteration is missing, though it can be done using the lv2 filesystem interfacedirectly (see include/psl1ght/lv2/filesystem.h)
Berkeley sockets are available for use in PSL1GHT, though someimplementation remains incomplete at this time (hostname lookups, for example).
By default, PSL1GHT applications redirect stdout and stderr to the lv2 TTYinterface. Kammy's ethdebug module can be used to retrieve this live debugginginformation over UDP broadcast packets.SeeKammy for more information and aprecompiled ethdebug hook loader.
PSL1GHT provides access to running programs on the raw SPUs, and communicationwith it from the PPU. See sputest in the samples directory for a simpleexample.
Any dynamic libraries available to normal PS3 applications can be used withPSL1GHT, they just need to be made into a stub library and have the exportsfilled out. See any of the examples in sprx/ for information on thecreation of SPRX stub libraries.
The following libraries are currently supported:
- libio
- libpad
- libmouse
- liblv2
- libsysutil
- libgcm_sys
- libsysmodule
- libpngdec
- libjpgdec
- libgem