Lua Player Plus for 3DS
C C++ Objective-C Makefile GLSL PHP
Latest commit 9dfeafa Nov 13, 2016 @Rinnegatamante committed on GitHub Added luaIrc to Showcase

README.md

Description

Lua Player Plus 3DS is the first lua interpreter made for Nintendo 3DS.

The interpreter currently runs under Lua 5.3.1. It has also a debug FTP server to correct your errors in runtime.

Official documentation: http://rinnegatamante.it/lpp-3ds_doc.html
Official support board: http://rinnegatamante.it/board/forumdisplay.php?fid=12

Features

Graphics
  • Advanced 2D Graphics Rendering (CPU and GPU)
  • Basic 3D Rendering
  • Native support to TTF fonts
  • Native support to BMP/PNG/JPG images
  • Native support to JPGV video files
  • Native support to stereoscopic 3D effect
Sounds
  • Sound system with support for WAV/AIFF/OGG audio files
  • Support to different interpolation modes (None, Linear, Polyphase)
  • Complete access to Microphone for sound registration
Controls
  • Controls system with full console support
  • Built-in Keyboard system
Network
  • Easy to use networking basic features
  • Built-in Mail Sender system
  • Complete sockets system support
  • Built-in debug FTP server
  • SSL connections support
System
  • Access to a lot of Nintendo syscalls
  • Native support to CIA files managing
  • Native support to 3DSX and SMDH files
  • Native support to ZIP archives
  • I/O access for SD card and Extdata archives
  • Native support to console Camera to take photos
  • Native support to ARM9 payloads loading
Utilities
  • Timer system
  • Advanced arithmetical functions support (math library)

Nightly Builds

We offer an automated builder service for our nightly builds. Nightly builds are automatically updated every 4 hours by a server we own. To take advantage of this service, you should visit this page.

Showcase

Here are some 3DS homebrews made using Lua Player Plus 3DS:

Games
Utilities
Engines & Interpreters
Updaters

Compiling the source

The repository will provide you a full set of all of the needed libraries. Take in mind that a lot of them are modified versions of the original ones so if you want to update them, take a look at this repository where you can find sourcecodes of every pre-builded library used in this repository. Also take in mind that libkhax includes also libSu sourcecode. Last but not least, please note that libjpeg.a file is a standard compilation of libjpeg-turbo.

Lua Player Plus 3DS supports different flags to enables some features:
-DUSE_MEMCHUNKHAX2 enables memchunkhax2 usage through svchax at startup for firmwares between 9.3 and 10.7.
-DCITRA3DS_COMPATIBLE removes romFs support causing Citra3DS emulator crash.
-DSKIP_ERROR_HANDLING disables error handling for faster code execution (this is used for Unsafe version).
-DFORCE_SD forces interpreter to load main script from SD instead of romFs filesystem.
-DFORCE_DSP forces interpreter to use dsp::DSP audio service even if csnd:SND is available.

Credits

  • Everyone involved in ctrulib creation
  • Smealum for ftpony source used for debug ftp server
  • Myria for libkhax
  • xerpi for sf2dlib
  • fincs for citro3dlib
  • Sean Barrett for stb_truetype
  • Everyone involved in lodepng, zlib, mpg123, libogg, vorbisfile libraries
  • Everyone involved in Brahma developing
  • aliaspider for svchax
  • Misledz for the Lua Player Plus 3DS logo
  • EasyRPG Team for the AudioDecoder used for MP3 support
  • ksanislo for the network module improvements
  • Special thanks to Aurelio and ihaveamac for testing interpreter features