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

Rinnegatamante

Well-Known Member
OP
Member
Joined
Nov 24, 2014
Messages
3,162
Trophies
2
Age
29
Location
Bologna
Website
rinnegatamante.it
XP
4,857
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,825
Trophies
1
Location
The State of Denial
Website
gbatemp.net
XP
5,666
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,808
Trophies
2
XP
3,384
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,162
Trophies
2
Age
29
Location
Bologna
Website
rinnegatamante.it
XP
4,857
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,162
Trophies
2
Age
29
Location
Bologna
Website
rinnegatamante.it
XP
4,857
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
83
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,162
Trophies
2
Age
29
Location
Bologna
Website
rinnegatamante.it
XP
4,857
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

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • The Real Jdbye @ The Real Jdbye:
    @Psionic Roshambo i didn't go amd for one specific reason, the AI performance is way behind nvidia
    +1
  • The Real Jdbye @ The Real Jdbye:
    i just got a 4070ti
  • The Real Jdbye @ The Real Jdbye:
    oh yeah also DLSS is a pretty solid reason to go nvidia since fidelityfx is kinda crap
  • The Real Jdbye @ The Real Jdbye:
    and now with the rtx video upscaling, and sdr->hdr conversion, even more reason to go nvidia
  • The Real Jdbye @ The Real Jdbye:
    both of which work well in potplayer
  • The Real Jdbye @ The Real Jdbye:
    amd is a bit cheaper though
  • Psionic Roshambo @ Psionic Roshambo:
    Cheaper and they are less stingy with the RAM not a big issue now but I can imagine in a yard or two things might be different
  • Psionic Roshambo @ Psionic Roshambo:
    Year not yard lol
  • The Real Jdbye @ The Real Jdbye:
    the vram is one advantage when it comes to AI but ends up being slower even with that and really AI is the only use case that needs more than 12gb vram right now
  • Psionic Roshambo @ Psionic Roshambo:
    Interesting lol
  • Psionic Roshambo @ Psionic Roshambo:
    I think I watched a video where two games at 4K where eating just over 16GB of RAM and it's the one case where the 7900XT and XTX pulled ahead (minus RTX of course)
  • Psionic Roshambo @ Psionic Roshambo:
    So my opinion is that they could age a bit better in the future, and maybe AMD will continue improving them via drivers like they tend to do. No guarantee there but they have done it in the past. Just a feeling I have.
  • The Real Jdbye @ The Real Jdbye:
    cyberpunk at 4k without DLSS/fidelityfx *might* exceed 12gb
    +1
  • The Real Jdbye @ The Real Jdbye:
    but that game barely runs at native 4k
  • Psionic Roshambo @ Psionic Roshambo:
    I think it was some newer games and probably poorly optimized PS4 or PS5 ports
  • The Real Jdbye @ The Real Jdbye:
    they definitely will age better but i feel dlss might outweigh that since it looks about as good as native resolution and much less demanding
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    When I played Cyberpunk on my old 2080 Ti it sucked lol
  • The Real Jdbye @ The Real Jdbye:
    AMD could introduce something comparable to DLSS but nvidia's got a lot more experience with that
  • The Real Jdbye @ The Real Jdbye:
    least amd 7xxx has tensor cores which the previous generations didn't so there is the potential for AI upscaling
  • Psionic Roshambo @ Psionic Roshambo:
    They have FSR or whatever it's called and yeah it's still not great
  • The Real Jdbye @ The Real Jdbye:
    so AMD seem to finally be starting to take AI seriously
  • Psionic Roshambo @ Psionic Roshambo:
    Oh yeah those new 8000 CPUs have AI cores built in that's interesting
  • Psionic Roshambo @ Psionic Roshambo:
    Maybe they plan on offloading to the CPU?
    Psionic Roshambo @ Psionic Roshambo: Maybe they plan on offloading to the CPU?