Micro Lua DS

From GameBrew - a wiki dedicated to Video Game Homebrew.

Macro Lua DS
Version4.6 3November2012

Micro Lua DS is a Lua interpreter for the Nintendo DS.


  • Fast drawing: as MicroLua is based on Brunni's library, the uLibrary, MicroLua provides fast 2D drawing using the 3D GPU.But that also means there will probably not be any 3D drawing with MicroLua. If you are not happy with that, just delete this package and go to see PALib.
  • Full sprites and maps systems: with automated animations, and dynamic maps (you can change the map constitution through your program).
  • Wifi: Microlua provides full access to the Wifi connection of the Nintendo DS.
  • Nifi: MicroLua allows you to make your console communicate with other ones on Adhoc.
  • Sound system: based on the Mixmod library, uLua can play MOD and WAV sounds based on a soundbank system.
  • Fat access: full access to the content of your card; uLua also implements a built-in library to manage INI config files.
  • Rumble and motion: if you have the required hardware, you can use uLua to make your NDS shake and detect its movements ;)


Copy the <lua> folder to the _<root>_ (and this is really important, you have to put the <lua> folder to the <root> – the </> folder, the one which contains all the others); and then, copy the right binary file wherever you wish on your card:

'microlua.nds': probably the one you will choose; this one works on about all the linkers.
'': choose this one if you have a Supercard.
'microlua.ds.gba': choose this one if you have a SLOT2 linker.

If you have troubles while launching uLua, like "Unable to load libs.lua", check that the <lua> folder is at the right place, that is to say in the <root> (and that the 'libs.lua' file is in this directory)

User guide

When you find a uLua script, you will have probably either a single file (little script) or a directory. Just copy what you get in the <scripts> folder.

Then, boot Nintendo DS, launch MicroLua. You can see on the bottom screen a file list: this is the content of your <scripts> folder. You can freely naviguate through your card using the D-pad Up and Down; use Right to open a folder, and eventually you can use the A button to launch a script. Note that if you use A on a folder which contains a file named 'index.lua', this file will be launched.



  • Featuring a cute blinking LED and a better Debug system.


  • Improve the example about Nifi.
  • Fix text bug in Canvas displaying weird characters.


  • MicroLua now has Nifi connection! You can make several consoles communicate with each other locally.
  • When an image can't be loaded, the function will now make a specific BSoD.
  • Canvas.setAttr() and Canvas.getAttr() now have a correct behavior regarding to ATTR_VISIBLE case.


All the thanks will first go to Risike, the true owner of the project, the Creator, our God (let's stop here), as the project originally comes from him. He released the first version of MicroLua in 2008, and maintained it until 2009 (v3.0). At this point, he stated that he didn't want to continue this project and released it open source.

One last thing about uLua: some people confuse MicroLua with Lua. Lua is a language, basically used on computers either stand-alone or as a plugin engine. uLua is meant to be an adaptation of Lua for the Nintendo DS. So please, MicroLua is NOT a language; LUA is the language.

The main MicroLua's site (actually this is a forum). The active community will help you progress and share your scripts.

MicroLua's project hosting on Google servers. If you want to have the real last MicroLua release, go check it!

The official Lua website. You can find here all the informations relative to the language; this will probably be useful to you if you intend to make some homebrews with uLua unless you already know by heart the language.