Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/CTurt/PS4-SDK
Open source PS4 SDK
https://github.com/CTurt/PS4-SDK
Last synced: about 2 months ago
JSON representation
Open source PS4 SDK
- Host: GitHub
- URL: https://github.com/CTurt/PS4-SDK
- Owner: CTurt
- Archived: true
- Created: 2015-08-17T19:26:21.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-30T20:56:41.000Z (almost 8 years ago)
- Last Synced: 2024-08-04T23:09:42.407Z (5 months ago)
- Language: C
- Size: 319 KB
- Stars: 1,020
- Watchers: 109
- Forks: 230
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- Awesome-PS4-Jailbreak - PS4 SDK - playground). (SDK / Remote Package Installers)
README
# PS4 SDK
An open source PlayStation 4 SDK for writing userland applications which can be run with the [PS4-playground](https://github.com/CTurt/PS4-playground).## Building and installing
You will need [LLVM](http://llvm.org/releases/) version 3.7 or later for compiling, and `binutils` for linking (from [MinGW](http://www.mingw.org/) if you are on Windows).Clone this repository locally, or download and extract a ZIP of the repository [here](https://github.com/CTurt/PS4-SDK/archive/master.zip).
Then create an environment variable called, `PS4SDK` which points to the base directory of the repository, using the Unix path style; for example:
/C/Users/Chris/Documents/GitHub/PS4-SDK
Build the libraries by running `make` on the `libPS4` and `libusbfatfs` directories.
Finally, you can build examples by running `make` on them.
## Design
At the moment, it is primarily focused on system calls.However, using function pointers and the `RESOLVE` macro, we can call functions from other modules. For example, [the socket functions](https://github.com/CTurt/PS4-SDK/blob/master/source/network.c) from `libSceNet.sprx`.
## Support
Whilst the SDK isn't capable of most basic functionality yet, such as displaying graphics, or receiving controller input, there are workarounds: rendering to an HTML5 canvas, and using third party USB controllers, or a DS/PSP wirelessly for example.The SDK is currently in a state where projects like an FTP server, [a mini Pong game](https://github.com/CTurt/PS4-Pong), or [GameBoy emulator](https://github.com/CTurt/Cinoop) could be developed.
## Examples
`hello` - Load `libc` module and perform `getpid` system call`sockets` - Send a message over a TCP socket
`modules` - Load and dump a module
`threads` - Create and wait for a thread to increment a variable
`canvas` - Render to an HTML5 canvas
`camera` - Initialise the PlayStation Camera and capture 10 frames
`pad` - Read controller input (not finished)
`jit` - Setting up JIT shared memory
### Filesystem
`directories` - List the contents of a directory`files` - Read a file's size, and its contents
### USB
`list_devices` - List information about all USB devices connected`storage` - Read raw image from a USB flash drive
`usbfatfs` - Read files from USB formatted with FAT