2 An open source PlayStation 4 SDK.
4 ## Building and installing
5 Just run `make` on the `PS4-SDK` directory to build the library.
7 Then create an environment variable called, `PS4SDK` which points to the base directory of the repository, using the Unix path style; for example:
9 /C/Users/Chris/Documents/GitHub/PS4-SDK
11 You must make sure that your compiler supports the System V AMD64 ABI calling convention. PS4-SDK relies on this for compatibility with Sony's functions and system calls.
14 At the moment, it is primarily focused on the kernel. For example, [all semaphore system calls have been implemented](https://github.com/CTurt/PS4-SDK/blob/master/source/semaphore.c), from 549 to 556.
16 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`.
19 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.
21 The SDK is currently in a state where projects like an FTP server, or [a mini Pong game](https://github.com/CTurt/PS4-Pong) could be developed.
24 `hello` - Load `libc` module and perform `getpid` system call
26 `sockets` - Send a message over a TCP socket
28 `modules` - Load and dump a module
30 `threads` - Create and wait for a thread to increment a variable
32 `canvas` - Render to an HTML5 canvas
34 `camera` - Initialise the PlayStation Camera and capture 10 frames
36 `pad` - Read controller input (not finished)
39 `directories` - List the contents of a directory
41 `files` - Read a file's size, and its contents
44 `list_devices` - List information about all USB devices connected
46 `storage` - Read raw image from a USB flash drive