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

Discussion in '3DS - Homebrew Development and Emulators' started by Rinnegatamante, Mar 18, 2015.

  1. Rinnegatamante
    OP

    Rinnegatamante GBAtemp Psycho!

    Member
    3,127
    3,263
    Nov 24, 2014
    Italy
    Bologna

    # 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, Feb 28, 2016


  2. DarkFlare69

    DarkFlare69 GBAtemp Psycho!

    Member
    4,688
    2,514
    Dec 8, 2014
    United States
    Ohio
    Good job making an official release!
     
    Margen67 likes this.
  3. KingBlank

    KingBlank King of Nothing

    Member
    559
    214
    Sep 17, 2008
    New Zealand
    New Zealand
    Awesome, Cant wait to try this out!
     
    Margen67 likes this.
  4. Cid2mizard

    Cid2mizard GBAtemp Fan

    Member
    362
    210
    Aug 16, 2007
    France
    Maubeuge
    I think offer an official version is an excellent initiative . You did a great job, hope the awakening of a Lua community.​
     
    Margen67 likes this.
  5. DarkFlare69

    DarkFlare69 GBAtemp Psycho!

    Member
    4,688
    2,514
    Dec 8, 2014
    United States
    Ohio
    Btw, are you done updating lpp? Is it at its final version?
     
  6. WeedZ

    WeedZ Possibly an enlightened being

    Member
    GBAtemp Patron
    WeedZ is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    2,795
    5,454
    Jan 13, 2015
    United States
    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.
     
    LinkMain111 likes this.
  7. yuyuyup

    yuyuyup GBAtemp Psycho!

    Member
    3,336
    773
    Apr 30, 2006
    United States
    USA MTN timezone
    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
     
    Margen67 likes this.
  8. cvskid

    cvskid GBAtemp Addict

    Member
    2,225
    817
    Apr 13, 2014
    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?
     
  9. Rinnegatamante
    OP

    Rinnegatamante GBAtemp Psycho!

    Member
    3,127
    3,263
    Nov 24, 2014
    Italy
    Bologna
    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 ).

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

    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.
     
    cvskid and yuyuyup like this.
  10. yodamerlin

    yodamerlin Bok bok.

    Member
    309
    162
    Apr 1, 2014
    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?
     
    Margen67 and ArgentoVivo like this.
  11. Rinnegatamante
    OP

    Rinnegatamante GBAtemp Psycho!

    Member
    3,127
    3,263
    Nov 24, 2014
    Italy
    Bologna
    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.
    [​IMG]
    [​IMG]
    [​IMG]
     
    Margen67 and Cid2mizard like this.
  12. Rinnegatamante
    OP

    Rinnegatamante GBAtemp Psycho!

    Member
    3,127
    3,263
    Nov 24, 2014
    Italy
    Bologna
    Probably, on next release CPU rendering will be replaced by GPU rendering cause i noticed some framedrop with simple 3D enviroments like the one i'm developing for Asteroids 3D:
     
    Margen67, Cid2mizard and yodamerlin like this.
  13. cmbeke

    cmbeke Member

    Newcomer
    22
    10
    Mar 25, 2015
    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.
     
    Margen67 likes this.
  14. Rinnegatamante
    OP

    Rinnegatamante GBAtemp Psycho!

    Member
    3,127
    3,263
    Nov 24, 2014
    Italy
    Bologna
    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.
     
    Margen67 and cmbeke like this.
  15. filfat

    filfat Musician, Developer & Entrepreneur

    Member
    1,229
    858
    Nov 24, 2012
    Somebody should buy you Windows 8.1 ;)
     
    Margen67 likes this.
  16. Rinnegatamante
    OP

    Rinnegatamante GBAtemp Psycho!

    Member
    3,127
    3,263
    Nov 24, 2014
    Italy
    Bologna
    I hate Win8.1.
     
    Konno Ryo, Cid2mizard and daxtsu like this.
  17. Rinnegatamante
    OP

    Rinnegatamante GBAtemp Psycho!

    Member
    3,127
    3,263
    Nov 24, 2014
    Italy
    Bologna
    TTF fonts support is coming! (Need to fix RGB detection, add fonts freeing and some little stuffs)
    [​IMG]
     
  18. filfat

    filfat Musician, Developer & Entrepreneur

    Member
    1,229
    858
    Nov 24, 2012
    LMAO
    Yeah, I hate a nicer UI, faster boot times and a better optimized os too
     
    Margen67 likes this.
  19. chrisluna413

    chrisluna413 GBAtemp Fan

    Member
    365
    102
    May 13, 2013
    United States
    East Brunswick, New Jersey
    LMAO
    If only it had a nice UI
     
    yuyuyup likes this.
  20. filfat

    filfat Musician, Developer & Entrepreneur

    Member
    1,229
    858
    Nov 24, 2012
    Yeah because people hate the modern UI, just look at iOS, Android even Linux they are so moving away from flat/modern UI.. O wait they aren't!
     
    Ammako and Margen67 like this.