The variables or functions that you will find here may be defined in the Lua libraries (
libs tag) or in the C code (
nds tag).
-
MICROLUA_VERSION
(libs): version of Micro Lua (String). -
SCREEN_WIDTH
, SCREEN_HEIGHT
(libs): width and height of the screens. -
NB_FPS
(libs): number of frame per second automatically updated each second. You can display it with a screen.print()
between screen.startDrawing()
and screen.stopDrawing()
. Don’t display it in the debug console. -
SCREEN_UP
, SCREEN_DOWN
(libs): screen number where to draw. See examples for more details. -
RAM
and VRAM
(libs): destination where to load some object. See examples for more details. -
ATTR_X1
, ATTR_Y1
, ATTR_X2
, ATTR_Y2
, ATTR_X3
, ATTR_Y3
, ATTR_COLOR
, ATTR_COLOR1
, ATTR_COLOR2
, ATTR_COLOR3
, ATTR_COLOR4
, ATTR_TEXT
, ATTR_VISIBLE
, ATTR_FONT
, ATTR_IMAGE
(libs): attributes used in canvas.
Void render()
(
libs)
Refresh the screen.
Void startDrawing()
&
Void stopDrawing()
(
libs,
deprecated)
All your drawing instructions must be between these two functions.
Void screen.switch()
(
nds)
Switch the screens.
Void screen.print(screen, x, y, text [, color])
(
nds)
Print a text on the screen.
- screen (Number): screen where to draw (
SCREEN_UP
or SCREEN_DOWN
) - x (Number): x-coordinate where to draw
- y (Number): y-coordinate where to draw
- text (String): text to print
- color (Color): color of the text
Void screen.printFont(screen, x, y, text , color, font)
(
nds)
Print a text on the screen using a special font.
- screen (Number): screen where to draw (
SCREEN_UP
or SCREEN_DOWN
) - x (Number): x-coordinate where to draw
- y (Number): y-coordinate where to draw
- text (String): text to print
- color (Color): color of the text
- font (Font) : special font
Void screen.blit(screen, x, y, image, [, sourcex, sourcey] [, width, height])
(
nds)
Blit an image on the screen.
- screen (Number): screen where to draw (
SCREEN_UP
or SCREEN_DOWN
) - x (Number): x-coordinate where to draw
- y (Number): y-coordinate where to draw
- image (Image): image to blit
- sourcex, sourcey (Number): coordinates in the source image to draw
- width, height (Number): width and height of the rectangle to draw
Void screen.drawLine(screen, x0, y0, x1, y1, color)
(
nds)
Draw a line on the screen.
- screen (Number): screen where to draw (
SCREEN_UP
or SCREEN_DOWN
) - x0, y0, x1, y1 (Number): coordinates of the line
- color (Color): color of the line
Void screen.drawRect(screen, x0, y0, x1, y1, color)
(
nds)
Draw a rectangle on the screen.
- screen (Number): screen where to draw (
SCREEN_UP
or SCREEN_DOWN
) - x0, y0, x1, y1 (Number): coordinates of the rectangle
- color (Color): color of the rectangle
Void screen.drawFillRect(screen, x0, y0, x1, y1, color)
(
nds)
Draw a fill rectangle on the screen.
- screen (Number): screen where to draw (
SCREEN_UP
or SCREEN_DOWN
) - x0, y0, x1, y1 (Number): coordinates of the rectangle
- color (Color): color of the rectangle
Void screen.drawGradientRect(screen, x0, y0, x1, y1, color1, color2, color3, color4)
(
nds)
Draw a gradient rectangle on the screen.
- screen (Number): screen where to draw (
SCREEN_UP
or SCREEN_DOWN
) - x0, y0, x1, y1 (Number): coordinates of the rectangle
- color1, color2, color3, color4 (Color): colors of the rectangle
Void screen.drawTextBox(screen, x0, y0, x1, y1, text [, color])
(
nds)
Draw a text box on the screen.
- screen (Number): screen where to draw (
SCREEN_UP
or SCREEN_DOWN
) - x0, y0, x1, y1 (Number): coordinates of the text box
- text (String): text to print
- color (Color): color of the text box
Color Color.new(r, g, b)
(
nds)
Create a new color.
- r (Number): red mask (from 0 to 31)
- g (Number): green mask (from 0 to 31)
- b (Number): blue mask (from 0 to 31)
Void Controls.read()
(
libs)
Read the controls and update all control structures.
These are numbers or booleans. Everything here is defined in the
libs.
Stylus.X
: x-coordinate of the stylus
Stylus.Y
: y-coordinate of the stylus
Stylus.held
: is the stylus held on the screen
Stylus.released
: is the stylus released
Stylus.doubleClick
: true
if stylus do a double click
Stylus.deltaX
: delta x of the stylus movement
Stylus.deltaY
: delta y of the stylus movement
Stylus.newPress
: true
if stylus do a new press
These are booleans. Everything here is defined in the
libs.
(
[KEY]
can take the following values :
A
, B
, X
, Y
, L
, R
, Start
, Select
, Up
, Down
, Left
, Right
)
Keys.held.[KEY]
: is the key held?
Keys.released.[KEY]
: is the key released?
Keys.newPress.[KEY]
: true
if the key does a new press
Image Image.load(path, destination)
(
nds)
Create a new image in memory from an image file (PNG, JPG or GIF).
- path (String): path of the image to load
- destination (Number): destination of the image in memory (can be RAM of VRAM)
Void Image.destroy(image)
(
nds)
Destroy the image.
- image (Image): image to destroy
To completely destroy an image, do:
myImage:destroy()
myImage = nil
Number Image.width(image)
(
nds)
Get the width of the image.
- image (Image): image to use
Number Image.height(image)
(
nds)
Get the height of the image.
- image (Image): image to use
Void Image.scale(image, width, height)
(
nds)
Scale the image.
- image (Image): image to scale
- width (Number): new width of the image
- height (Number): new height of the image
Void Image.rotate(image, angle [, centerx, centery])
(
nds)
Rotate the image around rotation center.
- image (Image): image to rotate
- angle (Number): angle of roattion (between 0 and 511)
- centerx (Number): x-coordinate of the new rotation center
- centery (Number): y-coordinate of the new rotation center
Void Image.rotateDegree(image, angle [, centerx, centery])
(
nds)
Rotate the image around rotation center, the angle is given in degree.
- image (Image): image to rotate
- angle (Number): angle of rotation in degree (between 0 and 360)
- centerx (Number): x-coordinate of the new rotation center
- centery (Number): y-coordinate of the new rotation center
Void Image.mirrorH(image)
(
nds)
Mirror the image horizontally.
- image (Image): image to mirror
Void Image.mirrorV(image)
(
nds)
Mirror the image vertically.
- image (Image): image to mirror
Void Image.setTint(image, color)
(
nds)
Set the tint of the image.
- image (Image): image to tint
- color (Color): color of the image
The unit is the millisecond.
Timer Timer.new()
(
libs)
Create a new timer, you can start it.
Number timer:time()
(
libs)
Return the time of the timer.
Void timer:start()
(
libs)
Start a timer.
Void timer:stop()
(
libs)
Stop a timer.
Void timer:reset()
(
libs)
Reset a timer.
Sprite Sprite.new(path, frameWidth, frameHeight, dest)
(
libs)
Create a sprite from an image file.
- path (String): path of the file which contains the sprite
- frameWidth (Number): width of the frames
- frameHeight (Number): height of the frames
- dest (Number): destination (RAM or VRAM)
Void sprite:drawFrame(screen, x, y, nbFrame)
(
libs)
Draw a frame of the sprite.
- screen (Number): screen (
SCREEN_UP
or SCREEN_DOWN
) - x (Number): X-coordinate where to draw the frame
- y (Number): Y-coordinate where to draw the frame
- nbFrame (Number): number of the frame to draw
Void sprite:addAnimation(tabAnim, delay)
(
libs)
Create an animation.
- tabAnim (Table): the table of the animation frames
- delay (Number): delay between each frame
Void sprite:playAnimation(screen, x, y, nbAnim)
(
libs)
Play an animation on the screen.
- screen (Number): screen (
SCREEN_UP
or SCREEN_DOWN
) - x (Number): X-coordinate where to draw the frame
- y (Number): Y-coordinate where to draw the frame
- nbAnim (Number): number of the animation to play
Void sprite:resetAnimation(nbAnim)
(
libs)
Reset an animation.
- nbAnim (Number): number of the animation
Void sprite:startAnimation(nbAnim)
(
libs)
Start an animation.
- nbAnim (Number): number of the animation
Void sprite:stopAnimation(nbAnim)
(
libs)
Stop an animation.
- nbAnim (Number): number of the animation
Boolean sprite:isAnimationAtEnd(nbAnim)
(
libs)
Return
true
if the animation has drawn the last frame.
- nbAnim (Number): number of the animation
Void Debug.ON()
(
libs)
Activate the debug mode.
Void Debug.OFF()
(
libs)
Desactivate the debug mode.
Void Debug.print(text)
(
libs)
Print a debug line.
- text (String): text to print
Void Debug.clear()
(
libs)
Clear the debug console.
Void Debug.setColor(color)
(
libs)
Set the debug text color.
- color (Color): color of the text
String System.currentDirectory()
(
libs)
Get the current working directory.
Void System.changeDirectory(path)
(
libs)
Change the current working directory.
- path (String): path of the directory
Void System.remove(name)
(
libs)
Remove a file or an empty folder.
- name (String): name of the file or directory to remove
Void System.rename(oldName, newName)
(
libs)
Rename file or an empty folder.
- oldName (String): name of the file or directory to rename
- newName (String): new name of the file or directory
Void System.makeDirectory(name)
(
libs)
Create a new directory.
- name (String): path and name of the directory
Table System.listDirectory(path)
(
libs)
List all files and folders of a directory.
- path (String): path of the directory to list
- NOTE: See examples for more details.
Font Font.load(path)
(
nds)
Create a new font from a font file (oslib and µLibrary format).
- Path (String): path of the file to load
Void Font.destroy(font)
(
nds)
Destroy the font.
- font (Font): font to destroy
To completely destroy a font, do:
Font.destroy(font)
font = nil
Void Font.print(screen, font, x, y, text [, color])
(
nds,
deprecated)
Please use
screen.printFont
which really handles the color.
Print a text with a special font.
- screen (Number): screen where to draw (
SCREEN_UP
or SCREEN_DOWN
) - font (Font): font to use
- x (Number): x-coordinate where to draw
- y (Number): y-coordinate where to draw
- text (String): text to print
- color (Color): color of the text
Number Font.getCharHeight(font)
(
nds)
Get the height of the characters of a font.
Number getStringWidth(font, text)
(
nds)
Get the width of a text with a specific font.
- font (Font): font to use
- text (String): text
Map Map.new(image, mapfile, width, height, tileWidth, tileHeight)
(
nds)
Create a new map by giving a map file.
- image (Image): image which contains tiles
- mapfile (String): path to the map file (
.map
) - width (Number): width of the map in tiles
- height (Number): height of the map in tiles
- tileWidth (Number): width of the tiles in pixels
- tileHeight (Number): height of the tiles in pixels
Void Map.destroy(map)
(
nds)
Destroy a map.
- map (Map): map to destroy
Void Map.draw(screen, map, x, y, width, height)
(
nds)
Draw a map.
- screen (Number): screen where to draw (
SCREEN_UP
or SCREEN_DOWN
) - map (Map): map to destroy
- x (Number): x-coordinate where to draw the map
- y (Number): y-coordinate where to draw the map
- width (Number): x number of tiles to draw
- height (Number): y number of tiles to draw
Void Map.scroll(map, x, y)
(
nds)
Scroll a map.
- map (Map): map to scroll
- x (Number): x number of tiles to scroll
- y (Number): y number of tiles to scroll
Void Map.space(map, x, y)
(
nds)
Set the space between each tiles of a map.
- map (Map): map to modify
- x (Number): x space between tiles
- y (Number): y space between tiles
Void Map.setTile(map, x, y, tile)
(
nds)
Change a tile value.
- map (Map): map to modify
- x (Number): x-coordinate of the tile to change in the map table
- y (Number): y-coordinate of the tile to change in the map table
- tile (Number): new tile value
Number Map.getTile(map, x, y)
(
nds)
Get a tile value.
- map (Map): map to read
- x (Number): x-coordinate of the tile to get
- y (Number): y-coordinate of the tile to get
ScrollMap ScrollMap.new(image, mapfile, width, height, tileWidth, tileHeight)
(
nds)
- image (Image): image which contains tiles
- mapfile (String): path to the map file (.map)
- width (Number): width of the map in tiles
- height (Number): height of the map in tiles
- tileWidth (Number): width of the tiles in pixels
- tileHeight (Number): height of the tiles in pixels
Void ScrollMap.destroy(scrollmap)
(
nds)
Destroy a
ScrollMap.
Void ScrollMap.draw(screen, scrollmap)
(
nds)
Draw a
ScrollMap.
Void ScrollMap.scroll(scrollmap, x, y)
(
nds)
Scroll a
ScrollMap.
- scrollmap (ScrollMap): ScrollMap to scroll
- x (Number): x scrolling in pixel
- y (Number): y scrolling in pixel
Void ScrollMap.setTile(scrollmap, x, y, tile)
(
nds)
Change a tile value.
- scrollmap (ScrollMap): ScrollMap to modify
- x (Number): x-coordinate of the tile to change in the scrollmap table
- y (Number): y-coordinate of the tile to change in the scrollmap table
- tile (Number): new tile value
Number ScrollMap.getTile(scrollmap, x, y)
(
nds)
Get a tile value.
- scrollmap (ScrollMap): ScrollMap to read
- x (Number): x-coordinate of the tile to get
- y (Number): y-coordinate of the tile to get
Canvas Canvas.new()
(
nds)
Create a new canvas.
Void Canvas.destroy(canvas)
(
nds)
Destroy a canvas. Must be followed by
canvas = nil
.
- Canvas (Canvas): canvas to destroy
CanvasObject Canvas.newLine(x1, y1, x2, y2, color)
(
nds)
Create a new line.
- x1, y1, x2, y2 (Number): coordinates of the line
- color (Color): color of the line
CanvasObject Canvas.newPoint(x1, y1, color)
(
nds)
Create a new point.
- x1, y1 (Number): coordinates of the point
- color (Color): color of the point
CanvasObject Canvas.newRect(x1, y1, x2, y2, color)
(
nds)
Create a new rectangle.
- x1, y1, x2, y2 (Number): coordinates of the rectangle
- color (Color): color of the rectangle
CanvasObject Canvas.newFillRect(x1, y1, x2, y2, color)
(
nds)
Create a new fill rectangle.
- x1, y1, x2, y2 (Number): coordinates of the rectangle
- color (Color): color of the rectangle
CanvasObject Canvas.newGradientRect(x1, y1, x2, y2, color1, color2, color3, color4)
(
nds)
Create a new gradient rectangle.
- x1, y1, x2, y2 (Number): coordinates of the rectangle
- color1, color2, color3, color4 (Color): colors of the fill rectangle
CanvasObject Canvas.newText(x1, y1, text [, color])
(
nds)
Create a new text.
- x1, y1 (Number): coordinates of the text
- text (String): text
- color (Color): color of the text
CanvasObject Canvas.newTextFont(x1, y1, text, color, font)
(
nds)
Create a new text with a special font.
- x1, y1 (Number): coordinates of the text
- text (String): text
- color (Color): color of the text
- font (Font): special font of the text
CanvasObject Canvas.newTextBox(x1, y1, x2, y2, text [, color])
(
nds)
Create a new textbox.
- x1, y1, x2, y2 (Number): coordinates of the textbox
- text (String): text
- color (Color): color of the textbox
CanvasObject Canvas.newImage(x1, y1, image [, x2, y2] [, x3, y3])
(
nds)
Create a new image.
- x1, y1 (Number): coordinates of the image
- x2, y2 (Number): coordinates in the source image to draw
- x3, y3 (Number): width and height of the rectangle to draw
Void Canvas.add(canvas, object)
(
nds)
Add a CanvasObject in a canvas.
- canvas (Canvas): canvas to draw
- object (CanvasObject): object to add
Void Canvas.draw(screen, canvas, x, y)
(
nds)
Draw a canvas to the screen.
- screen (Number): screen where to draw (
SCREEN_UP
or SCREEN_DOWN
) - canvas (Canvas): canvas to draw
- x (Number): x-coordinate where to draw
- y (Number): y-coordinate where to draw
Void Canvas.setAttr(object, attrName, attrValue)
(
nds)
Set an attribute value.
- object (CanvasObject): object to modify
- attName (Constant): attribute to modify. Must be ATTR_XXX. See “some useful variables” for more details
- attrValue (?): new value for the attribute. Must be the good type
? Canvas.getAttr(object, attrName)
(
nds)
Get an attribute value. Return type depends of the attribute (number, font or image).
- object (CanvasObject): object to use
- attName (Constant): attribute to get value. Must be ATTR_XXX. See “some useful variables” for more details
Boolean Rumble.isInserted()
(
nds)
Check if a rumble pack is inserted.
Void Rumble.set(status)
(
nds)
Set the rumble status.
- status (Boolean): status of the rumble (
true
: ON, false
: OFF)
Boolean Motion.init
(
nds)
Init the motion system if a motion device is detected. Return
true
if a motion device is detected.
Void Motion.calibrate
(
nds)
Calibrate the motion system.
Number Motion.readX
(
nds)
Read the X tilt of the motion.
Number Motion.readY
(
nds)
Read the Y tilt of the motion.
Number Motion.readZ
(
nds)
Read the Z tilt of the motion.
Number Motion.accelerationX
(
nds)
Read the X acceleration of the motion.
Number Motion.accelerationY
(
nds)
Read the Y acceleration of the motion.
Number Motion.accelerationZ
(
nds)
Read the Z acceleration of the motion.
Number Motion.readGyro
(
nds)
Read the gyro value of the motion.
Number Motion.rotation
(
nds)
Read the rotation value of the motion.
This should be DEPRECATED soon, as there is the
os.date()
basic Lua function.
DateTime DateTime.new()
(
libs)
Create a new DateTime object.
DateTime DateTime.getCurrentTime()
(
libs)
Create a new DateTime object with current time values.
year
, month
, day
, hour
, minute
, second
- NOTE: See examples for more details.
Void Wifi.connectWFC()
(
nds)
Connect the DS to the Wifi connection. Use the firmware configurations. So, you need to configure your connection with an official DS game.
Void Wifi.disconnect()
(
nds)
Disconnect the DS form the Wifi connection.
Socket Wifi.createTCPSocket(host, port)
(
nds)
Create a TCP socket on a server.
- host (String): hostname or IP adress of the server
- port (Number): port to use
Socket Wifi.createUDPSocket(host, port)
(
nds)
Create an UDP socket on a server.
- host (String): hostname or IP adress of the server
- port (Number): port to use
Void Wifi.closeSocket(socket)
(
nds)
Close a socket (TCP or UDP).
- socket (Socket): Socket to close
Void Wifi.send(socket, buffer)
(
nds)
Send data to a server using a socket.
- socket (Socket): Socket to use
- buffer (String): data to send
String Wifi.receive(socket, length)
(
nds)
Receive data from a server using a socket.
- socket (Socket): Socket to use
- length (Number): size of the data to receive
Void Sound.loadBank(filename)
(
nds)
Load a soundbank from a file in memory.
- filename (String): path of the file to load
Void Sound.unloadBank()
(
nds)
Unload the sound bank from the memory.
Void Sound.loadMod(id)
(
nds)
Load a module in memory.
- id (Number): id of the module to load
Void Sound.unloadMod(id)
(
nds)
Unload a module from the memory.
- id (Number): id of the module to unload
Void Sound.startMod(id, playmode)
(
nds)
Start playing a module already loaded in memory.
- id (Number): id of the module to play
- playmode (Number): playing mode (
PLAY_ONCE
or PLAY_LOOP
)
Void Sound.pause()
(
nds)
Pause all modules.
Void Sound.resume()
(
nds)
Resume all modules.
Void Sound.stop()
(
nds)
Stop all modules.
Void Sound.setPosition(id, position)
(
nds)
Set the cursor position of a module.
- id (Number): id of the module
Boolean Sound.isActive()
(
nds)
Return
true
if the player is active and
false
if it's not.
Void Sound.startJingle(id)
(
nds)
Start playing a module as a jingle.
- id (Number): id of the module to play
Void Sound.setModVolume(volume)
(
nds)
Set the volume of the played module.
- volume (Number): new volume value between 0 and 1024
Void Sound.setJingleVolume(volume)
(
nds)
Set the volume of the played jingle.
- volume (Number): new volume value between 0 and 1024
Void Sound.setModTempo(tempo)
(
nds)
Set the tempo of the module player.
- tempo (Number): new tempo value between 512 and 2048
Void Sound.setModPitch(pitch)
(
nds)
Set the pitch of the module player.
- pitch (Number): new pitch value
Void Sound.loadSFX(id)
(
nds)
Load a SFX in the meory.
- id (Number): id of the SFX to load
Void Sound.unloadSFX(id)
(
nds)
Unload a SFX in the meory.
- id (Number): id of the SFX to unload
Handle Sound.startSFX(id)
(
nds)
Start a sound effect already loaded in memory. Return and handle to this SFX.
- id (Number): id of the SFX to start
Void Sound.stopSFX(handle)
(
nds)
Stop a played SFX.
- handle (Handle): handle of a SFX, given by the startSFX function
Void Sound.releaseSFX(handle)
(
nds)
Mark an effect as low priority.
- handle (Handle): handle of a SFX, given by the startSFX function
Void Sound.stopAllSFX()
(
nds)
Stop all payed SFX.
Void Sound.setSFXVolume(handle, volume)
(
nds)
Set the volume of a playing SFX.
- handle (Handle): handle of a SFX, given by the startSFX function
- volume (Number): new volume value between 0 and 255 (different from Mods)
Void Sound.setSFXPanning(handle, panning)
(
nds)
Set the panning of a playing SFX.
- handle (Handle): handle of a SFX, given by the startSFX function
- panning (Number): new panning value between 0 (left) and 255 (right)
Void Sound.setSFXPitch(handle, pitch)
(
nds)
Set the pitch of a playing SFX.
- handle (Handle): handle of a SFX, given by the startSFX function
- pitch (Number): new pitch value
Void Sound.setSFXScalePitch(handle, scale)
(
nds)
Set the scaling pitch ratio of a playing SFX.
- handle (Handle): handle of a SFX, given by the startSFX function
- scale (Number): new scale pitch value
Table INI.load(filename)
(
libs)
Load an INI file and create a table with it.
- filename (String): file to load
Void INI.save(filename, tab)
(
libs)
Save a table in an INI file.
- filename (String): file to load
- tab (Table): table to save
Example :
An INI file contains :
[infos]
name=toto
age=25
tab = INI.load(“myfile.ini”)
tab[“infos”][“name”] = “tata”
INI.save(“myfile.ini”, tab)
This exemple changes the line
name=toto
into
name=tata
.
These tables can only contains Strings!!!
If you want to store integers convert them with the
tostring()
function!