Skip to content

Rinnegatamante/lpp-vita

Repository files navigation

Build Status

Description

Lua Player Plus Vita is the first lua interpreter made for the Sony PlayStation Vita.

The interpreter currently runs under LuaJIT 2.1 with slight additions from Lua 5.2.4 (for example the bit32 lib for bitwise operations). It has also a debug FTP server to correct your errors in runtime.

Official documentation: http://rinnegatamante.github.io/lpp-vita/

Features

Graphics
  • Advanced 2D Graphics Rendering (GPU).
  • Basic 3D Graphics Rendering (GPU).
  • Native support to OBJ models.
  • Native support to TTF/PGF/PVF/OTF fonts.
  • Native support to BMP/PNG/JPG images.
  • Native support to GIF animated images.
  • Built-in rescaler to perform portings from lpp-3ds easily.
Multimedia
  • Complete sound system with support for:
    • WAVEform audio files (.wav) with PCM8/PCM16/ADPCM codecs.
    • Audio Interchange File Format audio files (.aif/.aiff) with PCM8/PCM16 codecs.
    • Moving Picture Expert Group-1/2 Audio Layer 3 audio files (.mp3) with MPEG-1 Audio Layer III/MPEG-2 Audio Layer III codecs.
    • Musical Instrument Digital Interface audio files (.midi).
    • Ogg Media audio files (.ogg/.opus) with Vorbis/Opus codecs.
  • Native support to MP4 video files with support for .srt and .vtt subtitles files.
Controls
  • Controls system with full console support.
  • Support to dualshock rumble feature for PSTV.
  • Support to home button locking/unlocking.
  • Support to lightbar color change for PSTV.
  • Support to gyroscope and accelerometer reading.
  • Support to both touchpads reading.
Network
  • Built-in debug FTP server.
  • Complete sockets system support.
  • Native support to HTTP requests.
  • Support to SSL (HTTPS) for file downloading.
System
  • Access to a lot of Sony syscalls.
  • I/O access for any filesystem.
  • Native support to ZIP archives.
  • Native support to SFO file descriptors.
  • Native support to SQLite databases.
  • Native support to apps installation/uninstallation.
Utilities
  • Timer system.
  • Advanced arithmetical functions support (math library).

Nightly Builds

We offer an automated builder service for our nightly builds powered by Azure Pipelines CI. Nightly builds are automatically updated at each new commit. To take advantage of this service, you can find a proper release here on GitHub with the Nightly tag.

Showcase

Here are some PSVITA homebrews made using Lua Player Plus Vita:

Games
Utilities
Emulators
Engines & Interpreters

Compiling the source

To correctly compile lpp-vita you'll need vitasdk installed and correctly set in your PATH environment variable. You'll also need the following libraries: zlib, libmpg123, libogg, libvorbis, libsndfile, vita2d, libftpvita, libpng, libjpeg-turbo, freetype, libspeexdsp, libopus, lua-jit, libdl. You can install most of them with vita-portlibs and EasyRPG Vita toolchain.

Lua Player Plus Vita supports different flags to enables some features:
-DSKIP_ERROR_HANDLING disables error handling for faster code execution.
-DPARANOID enables extra internal error handling.

Credits

  • vitasdk contributors.
  • xerpi for vita2d and debug FTP code.
  • gnmmarechal for testing the interpreter.
  • hyln9 for vita-luajit.
  • frangarcj for the help during 3D rendering feature addition.
  • TheFloW for some snippets i used and some ideas i borrowed.
  • Misledz for the Lua Player Plus logo.
  • Arkanite for providing a sample for sceAvPlayer used to implement the Video module.
  • EasyRPG Team for the Audio Decoder used for Sound module.
  • lecram for gifdec usd for animated GIFs support.