Need help with vitaGL?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

Rinnegatamante
260 Stars 31 Forks GNU Lesser General Public License v3.0 623 Commits 2 Opened issues

Description

openGL wrapper for PSVITA.

Services available

!
?

Need anything else?

Contributors list

# 131,072
Shell
Lua
PHP
Homebre...
581 commits
# 49,388
C
Shell
C++
jailbre...
13 commits
# 420,413
C
Shell
C++
playsta...
9 commits
# 643,997
C
C++
Shell
5 commits
# 468,255
C
Shell
C++
quake
4 commits
# 562,767
C
C++
Shell
sed
4 commits
# 424,841
C
C++
Shell
3 commits
# 122,507
C
Shell
C++
vita
1 commit
# 171,472
Reverse...
android...
C
C++
1 commit

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.

Prerequisites

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

Build Instructions

In order to build vitaGL use the following command:

make install
.
These are all the available flags usable when compiling the library:
HAVE_SHARK_LOG=1
Enables logging support in runtime shader compiler.
LOG_ERRORS=1
Errors will be logged with sceClibPrintf.
LOG_ERRORS=2
Errors will be logged to ux0:data/vitaGL.log.
NO_DEBUG=1
Disables most of the error handling features (Faster CPU code execution but code may be non compliant to all OpenGL standards).
NO_TEX_COMBINER=1
Disables texture combiner support (GLCOMBINE) for faster fixed function pipeline code execution.
`NO
SHADERCACHE=1` Disables extra shader cache layer on filesystem (ux0:data/shadercache) for fixed function pipeline.
SOFTFP_ABI=1
Compiles the library in soft floating point compatibility mode.
DRAW_SPEEDHACK=1
Enables faster code for draw calls. May cause crashes.
MATH_SPEEDHACK=1
Enables faster code for matrix math calls. May cause glitches.
SHADER_COMPILER_SPEEDHACK=1
Enables faster code for glShaderSource. May cause errors.
HAVE_UNFLIPPED_FBOS=1
Framebuffers objects won't be internally flipped to match OpenGL standards.
SHARED_RENDERTARGETS=1
Makes small framebuffers objects use shared rendertargets instead of dedicated ones.
CIRCULAR_VERTEX_POOL=1
Makes temporary data buffers being handled with a circular pool.
PHYCONT_ON_DEMAND=1
Makes the physically contiguous RAM be handled with separate memblocks instead of an heap.
SAMPLER_UNIFORMS=1
When enabled, shader samplers are treated as uniforms and are rebindable like in regular OpenGL.
UNPURE_TEXTURES=1
Makes legal to upload textures without base level.
HAVE_DEBUGGER=1
Enables lightweighted on screen debugger interface.
HAVE_RAZOR=1
Enables debugging features through Razor debugger (retail and devkit compatible).
HAVE_RAZOR=2
Enables debugging features through Razor debugger (retail and devkit compatible) with ImGui interface.
HAVE_DEVKIT=1
Enables extra debugging features through Razor debugger available only for devkit users.
HAVE_DEVKIT=2
Enables extra debugging features through Razor debugger available only for devkit users with ImGui interface.

Samples

You can find samples in the samples folder in this repository.

Help and Troubleshooting

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

Projects actually using vitaGL

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

Libraries:
sdl12_gl - SDL 1.2 Vita port adapted to work with vitaGL as renderer
imgui_vita - Port of dear imGui

sdl12_gl Apps:
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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.