Jump to content

Open Source PS4 SDK 1.0.0

Conéctate para seguir esto  

1 Screenshot

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:


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