Coder Social home page Coder Social logo

quietstorm1785 / vitagl Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rinnegatamante/vitagl

0.0 2.0 0.0 3.26 MB

openGL wrapper for PSVITA.

License: GNU Lesser General Public License v3.0

Makefile 0.38% C 97.89% Batchfile 0.02% C++ 1.72%

vitagl's Introduction

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:

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.
HAVE_CUSTOM_HEAP=1 Replaces sceClib heap implementation with custom one (Less efficient but safer).
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 (GL_COMBINE) for faster fixed function pipeline code execution.
NO_SHADER_CACHE=1 Disables extra shader cache layer on filesystem (ux0:data/shader_cache) 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.
SAMPLERS_SPEEDHACK=1 Enables faster code for samplers resolution during shaders usage. May cause glitches.
SHADER_COMPILER_SPEEDHACK=1 Enables faster code for glShaderSource. May cause errors.
HAVE_HIGH_FFP_TEXUNITS=1 Enables support for more than 2 texunits for fixed function pipeline at the cost of some performance loss.
HAVE_DISPLAY_LISTS=1 Enables support for display lists at the cost of some performance loss.
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.
HAVE_PTHREAD=1 Use pthread instead of sceKernel for starting garbage collector thread.
SINGLE_THREADED_GC=1 Makes the garbage collector run on main thread.
PHYCONT_ON_DEMAND=1 Makes the physically contiguous RAM be handled with separate memblocks instead of an heap.
UNPURE_TEXTURES=1 Makes legal to upload textures without base level.
HAVE_DEBUGGER=1 Enables lightweighted on screen debugger interface.
HAVE_DEBUGGER=2 Enables lightweighted on screen debugger interface with extra information (devkit only).
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)
FF5_Vita - Port of Final Fantasy V
TheXTech Vita - Port of Super Mario Bros X
World of Goo Vita - Port of World of Goo
Baba Is You Vita - Port of Baba Is You
Crazy Taxi Vita - Port of Crazy Taxi Classic
YoYo Loader - Loader for Game Maker Studio made games
TWoM Vita - Port of This War of Mine and This War of Mine: Stories - Father's Promise
StaticJK - Port of Star Wars: Jedi Academy
Nazi Zombies Portable - Port of Nazi Zombies Portable
Quakespasm-Spiked - Port of Quakespasm Spiked (Limit removed Quake Engine sourceport)

Libraries:
sdl12_gl - SDL 1.2 Vita port adapted to work with vitaGL as renderer backend
SDL2_vitagl - SDL2 Vita port adapted to work with vitaGL as renderer backend
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

vitagl's People

Contributors

rinnegatamante avatar theofficialflow avatar bythos14 avatar shroomking avatar usineur avatar fgsfdsfgs avatar frangarcj avatar electric1447 avatar rrhyacinth avatar georgewaraw avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.