openGL wrapper for PSVITA.
vitaGL is an opensource openGL driver for PSVITA development. It acts as a wrapper between openGL and sceGxm and allows to use a subset of openGL functions with fully hardware acceleration by translating the code to sceGxm equivalent.
In order to run an homebrew made with vitaGL, you are going to need libshacccg.suprx extracted and decrypted on your console. You can refer to this guide for more details about its extraction: https://samilops2.gitbook.io/vita-troubleshooting-guide/shader-compiler/extract-libshacccg.suprx
If you want your homebrew to not be hard dependant from libshacccg.suprx, you can either: - Stick to precompiled shaders usage only (glShaderBinary). - Stick to fixed function pipeline features (GL1) while using this old legacy version of the library: https://github.com/Rinnegatamante/vitaGL/tree/legacyprecompiledffp
In order to build vitaGL use the following command:
HAVE_SHARK_LOG=1Enables logging support in runtime shader compiler.
LOG_ERRORS=1Errors will be logged with sceClibPrintf.
LOG_ERRORS=2Errors will be logged to ux0:data/vitaGL.log.
NO_DEBUG=1Disables most of the error handling features (Faster CPU code execution but code may be non compliant to all OpenGL standards).
NO_TEX_COMBINER=1Disables texture combiner support (GLCOMBINE) for faster fixed function pipeline code execution.
SOFTFP_ABI=1Compiles the library in soft floating point compatibility mode.
DRAW_SPEEDHACK=1Enables faster code for draw calls. May cause crashes.
MATH_SPEEDHACK=1Enables faster code for matrix math calls. May cause glitches.
SHADER_COMPILER_SPEEDHACK=1Enables faster code for glShaderSource. May cause errors.
HAVE_UNFLIPPED_FBOS=1Framebuffers objects won't be internally flipped to match OpenGL standards.
SHARED_RENDERTARGETS=1Makes small framebuffers objects use shared rendertargets instead of dedicated ones.
CIRCULAR_VERTEX_POOL=1Makes temporary data buffers being handled with a circular pool.
PHYCONT_ON_DEMAND=1Makes the physically contiguous RAM be handled with separate memblocks instead of an heap.
SAMPLER_UNIFORMS=1When enabled, shader samplers are treated as uniforms and are rebindable like in regular OpenGL.
UNPURE_TEXTURES=1Makes legal to upload textures without base level.
HAVE_DEBUGGER=1Enables lightweighted on screen debugger interface.
HAVE_RAZOR=1Enables debugging features through Razor debugger (retail and devkit compatible).
HAVE_RAZOR=2Enables debugging features through Razor debugger (retail and devkit compatible) with ImGui interface.
HAVE_DEVKIT=1Enables extra debugging features through Razor debugger available only for devkit users.
HAVE_DEVKIT=2Enables extra debugging features through Razor debugger available only for devkit users with ImGui interface.
You can find samples in the samples folder in this repository.
If you plan to use vitaGL for one of your projects, you can find an official channel to get help with it on Vita Nuova discord server: https://discord.gg/PyCaBx9
Here you can find a list of projects using vitaGL:
Direct OpenGL Usage:
vitaQuake - Port of Quake I and mission packs
vitaQuakeII -Port of Quake II and mission packs
vitaQuakeIII - Port of ioquake3 (Quake III: Arena, Quake III: Team Arena, OpenArena, Urban Terror)
vitaRTCW - Port of iortcw (Return to Castle Wolfenstein)
vitaHexenII - Port of Hexen II
vitaXash3D - Port of Xash3D (Half Life, Counter Strike 1.6)
Fade to Black - Port of Fade to Black
vitaVoyager - Port of lilium-voyager (Star Trek Voyager: Elite Force)
Daedalus X64 - Port of Daedalus X64 (N64 Emulator)
RetroArch - Vita's GL1 video driver of RetroArch
vitaET - Port of ET: Legacy (Wolfenstein: Enemy Territory)
flycast - Port of flycast (Dreamcast Emulator)
AvP Gold - Port of Aliens versus Predator: Gold Edition
prboom-plus - Port of PrBoom Plus (Doom engine sourceport)
VITAlbum - Filebrowser and image viewer app
sm64-vita - Port of Super Mario 64
srb2-vita - Port of Sonic Robo Blast 2
rvm_soniccd-vitagl - Port of rvm_soniccd (Sonic CD decompilation)
Hurrican - Port of Hurrican
VITA Homebrew Sorter - App to sort your app.db
jfsw-vita - Port of JFSW (Shadow Warrior Classic sourceport)
jfduke3d-vita - Port of JFDuke3D (Duke Nukem 3D sourceport)
d3es-vita - Port of Doom 3
bc2_vita - Port of Battlefield Bad Company 2 Mobile
JetMan 3D - Fanmade remake of Jetpac for ZX Spectrum
FF3_Vita - Port of Final Fantasy III (3D Remake)
FF4_Vita - Port of Final Fantasy IV (3D Remake)
TheXTech Vita - Port of Super Mario Bros X
SuperMarioWar - Port of Super Mario War
ZeldaOLB - Port of Zelda: Oni Link Begins
ZeldaROTH - Port of Zelda: Return of the Hylian
Zelda3T - Port of Zelda: Time to Triumph
ZeldaNSQ - Port of Zelda: Navi's Quest
vitaWolfen - Port of Wolf4SDL (Wolfenstein 3D)
meritous - Port of meritous
Dstroy Vita - Port of Dstroy