PS Vita

SDL port for the Sony Playstation Vita and Sony Playstation TV

Credit to

  • xerpi, cpasjuste and rsn8887 for initial (vita2d) port
  • vitasdk/dolcesdk devs
  • CBPS discord (Namely Graphene and SonicMastr)


To build for the PSVita, make sure you have vitasdk and cmake installed and run:

   cmake -S. -Bbuild -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake -DCMAKE_BUILD_TYPE=Release
   cmake --build build
   cmake --install build


  • gles1/gles2 support and renderers are disabled by default and can be enabled by configuring with -DVIDEO_VITA_PVR=ON These renderers support 720p and 1080i resolutions. These can be specified with: SDL_setenv("VITA_RESOLUTION", "720", 1); and SDL_setenv("VITA_RESOLUTION", "1080", 1);
  • Desktop GL 1.X and 2.X support and renderers are also disabled by default and also can be enabled with -DVIDEO_VITA_PVR=ON as long as gl4es4vita is present in your SDK. They support the same resolutions as the gles1/gles2 backends and require specifying SDL_setenv("VITA_PVR_OGL", "1", 1); anytime before video subsystem initialization.
  • gles2 support via PIB is disabled by default and can be enabled by configuring with -DVIDEO_VITA_PIB=ON
  • By default SDL emits mouse events for touch events on every touchscreen.
    Vita has two touchscreens, so it's recommended to use SDL_SetHint(SDL_HINT_TOUCH_MOUSE_EVENTS, "0"); and handle touch events instead. Individual touchscreens can be disabled with: SDL_setenv("VITA_DISABLE_TOUCH_FRONT", "1", 1); and SDL_setenv("VITA_DISABLE_TOUCH_BACK", "1", 1);
  • Support for L2/R2/R3/R3 buttons, haptic feedback and gamepad led only available on PSTV, or when using external ds4 gamepad on vita.