Vita SDK

Development tools for PS Vita

Forums Wiki APIs Samples HENkaku taiHEN Discord Matrix IRC GitHub

Vita SDK is an open source toolchain for PlayStation® Vita development. This allows you to create applications, games, and more (homebrew) to run on hacked Vita consoles. You can find more information on the hack here.

Getting Started

Prerequisite

Linux

Install the following (adapt the command for your system): apt-get install make git-core cmake python

OSX

  1. Install either brew or MacPorts
  2. Run either brew install wget cmake or port install wget cmake.

Windows

  1. Install WSL2
  2. Follow the Linux directions above.

Option

By installing Visual Studio Code, you can flexibly develop in cooperation with WSL2.

To link Visual Studio Code and WSL2, select [Connect to WSL] from the remote button.

vs_code_remote.png

Also if you have error line missing headers for vitasdk in Visual Studio Code, Create a directory named .vscode in the same directory as CMakeLists.txt and download this file there.

Installing

Set the environment variable VITASDK to be the install destination for Vita SDK. We recommend using /usr/local/vitasdk. We also recommend making the change to your .bashrc or equivalent (.bash_profile on OSX) since using the toolchain requires VITASDK to be set.

export VITASDK=/usr/local/vitasdk
export PATH=$VITASDK/bin:$PATH # add vitasdk tool to $PATH

Download the host package manager and install to $VITASDK

git clone https://github.com/vitasdk/vdpm
cd vdpm
./bootstrap-vitasdk.sh
./install-all.sh

This will install the toolchain and the most common libraries (including zlib, freetype, libvita2d, taihen and more).

Updating

With vitasdk installed and in your PATH, just run vitasdk-update to get the latest toolchain build.

Removing

To remove all traces of Vita SDK, just delete your $VITASDK directory. You can then reverse the steps in installing the prerequisite.

Platform

Writing Code

The APIs are gathered from reversing the Vita’s firmware. It includes everything you can do with the system. It is recommended that you start by cloning the samples and by reading through them and understanding them. The environment is POSIX but the true power comes from the Sony specific APIs.

Plugins and Extensions

It is highly recommended that you are familiar with writing homebrews before attempting to write a plugin, which is significantly more difficult to do. Advanced developers can check out taiHEN for a substrate that allows you to hook system functions.

Building

Building is done with CMake and you should familiarize yourself with the hello world CMake file to better understand how it works. SELF is the executable format that the Vita runs and the included CMake macro vita_create_self will build it for you. VPK is the homebrew package format and is an archive of the SELF along with data files and LiveArea and is done by the CMake macro vita_create_vpk. VPK is what is installed to the Vita as a bubble.

Running

To run homebrew, you need a hacked Vita or PS TV. Currently only known hacks are HENkaku which requires firmware 3.60, h-encore which requires firmware 3.65 - 3.68, and Trinity which requires firmware 3.69 - 3.70 (after hacking your device if you are on firmware above 3.61 it’s recommended to downgrade to 3.60 using modoru) Once you installed HENkaku, h-encore or Trinity, open up molecularShell/VitaShell and copy your built VPK to ux0:data through FTP. You can then install it as a bubble.

Debugging

Currently, there is minimal debugging support. If your app crashes, a core dump will be generated in ux0:data. You can then parse the core dump to figure out what caused the crash. If you would like to help contribute to the Vita SDK project, we would love to have a debugger for the system.

Porting libraries

vitasdk ships with a flexible makepkg-based build system for building packages that can later be installed into the SDK. To get started, clone vitasdk/packages, cd into a directory with a VITABUILD file and run vita-makepkg. Once the package is built, you can install it with vdpm ./name-version-arm.tar.xz.

If you want to write your own VITABUILD file, here are a few examples that you can follow: a library using autotools-style build, a library using CMake, and a library where a Vita-specific patch is required.

Community

Thanks to the Vita SDK team for creating everything! The logo was designed by @Acemad_.

You can find most of us in the #vitasdk room in FreeNode IRC. If you have any questions or need any help, don’t hesitate to ask! We also have a forums for discussions and a wiki for details on reversing engineering the Vita.