Homebrew [Release] Lua Player Plus 3DS (lpp-3ds) - LUA interpreter for 3DS

Rinnegatamante

Well-Known Member
OP
Member
Joined
Nov 24, 2014
Messages
3,161
Trophies
0
Age
26
Location
Bologna
Website
rinnegatamante.it
XP
4,663
Country
Italy
lpplogo.png

Github: https://github.com/Rinnegatamante/lpp-3ds

# Description

Lua Player Plus 3DS is a Lua interpreter for 3DS/N3DS made by me forked from original lpp-c++ (PSP/PSVITA) trunk made by me and NaNNi.

lpp-3ds runs under Lua 5.3.1.

It provides different cool features like audio playback, video playback, zip extraction, images loading support, alpha blending, network features, socketing features, etc...

It also have an integrated debugger with FTP server support so you can patch your scripts in runtime.

As always, using a Lua interpreter is very simple, you just have to rename lpp-3ds-3dsx as MyHomebrewName.3dsx, put it in /3ds/MyHomebrewName/ folder and start writing your code in /3ds/MYHomebrewName/index.lua.

In the package you'll find a documentation for all lpp-3ds functions, a 3DSX build, an ELF build to make your CIA/3DS builds, some Lua scripts samples.

# 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
* Native support to OBJ models

##### 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

##### 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)

# Showcase

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

##### Games

* [Labyrinth 3D](http://gbatemp.net/threads/re-release-labyrinth-3d.409007/)
* [Blackjack 3DS](http://gbatemp.net/threads/release-blackjack-3ds.398776/)
* [Asteroids 3D](https://gbatemp.net/threads/release-asteroids-3d.385600/)
* [PixelRoad](http://gbatemp.net/threads/pixelroad-a-stupid-game-hb-to-test-lpp.375292/)
* [3DSudoku](http://gbatemp.net/threads/release-3dsudoku-sudoku-game-for-3ds.388253/)
* [WANT3D](http://gbatemp.net/threads/release-want3d.398822/)
* [4Rows](https://gbatemp.net/threads/release-4rows.384352/)
* [3DSHangman](https://gbatemp.net/threads/release-3dshangman.379285/)
* [3DS Briscola](http://gbatemp.net/threads/3ds-briscola-briscola-card-game-for-3ds.376901/)

##### Utilities

* [CHMM2](http://gbatemp.net/threads/release-chmm2-custom-home-menu-manager-2.397543/)
* [Sunshell](http://gbatemp.net/threads/release-sunshell-a-powerfull-shell-for-3ds.382483/)
* [ORGANIZ3D](http://gbatemp.net/threads/release-organiz3d-filebrowser-for-3ds.377783/)
* [NASA](http://gbatemp.net/threads/release-nasa-universal-cia-manager-for-fw-4-1-10-3.409806/)
* [Manga Reader](http://gbatemp.net/threads/release-manga-reader.399276/)
* [Alarm Clock](http://gbatemp.net/threads/release-alarm-clock.397624/)
* [SOON!](http://gbatemp.net/threads/soon-sup...-cool-legal-open-source-cia-installer.387268/)
* [Bird Whisperer](http://gbatemp.net/threads/release-bird-whisperer-a-notification-creater.404669/)
* [Dice 3DS](https://gbatemp.net/threads/release-dice-3ds-roll-some-dice-pretty-straightforward.400086/)
* [VN3DS](http://gbatemp.net/threads/w-i-p-vn3ds-visual-novel-interpreter-for-3ds-homebrew.396564/)
* [LiveScore 3DS](http://gbatemp.net/threads/release-livescore-3ds.414693/)

# Credits

* Everyone involved in ctrulib creation
* Smealum for ftpony source used for debug ftp server
* Myria for libkhax
* Lode Vandevenne for lodepng
* xerpi for sf2dlib
* fincs for citro3dlib
* Sean Barrett for stb_truetype
* Jean-loup Gailly and Mark Adler for zlib
* Everyone involved in Brahma developing
* Everyone involved in libSu developing
* Misledz for the Lua Player Plus 3DS logo
* Special thanks to Aurelio and ihaveamac for testing interpreter features


# Download

lpp-3ds Rev. 4: Rinnegatamante's Archive

# Useful links

- Documentation: http://rinnegatamante.it/lpp-3ds_doc.html
- Original lpp repository: https://github.com/Rinnegatamante/lua-player-plus
- lpp information: http://rinnegatamante.it/site/lpp.php
 
Last edited by Rinnegatamante,

WeedZ

Possibly an Enlightened Being
Global Moderator
Joined
Jan 13, 2015
Messages
3,730
Trophies
1
Location
The State of Denial
Website
gbatemp.net
XP
4,855
Country
United States
I made few months ago a topic to announce lpp-3ds but i never released it officialyy as Cid2Mizard told me in PM so i taught to make a Release Pack for it.

Lua Player Plus 3DS
aka lpp-3ds

Description:
Lua Player Plus 3DS is a LUA interpreter for 3DS/N3DS made by me forked from original lpp-c++ (PSP/PSVITA) trunk made by me and NaNNi.

It provides different cool features like audio playback, video playback, zip extraction, images loading support, alpha blending, network features, socketing features, etc...

As always, using a LUA interpreter is very simple, you just have to rename lpp-3ds-3dsx as MyHomebrewName.3dsx, put it in /3ds/MyHomebrewName/ folder and start writing your code in /3ds/MYHomebrewName/index.lua.

In the package you'll find a documentation for all lpp-3ds functions, a 3DSX build, an ELF build to make your CIA/3DS builds, some LUA scripts samples.

Features:
- 2D Graphics system with different built-in functions for drawing text, creating debug consoles, filling rectangles, drawing pixels, etc.
- Alpha channel support
- Native support to BMP/PNG/JPG images
- Sound system for reproducing audio files and recording audio with microphone
- Native support to WAV/AIFF/OGG audio files
- Complete access to Nintendo 3DS controls
- I/O features for SDMC and EXTDATA
- Video system for reproducing video files with native support to BMPV/JPGV video files
- Timer system
- Advanced arithmetical functions
- Native 3D support
- Internet connectivity features through Network module (Like downloading files, sending mails)
- Socketing functions (Like FTP server)
- Read access to different 3DS info (Firmware, Mac Address, Kernel Version, Region, etc.)
- Built-in Keyboard system
- Native support to 3DSX homebrews and SMDH homebrew datas
- Native support to CIA archives
- Native support to ZIP archives
- Access to some 3DS syscalls (Reboot System, Launching Cartridges, etc.)

Some homebrews which uses lpp-3ds core:
- Sunshell ( http://gbatemp.net/threads/release-sunshell-a-powerfull-shell-for-3ds.382483/ )
- ORGANIZ3D ( http://gbatemp.net/threads/release-organiz3d-filebrowser-for-3ds.377783/ )
- PixelRoad ( http://gbatemp.net/threads/pixelroad-a-stupid-game-hb-to-test-lpp.375292 )
- 3DS Briscola ( http://gbatemp.net/threads/3ds-briscola-briscola-card-game-for-3ds.376901/ )
- CHMM ( http://gbatemp.net/threads/chmm-custom-homemenu-manager.379349/ )
- Big Red Menu ( http://gbatemp.net/threads/big-red-menu-legal-cia-installer-uninstaller.379061/ )
- 3DSHangman ( http://gbatemp.net/threads/release-3dshangman.379285/ )

Credits:
- Lua Player Plus 3DS made by Rinnegatamante
- Original Lua Player Plus made by Rinnegatamante & NaNNi

Thanks to:
- smealum for libctru and ftpony sourcecode
- StapleButter for debug font
- Lode Vandevenne for lodepng
- Jean-loup Gailly and Mark Adler for zlib
- Xiph.org Foundation for libogg and vorbisfile
- Aurelio for testing, bug-fixing and various help with codes and implementations

Download:
lpp-3ds Rev. 1: https://github.com/Rinnegatamante/lpp-3ds/releases/download/r1/Lua.Player.Plus.3DS.rar

Useful links:
- Documentation: http://rinnegatamante.netsons.org/lpp-3ds_doc.html
- Support board: http://luaplayerplus.proboards.com/
- Original lpp repository: https://github.com/Rinnegatamante/lua-player-plus
- lpp information: http://rinnegatamante.netsons.org/site/lpp.php
Rinne, you've kind of taken control of the homebrew scene. It's great to have a dev with such a strong interest in expanding the scene. All your work is greatly appreciated.
 
  • Like
Reactions: LinkMain111

cvskid

Well-Known Member
Member
Joined
Apr 13, 2014
Messages
2,669
Trophies
1
XP
2,375
Country
United States
There's no way to use this as a .3ds to load up the lua player then use the player itself to load .3dsx files?
 

Rinnegatamante

Well-Known Member
OP
Member
Joined
Nov 24, 2014
Messages
3,161
Trophies
0
Age
26
Location
Bologna
Website
rinnegatamante.it
XP
4,663
Country
Italy
So does this play 3d movies at 30-60fps? I'd try it now but waiting for a sale on the 22nd to buy a new 3ds

Video playback is the most "BETA" module of the interpreter cause i have to improve it with different things (like multithread for audio streaming and GPU rendering instead of CPU ones). For now it's very far to 30-60 FPS and it can be used with very good results only for anime ( As you can see here: http://rinnegatamante.netsons.org/videos/test2.php ).

There's no way to use this as a .3ds to load up the lua player then use the player itself to load .3dsx files?

Absolutely impossible, 3DSX launching is done through hb:HB service which is an exclusive of ninjhax users.

Btw, are you done updating lpp? Is it at its final version?

I'm constantly updating lpp-3ds, this can be thought as the first stable and official release of the interpreter.
Next version will bring different security checks (currenyl lpp-3ds has different "vulnerabilities" like the ones reported by yellows8: https://github.com/Rinnegatamante/lpp-3ds/issues/4 ) which i missed cause i done a fast release without properly patching all lpp-3ds modules.
 
  • Like
Reactions: cvskid and yuyuyup

Rinnegatamante

Well-Known Member
OP
Member
Joined
Nov 24, 2014
Messages
3,161
Trophies
0
Age
26
Location
Bologna
Website
rinnegatamante.it
XP
4,663
Country
Italy
Could you make an interpreter for LPP 3DS for pc so you don't have to run it through an emulator to test a project?

It's very time consumpting to create a LUA interpreter based on openGL for Windows. Citra latest build support quite good lpp-3ds. Maybe, i can create an improved version of lpp-3ds.3dsx to be fully used with Citra as PC debugger but i need someone who test and report me all bugs he encounters with Citra.
debug.png

debug2.png

organiz3d.png
 

cmbeke

Member
Newcomer
Joined
Mar 25, 2015
Messages
22
Trophies
0
XP
63
Country
United States
Is TTF support being planned? A quick look through the documents show that it's not there now and I was wondering if I would be reinventing the wheel with creating a tile based font system.
 
  • Like
Reactions: Margen67

Rinnegatamante

Well-Known Member
OP
Member
Joined
Nov 24, 2014
Messages
3,161
Trophies
0
Age
26
Location
Bologna
Website
rinnegatamante.it
XP
4,663
Country
Italy
Is TTF support being planned? A quick look through the documents show that it's not there now and I was wondering if I would be reinventing the wheel with creating a tile based font system.

I was working months ago with NaNNI to port stb_truetype to lpp-3ds but with no good results (if you check old commit on repository you can see stb_truetype in Credits.). Anyway, TTF support will be added in the future.
 
  • Like
Reactions: Margen67 and cmbeke
General chit-chat
Help Users
    matpower @ matpower: And it is well supported, that's why it is still hyped