/ctruLua

ctrµLua: Lua homebrewing for 3DS

Primary LanguageCGNU General Public License v3.0GPL-3.0

ctrµLua

banner

Warning: the 'u' in the repo's name is a 'µ', not a 'u'.

Users part

How to install

  • Download ctruLua.zip from the releases (for something stable) or the CI server (for more features)
  • Unzip it on your SD card, in a folder inside your homebrews folder; if you use HBL, extract it in /3ds/ctrulua/
  • Put some scripts wherever you want, just remember where
  • Launch CtrµLua from your homebrew launcher
  • Use the shell to run your scripts

Homebrewers part

Builds build status

Hello world

local ctr = require("ctr")
local gfx = require("ctr.gfx")
local hid = require("ctr.hid")

while ctr.run() do
	hid.read()
	local keys = hid.keys()
	if keys.held.start then break end
	
	gfx.start(gfx.TOP)
		gfx.text(2, 2, "Hello, world !")
	gfx.stop()
	
	gfx.render()
end

This script will print "Hello, world !" on the top screen, and will exit if the user presses Start. This is the "graphical" version; there's also a text-only version, based on the console:

local ctr = require("ctr")
local gfx = require("ctr.gfx")
local hid = require("ctr.hid")

gfx.console()
print("Hello, world !")

while ctr.run() do
	hid.read()
	local keys = hid.keys()
	if keys.held.start then break end
	
	gfx.render()
end

gfx.disableConsole()

Lua API Documentation

  • An online version of the documentation can be found here
  • To build the documentation, run make build-doc-html (requires LDoc).

Developers part

Build instructions

  • Setup your environment as shown here : http://3dbrew.org/wiki/Setting_up_Development_Environment
  • Clone this repository and run the command make build-all to build all the dependencies.
  • If you only made changes to ctrµLua, run make to rebuild ctrµLua without rebuilding all the dependencies.

May not work under Windows.

Credits