<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to API471</title><link>https://sourceforge.net/p/microlua/wiki/API471/</link><description>Recent changes to API471</description><atom:link href="https://sourceforge.net/p/microlua/wiki/API471/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 16 Apr 2014 19:44:41 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/microlua/wiki/API471/feed" rel="self" type="application/rss+xml"/><item><title>API471 modified by Reylak</title><link>https://sourceforge.net/p/microlua/wiki/API471/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -228,6 +228,8 @@
 * `Right`
 * `Lid`

+And then the state of a key can be checked using these subtables:
+
 * `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
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Reylak</dc:creator><pubDate>Wed, 16 Apr 2014 19:44:41 -0000</pubDate><guid>https://sourceforge.net00426730acb8a84248532b41b2b521690fe43f63</guid></item><item><title>API471 modified by Reylak</title><link>https://sourceforge.net/p/microlua/wiki/API471/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Description of the functions provided by MicroLua as of version 4.7.1.&lt;/p&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#constants-and-variables"&gt;Constants and Variables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#functions-and-their-tables"&gt;Functions and their tables&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#screen"&gt;Screen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#colors"&gt;Colors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#controls"&gt;Controls&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#stylus"&gt;Stylus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#keys"&gt;Keys&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#images"&gt;Images&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#timers"&gt;Timers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sprites"&gt;Sprites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#debug"&gt;Debug&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#system"&gt;System&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#fonts"&gt;Fonts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#maps"&gt;Maps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#scroll-maps"&gt;Scroll Maps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#canvas"&gt;Canvas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#rumble"&gt;Rumble&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#motion"&gt;Motion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#wifi"&gt;Wifi&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#shared-udp-and-tcp-sockets-methods"&gt;Shared UDP and TCP sockets methods&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#udp-sockets-only-methods"&gt;UDP sockets only methods&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tcp-sockets-only-methods"&gt;TCP sockets only methods&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#nifi"&gt;Nifi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sound"&gt;Sound&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#sound-banks"&gt;Sound banks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mods"&gt;Mods&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#sfx"&gt;SFX&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#ini-files"&gt;INI Files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#users-informations"&gt;User's informations&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#variables"&gt;Variables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#functions-unused-nds"&gt;Functions (unused, nds)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;The variables or functions that you will find here may be defined either in the Lua libraries (&lt;em&gt;libs&lt;/em&gt; tag) or in the C code (&lt;em&gt;nds&lt;/em&gt; tag).&lt;br /&gt;
Some are also tagged as &lt;em&gt;deprecated&lt;/em&gt;, or as &lt;em&gt;unused&lt;/em&gt; because you are not meant to access them directly.&lt;/p&gt;
&lt;h1 id="constants-and-variables"&gt;Constants and Variables&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ULUA_VERSION&lt;/code&gt; (&lt;em&gt;nds&lt;/em&gt;): version of Micro Lua as a String; usually of the form &lt;em&gt;MicroLua X.X.X&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SCREEN_WIDTH&lt;/code&gt;, &lt;code&gt;SCREEN_HEIGHT&lt;/code&gt; (&lt;em&gt;nds&lt;/em&gt;): width and height of the screens&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NB_FPS&lt;/code&gt; (&lt;em&gt;libs&lt;/em&gt;): number of frame per second automatically updated every second&lt;/li&gt;
&lt;li&gt;&lt;em&gt;SCREEN_UP&lt;/em&gt;, &lt;em&gt;SCREEN_DOWN&lt;/em&gt; (&lt;em&gt;nds&lt;/em&gt;): screen number where to draw; see examples for more details&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RAM&lt;/code&gt; and &lt;code&gt;VRAM&lt;/code&gt; (&lt;em&gt;nds&lt;/em&gt;): destination where to load some object; see examples for more details&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ATTR_X1&lt;/code&gt;, &lt;code&gt;ATTR_Y1&lt;/code&gt;, &lt;code&gt;ATTR_X2&lt;/code&gt;, &lt;code&gt;ATTR_Y2&lt;/code&gt;, &lt;code&gt;ATTR_X3&lt;/code&gt;, &lt;code&gt;ATTR_Y3&lt;/code&gt;, &lt;code&gt;ATTR_COLOR&lt;/code&gt;, &lt;code&gt;ATTR_COLOR1&lt;/code&gt;, &lt;code&gt;ATTR_COLOR2&lt;/code&gt;, &lt;code&gt;ATTR_COLOR3&lt;/code&gt;, &lt;code&gt;ATTR_COLOR4&lt;/code&gt;, &lt;code&gt;ATTR_TEXT&lt;/code&gt;, &lt;code&gt;ATTR_VISIBLE&lt;/code&gt;, &lt;code&gt;ATTR_FONT&lt;/code&gt;, &lt;code&gt;ATTR_IMAGE&lt;/code&gt; (&lt;em&gt;nds&lt;/em&gt;): attributes used in canvas&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ALPHA_RESET&lt;/code&gt; (&lt;em&gt;nds&lt;/em&gt;): blending coefficient value to reset alpha transparency; is equal to 100&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PLAY_LOOP&lt;/code&gt;, &lt;code&gt;PLAY_ONCE&lt;/code&gt; (&lt;em&gt;nds&lt;/em&gt;): arguments to play mods respectively loop and once&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LED_ON&lt;/code&gt;, &lt;code&gt;LED_BLINK&lt;/code&gt;, &lt;code&gt;LED_SLEEP&lt;/code&gt; (&lt;em&gt;nds&lt;/em&gt;): blink modes for the LED (always ON, blinking fast, blinking slow)&lt;/li&gt;
&lt;li&gt;Path constants (some of them are made up from precedent ones) (&lt;em&gt;nds&lt;/em&gt;):&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ULUA_DIR&lt;/code&gt;: &lt;em&gt;/lua/&lt;/em&gt; (main directory of µLua)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ULUA_SCRIPTS&lt;/code&gt;: &lt;em&gt;ULUA_DIR scripts/&lt;/em&gt; (default folder for scripts)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ULUA_LIBS&lt;/code&gt;: &lt;em&gt;ULUA_DIR libs/&lt;/em&gt; (default folder for libraries)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ULUA_BOOT_FILE&lt;/code&gt;: &lt;em&gt;boot.lua&lt;/em&gt; (first loaded file)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ULUA_BOOT_FULLPATH&lt;/code&gt;: &lt;em&gt;ULUA_DIR ULUA_BOOTFILE&lt;/em&gt; (full path of the first loaded file)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;System.EFS&lt;/code&gt; (&lt;em&gt;nds&lt;/em&gt;): tells whether an &lt;a class="" href="https://sourceforge.net/p/microlua/wiki/EFS/"&gt;Embedded File System&lt;/a&gt; is included&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mustCountFPS&lt;/code&gt; (&lt;em&gt;libs&lt;/em&gt;, &lt;em&gt;unused&lt;/em&gt;): regulate the FPS counting system; it is an internal variable, you should never have to deal with it&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Debug.isDebugOn&lt;/code&gt;, &lt;code&gt;Debug.debugText&lt;/code&gt; and &lt;code&gt;Debug.debugColor&lt;/code&gt; (&lt;em&gt;nds&lt;/em&gt;, &lt;em&gt;unused&lt;/em&gt;): variables used by the debug system; you should only modify them by using the &lt;em&gt;Debug&lt;/em&gt; functions&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="functions-and-their-tables"&gt;Functions and their tables&lt;/h1&gt;
&lt;h2 id="screen"&gt;Screen&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void render()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Refresh the screen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void startDrawing()&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;Void stopDrawing()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;, &lt;em&gt;deprecated&lt;/em&gt;)&lt;br /&gt;
All your drawing instructions must be between these two functions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.switch()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Switch the screens.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number screen.getLayer()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get the current layer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number screen.getAlphaLevel()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get the current transparency level.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.setAlpha(level[, layer])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the transparency level for the given layer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;level&lt;/code&gt; (Number): blending coefficient, between 0 and 99 (100, that is to say &lt;em&gt;ALPHA_RESET&lt;/em&gt;, reset all the transparency system)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;layer&lt;/code&gt; (Number): layer to set; the function however automatically keeps the count so you don't have to give and layer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.print(screen, x, y, text [, color])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Print a text on the screen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x-coordinate where to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y-coordinate where to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text&lt;/code&gt; (String): text to print&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the text&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.printFont(screen, x, y, text , color, font)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Print a text on the screen using a special font.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x-coordinate where to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y-coordinate where to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text&lt;/code&gt; (String): text to print&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the text&lt;/li&gt;
&lt;li&gt;&lt;code&gt;font&lt;/code&gt; (Font): special font&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.blit(screen, x, y, image, [, sourcex, sourcey] [, width, height])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Blit an image on the screen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x-coordinate where to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y-coordinate where to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image to blit&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sourcex&lt;/code&gt;, &lt;code&gt;sourcey&lt;/code&gt; (Number): coordinates in the source image to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;width&lt;/code&gt;, &lt;code&gt;height&lt;/code&gt; (Number): width and height of the rectangle to draw&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.drawPoint(screen, x, y, color)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Draw a point on the screen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x-coordinate where to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y-coordinate where to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the point&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.drawLine(screen, x0, y0, x1, y1, color)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Draw a line on the screen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x0&lt;/code&gt;, &lt;code&gt;y0&lt;/code&gt;, &lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt; (Number): coordinates of the line&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the line&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.drawRect(screen, x0, y0, x1, y1, color)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Draw a rectangle on the screen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x0&lt;/code&gt;, &lt;code&gt;y0&lt;/code&gt;, &lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt; (Number): coordinates of the rectangle&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the rectangle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.drawFillRect(screen, x0, y0, x1, y1, color)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Draw a fill rectangle on the screen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x0&lt;/code&gt;, &lt;code&gt;y0&lt;/code&gt;, &lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt; (Number): coordinates of the rectangle&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the rectangle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.drawGradientRect(screen, x0, y0, x1, y1, color1, color2, color3, color4)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Draw a gradient rectangle on the screen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x0&lt;/code&gt;, &lt;code&gt;y0&lt;/code&gt;, &lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt; (Number): coordinates of the rectangle&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color1&lt;/code&gt;, &lt;code&gt;color2&lt;/code&gt;, &lt;code&gt;color3&lt;/code&gt;, &lt;code&gt;color4&lt;/code&gt; (Color): colors of the rectangle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.drawTextBox(screen, x0, y0, x1, y1, text [, color])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Draw a text box on the screen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x0&lt;/code&gt;, &lt;code&gt;y0&lt;/code&gt;, &lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt; (Number): coordinates of the text box&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text&lt;/code&gt; (String): text to print&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the text box&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.drawTexturedQuad(screen, x0, y0, x1, y1, x2, y2, x3, y3, texture[, sourceX, sourceY][, width, height])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Display a textured quadrilateral.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x0&lt;/code&gt;, &lt;code&gt;y0&lt;/code&gt;, &lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt;, &lt;code&gt;x2&lt;/code&gt;, &lt;code&gt;y2&lt;/code&gt;, &lt;code&gt;x3&lt;/code&gt;, &lt;code&gt;y3&lt;/code&gt; (Number): coordinates of the quadrilateral angles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;texture&lt;/code&gt; (Image): texture image&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sourcex&lt;/code&gt;, &lt;code&gt;sourcey&lt;/code&gt; (Number): coordinates in the texture image to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;width&lt;/code&gt;, &lt;code&gt;height&lt;/code&gt; (Number): width and height of the texture image piece to draw&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.drawTexturedTriangle(screen, x0, y0, x1, y1, x2, y2, texture[, sourceX, sourceY][, width, height])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Display a textured triangle.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x0&lt;/code&gt;, &lt;code&gt;y0&lt;/code&gt;, &lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt;, &lt;code&gt;x2&lt;/code&gt;, &lt;code&gt;y2&lt;/code&gt; (Number): coordinates of the triangle angles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;texture&lt;/code&gt; (Image): texture image&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sourcex&lt;/code&gt;, &lt;code&gt;sourcey&lt;/code&gt; (Number): coordinates in the texture image to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;width&lt;/code&gt;, &lt;code&gt;height&lt;/code&gt; (Number): width and height of the texture image piece to draw&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Boolean screen.getMainLcd()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Give the screen the µLibrary is drawing on (&lt;em&gt;true&lt;/em&gt; for upper screen, &lt;em&gt;false&lt;/em&gt; for the lower screen).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.setSpaceBetweenScreens(space)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;, &lt;em&gt;deprecated&lt;/em&gt; (you can no longer draw on the two screens at the same time))&lt;br /&gt;
Set the space between the screens (so some drawing will not be displayed if drawn in this space).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;space&lt;/code&gt; (Number): space (in pixels) between the screens&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.init()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;, &lt;em&gt;unused&lt;/em&gt;)&lt;br /&gt;
Initialise some stuff about the screens. It is done automatically, so you should have nothing to care about this.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.startDrawing2D()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;, &lt;em&gt;unused&lt;/em&gt;)&lt;br /&gt;
Start a new drawing and configure 2D. You should have nothing to care about this.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.endDrawing()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;, &lt;em&gt;unused&lt;/em&gt;)&lt;br /&gt;
End drawing. You will never need to use it (use &lt;code&gt;render()&lt;/code&gt; to command screens actualisation).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void screen.waitForVBL()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;, &lt;em&gt;unused&lt;/em&gt;)&lt;br /&gt;
Wait for the VBlank period to reach 60FPS. You will never need to use it (using &lt;code&gt;render()&lt;/code&gt; will synchronise the frames).&lt;/p&gt;
&lt;h2 id="colors"&gt;Colors&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Color Color.new(r, g, b)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new color.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;r&lt;/code&gt; (Number): red mask (from 0 to 31)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;g&lt;/code&gt; (Number): green mask (from 0 to 31)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;b&lt;/code&gt; (Number): blue mask (from 0 to 31)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Color Color.new256(r, g, b)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new color from 8bit values.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;r&lt;/code&gt; (Number): red mask (from 0 to 255)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;g&lt;/code&gt; (Number): green mask (from 0 to 255)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;b&lt;/code&gt; (Number): blue mask (from 0 to 255)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="controls"&gt;Controls&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Controls.read()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Read the controls and update all control structures.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Controls.setStylusDblcFreq(dblcFreq)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the maximum delay between two Stylus clicks to make it a double click.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;dblcFreq&lt;/code&gt; (Number): maximum delay (from 0 to 30, 30 being half a second and the default value)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="stylus"&gt;Stylus&lt;/h3&gt;
&lt;p&gt;These are numbers or booleans. Everything here is defined in the &lt;em&gt;nds&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Stylus.X&lt;/code&gt;: x-coordinate of the stylus&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Stylus.Y&lt;/code&gt;: y-coordinate of the stylus&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Stylus.held&lt;/code&gt;: is the stylus held on the screen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Stylus.released&lt;/code&gt;: is the stylus released&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Stylus.doubleClick&lt;/code&gt;: &lt;em&gt;true&lt;/em&gt; if stylus do a double click&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Stylus.deltaX&lt;/code&gt;: delta x of the stylus movement&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Stylus.deltaY&lt;/code&gt;: delta y of the stylus movement&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Stylus.newPress&lt;/code&gt;: &lt;em&gt;true&lt;/em&gt; if stylus do a new press&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="keys"&gt;Keys&lt;/h3&gt;
&lt;p&gt;These are booleans. Everything here is defined in the &lt;em&gt;nds&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[KEY]&lt;/code&gt; can take one of the following values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;A&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;B&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Y&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;L&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;R&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Start&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Select&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Up&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Down&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Left&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Right&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Lid&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;Keys.held.[KEY]&lt;/code&gt;: is the key held?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Keys.released.[KEY]&lt;/code&gt;: is the key released?&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Keys.newPress.[KEY]&lt;/code&gt;: &lt;em&gt;true&lt;/em&gt; if the key does a new press&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="images"&gt;Images&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Image Image.load(path, destination)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new image in memory from an image file (PNG, JPG or GIF).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;path&lt;/code&gt; (String): path of the image to load&lt;/li&gt;
&lt;li&gt;&lt;code&gt;destination&lt;/code&gt; (Number): destination of the image in memory (can be RAM of VRAM)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Image.destroy(image)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Destroy the image.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image to destroy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Image.width(image)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get the width of the image.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image to use&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Image.height(image)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get the height of the image.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image to use&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Image.scale(image, width, height)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Scale the image.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image to scale&lt;/li&gt;
&lt;li&gt;&lt;code&gt;width&lt;/code&gt; (Number): new width of the image&lt;/li&gt;
&lt;li&gt;&lt;code&gt;height&lt;/code&gt; (Number): new height of the image&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Image.rotate(image, angle [, centerx, centery])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Rotate the image around rotation center.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image to rotate&lt;/li&gt;
&lt;li&gt;&lt;code&gt;angle&lt;/code&gt; (Number): angle of roattion (between 0 and 511)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;centerx&lt;/code&gt; (Number): x-coordinate of the new rotation center&lt;/li&gt;
&lt;li&gt;&lt;code&gt;centery&lt;/code&gt; (Number): y-coordinate of the new rotation center&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Image.rotateDegree(image, angle [, centerx, centery])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Rotate the image around rotation center, the angle is given in degree.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image to rotate&lt;/li&gt;
&lt;li&gt;&lt;code&gt;angle&lt;/code&gt; (Number): angle of rotation in degree (between 0 and 360)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;centerx&lt;/code&gt; (Number): x-coordinate of the new rotation center&lt;/li&gt;
&lt;li&gt;&lt;code&gt;centery&lt;/code&gt; (Number): y-coordinate of the new rotation center&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Image.mirrorH(image, activate)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Mirror the image horizontally.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image to mirror&lt;/li&gt;
&lt;li&gt;&lt;code&gt;activate&lt;/code&gt; (Boolean): &lt;em&gt;true&lt;/em&gt; to activate the mirroring, &lt;em&gt;false&lt;/em&gt; to cancel the transformation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Image.mirrorV(image, activate)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Mirror the image vertically.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image to mirror&lt;/li&gt;
&lt;li&gt;&lt;code&gt;activate&lt;/code&gt; (Boolean): &lt;em&gt;true&lt;/em&gt; to activate the mirroring, &lt;em&gt;false&lt;/em&gt; to cancel the transformation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Image.setTint(image, color)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the tint of the image.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image to tint&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the image&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="timers"&gt;Timers&lt;/h2&gt;
&lt;p&gt;The unit is the millisecond. The return value is a decimal number, not an integer, but no lower precision than 1ms can be guaranteed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Timer Timer.new([time])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Create a new timer, with the specified &lt;code&gt;time&lt;/code&gt; if given.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;time&lt;/code&gt; (Number): initial time of the Timer, in millisecond.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number timer:getTime()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Return the time of the timer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void timer:start()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Start a timer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void timer:stop()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Stop a timer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void timer:reset([time])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Reset a timer, to 0 or to &lt;code&gt;time&lt;/code&gt; if given.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;time&lt;/code&gt; (Number): initial time of the Timer, in millisecond.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="sprites"&gt;Sprites&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Sprite Sprite.new(graph, frameWidth, frameHeight, dest)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Create a sprite from an image file or an Image resource.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;graph&lt;/code&gt; (String or Image): path of the file which contains the sprite; or already loaded Image resource&lt;/li&gt;
&lt;li&gt;&lt;code&gt;frameWidth&lt;/code&gt; (Number): width of the frames&lt;/li&gt;
&lt;li&gt;&lt;code&gt;frameHeight&lt;/code&gt; (Number): height of the frames&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dest&lt;/code&gt; (Number): destination (RAM or VRAM)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void sprite:destroy()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Destroy the Sprite.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void sprite:drawFrame(screen, x, y, nbFrame)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Draw a frame of the sprite.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): X-coordinate where to draw the frame&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): Y-coordinate where to draw the frame&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nbFrame&lt;/code&gt; (Number): number of the frame to draw&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void sprite:addAnimation(tabAnim, delay)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Create an animation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tabAnim&lt;/code&gt; (Table): the table of the animation frames&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delay&lt;/code&gt; (Number): delay between each frame&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void sprite:playAnimation(screen, x, y, nbAnim)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Play an animation on the screen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): X-coordinate where to draw the frame&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): Y-coordinate where to draw the frame&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nbAnim&lt;/code&gt; (Number): number of the animation to play&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void sprite:resetAnimation(nbAnim)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Reset an animation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nbAnim&lt;/code&gt; (Number): number of the animation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void sprite:startAnimation(nbAnim)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Start an animation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nbAnim&lt;/code&gt; (Number): number of the animation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void sprite:stopAnimation(nbAnim)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Stop an animation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nbAnim&lt;/code&gt; (Number): number of the animation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Boolean sprite:isAnimationAtEnd(nbAnim)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Return &lt;em&gt;true&lt;/em&gt; if the animation has drawn the last frame.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nbAnim&lt;/code&gt; (Number): number of the animation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number sprite:getWidth()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Return the width of the frames as given to &lt;code&gt;Sprite.new()&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number sprite:getHeight()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Return the height of the frames as given to &lt;code&gt;Sprite.new()&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Table SpriteAnimation.new(tabAnim, delay)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;, &lt;em&gt;unused&lt;/em&gt;)&lt;br /&gt;
Create a new sprite animation. You don't have to use it, use &lt;code&gt;sprite:addAnimation()&lt;/code&gt; instead.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tabAnim&lt;/code&gt; (Table): table containing the animation frames&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delay&lt;/code&gt; (Number): delay between each frame&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="debug"&gt;Debug&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Debug.ON()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Activate the debug mode.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Debug.OFF()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Deactivate the debug mode.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Debug.print(text)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Print a debug line.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;text&lt;/code&gt; (String): text to print&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Debug.clear()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Clear the debug console.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Debug.setColor(color)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Set the debug text color.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the text&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="system"&gt;System&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;String System.currentDirectory()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get the current working directory.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void System.changeDirectory(path)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Change the current working directory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;path&lt;/code&gt; (String): path of the directory&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void System.remove(name)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Remove a file or an empty folder.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; (String): name of the file or directory to remove&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void System.rename(oldName, newName)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Rename file or an empty folder.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;oldName&lt;/code&gt; (String): name of the file or directory to rename&lt;/li&gt;
&lt;li&gt;&lt;code&gt;newName&lt;/code&gt; (String): new name of the file or directory&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void System.makeDirectory(name)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new directory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;name&lt;/code&gt; (String): path and name of the directory&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Table System.listDirectory(path)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
List all files and folders of a directory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;path&lt;/code&gt; (String): path of the directory to list&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;NOTE&lt;/em&gt;: See examples for more details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number System.CurrentVramUsed()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Give the current amount of used VRAM (seems to return some weird number).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number System.CurrentVramFree()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Give the current amount of free VRAM.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number System.CurrentPalUsed()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Give the current amount of used palette memory (seems to return some weird number).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number System.CurrentPalFree()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Give the current amount of free palette memory.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void System.setLedBlinkMode(mode)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the blink mode for the LED.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;mode&lt;/code&gt; (Number): the blink mode; choose between LED_ON, LED_BLINK and LED_SLEEP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void System.shutDown()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Shutdown the console.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void System.sleep()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Put the system in sleep state.&lt;/p&gt;
&lt;h2 id="fonts"&gt;Fonts&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Font Font.load(path)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new font from a font file (oslib and µLibrary format).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;path&lt;/code&gt; (String): path of the file to load&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Font.destroy(font)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Destroy the font.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;font&lt;/code&gt; (Font): font to destroy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Font.getCharHeight(font)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get the height of the characters of a font.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;font&lt;/code&gt; (Font): font to use&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number getStringWidth(font, text)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get the width of a text with a specific font.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;font&lt;/code&gt; (Font): font to use&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text&lt;/code&gt; (String): text&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="maps"&gt;Maps&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Map Map.new(image, mapfile, width, height, tileWidth, tileHeight)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new map by giving a map file.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image which contains tiles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mapfile&lt;/code&gt; (String): path to the map file (&lt;code&gt;.map&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;width&lt;/code&gt; (Number): width of the map in tiles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;height&lt;/code&gt; (Number): height of the map in tiles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tileWidth&lt;/code&gt; (Number): width of the tiles in pixels&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tileHeight&lt;/code&gt; (Number): height of the tiles in pixels&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Map.destroy(map)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Destroy a map.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;map&lt;/code&gt; (Map): map to destroy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Map.draw(screen, map, x, y, width, height)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Draw a map.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;map&lt;/code&gt; (Map): map to destroy&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x-coordinate where to draw the map&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y-coordinate where to draw the map&lt;/li&gt;
&lt;li&gt;&lt;code&gt;width&lt;/code&gt; (Number): x number of tiles to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;height&lt;/code&gt; (Number): y number of tiles to draw&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Map.scroll(map, x, y)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Scroll a map.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;map&lt;/code&gt; (Map): map to scroll&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x number of tiles to scroll&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y number of tiles to scroll&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Map.space(map, x, y)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the space between each tiles of a map.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;map&lt;/code&gt; (Map): map to modify&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x space between tiles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y space between tiles&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Map.setTile(map, x, y, tile)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Change a tile value.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;map&lt;/code&gt; (Map): map to modify&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x-coordinate of the tile to change in the map table&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y-coordinate of the tile to change in the map table&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tile&lt;/code&gt; (Number): new tile value&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Map.getTile(map, x, y)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get a tile value.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;map&lt;/code&gt; (Map): map to read&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x-coordinate of the tile to get&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y-coordinate of the tile to get&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="scroll-maps"&gt;Scroll Maps&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;ScrollMap ScrollMap.new(image, mapfile, width, height, tileWidth, tileHeight)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new ScrollMap by giving a map file.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;image&lt;/code&gt; (Image): image which contains tiles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mapfile&lt;/code&gt; (String): path to the map file (&lt;em&gt;.map&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;width&lt;/code&gt; (Number): width of the map in tiles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;height&lt;/code&gt; (Number): height of the map in tiles&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tileWidth&lt;/code&gt; (Number): width of the tiles in pixels&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tileHeight&lt;/code&gt; (Number): height of the tiles in pixels&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void ScrollMap.destroy(scrollmap)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Destroy a ScrollMap.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;scrollmap&lt;/code&gt; (ScrollMap): ScrollMap to destroy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void ScrollMap.draw(screen, scrollmap)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Draw a ScrollMap.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scrollmap&lt;/code&gt; (ScrollMap): ScrollMap to draw&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void ScrollMap.scroll(scrollmap, x, y)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Scroll a ScrollMap.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;scrollmap&lt;/code&gt; (ScrollMap): ScrollMap to scroll&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x-coordinate of the upper-left corner of the map (can be a negative value)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y-coordinate of the upper-left corner of the map (can be a negative value)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void ScrollMap.setTile(scrollmap, x, y, tile)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Change a tile value.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;scrollmap&lt;/code&gt; (ScrollMap): ScrollMap to modify&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x-coordinate of the tile to change in the scrollmap table&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y-coordinate of the tile to change in the scrollmap table&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tile&lt;/code&gt; (Number): new tile value&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number ScrollMap.getTile(scrollmap, x, y)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get a tile value.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;scrollmap&lt;/code&gt; (ScrollMap): ScrollMap to read&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x-coordinate of the tile to get&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y-coordinate of the tile to get&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="canvas"&gt;Canvas&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Canvas Canvas.new()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new canvas.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Canvas.destroy(canvas)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Destroy a canvas.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;canvas&lt;/code&gt; (Canvas): canvas to destroy&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;CanvasObject Canvas.newLine(x1, y1, x2, y2, color)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new line.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt;, &lt;code&gt;x2&lt;/code&gt;, &lt;code&gt;y2&lt;/code&gt; (Number): coordinates of the line&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the line&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;CanvasObject Canvas.newPoint(x1, y1, color)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new point.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt; (Number): coordinates of the point&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the point&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;CanvasObject Canvas.newRect(x1, y1, x2, y2, color)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new rectangle.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt;, &lt;code&gt;x2&lt;/code&gt;, &lt;code&gt;y2&lt;/code&gt; (Number): coordinates of the rectangle&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the rectangle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;CanvasObject Canvas.newFillRect(x1, y1, x2, y2, color)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new fill rectangle.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt;, &lt;code&gt;x2&lt;/code&gt;, &lt;code&gt;y2&lt;/code&gt; (Number): coordinates of the rectangle&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the rectangle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;CanvasObject Canvas.newGradientRect(x1, y1, x2, y2, color1, color2, color3, color4)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new gradient rectangle.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt;, &lt;code&gt;x2&lt;/code&gt;, &lt;code&gt;y2&lt;/code&gt; (Number): coordinates of the rectangle&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color1&lt;/code&gt;, &lt;code&gt;color2&lt;/code&gt;, &lt;code&gt;color3&lt;/code&gt;, &lt;code&gt;color4&lt;/code&gt; (Color): colors of the fill rectangle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;CanvasObject Canvas.newText(x1, y1, text [, color])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new text.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt; (Number): coordinates of the text&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text&lt;/code&gt; (String): text&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the text&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;CanvasObject Canvas.newTextFont(x1, y1, text, color, font)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new text with a special font.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt; (Number): coordinates of the text&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text&lt;/code&gt; (String): text&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the text&lt;/li&gt;
&lt;li&gt;&lt;code&gt;font&lt;/code&gt; (Font): special font of the text&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;CanvasObject Canvas.newTextBox(x1, y1, x2, y2, text [, color])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new textbox.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt;, &lt;code&gt;x2&lt;/code&gt;, &lt;code&gt;y2&lt;/code&gt; (Number): coordinates of the textbox&lt;/li&gt;
&lt;li&gt;&lt;code&gt;text&lt;/code&gt; (String): text&lt;/li&gt;
&lt;li&gt;&lt;code&gt;color&lt;/code&gt; (Color): color of the textbox&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;CanvasObject Canvas.newImage(x1, y1, image [, x2, y2] [, x3, y3])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new image.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;x1&lt;/code&gt;, &lt;code&gt;y1&lt;/code&gt; (Number): coordinates of the image&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x2&lt;/code&gt;, &lt;code&gt;y2&lt;/code&gt; (Number): coordinates in the source image to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x3&lt;/code&gt;, &lt;code&gt;y3&lt;/code&gt; (Number): width and height of the rectangle to draw&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Canvas.add(canvas, object)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Add a CanvasObject in a canvas.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;canvas&lt;/code&gt; (Canvas): canvas to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;object&lt;/code&gt; (CanvasObject): object to add&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Canvas.draw(screen, canvas, x, y)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Draw a canvas to the screen.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;screen&lt;/code&gt; (Constant / Number): screen where to draw (&lt;em&gt;SCREEN_UP&lt;/em&gt; or &lt;em&gt;SCREEN_DOWN&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;canvas&lt;/code&gt; (Canvas): canvas to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;x&lt;/code&gt; (Number): x-coordinate where to draw&lt;/li&gt;
&lt;li&gt;&lt;code&gt;y&lt;/code&gt; (Number): y-coordinate where to draw&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Canvas.setAttr(object, attrName, attrValue)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set an attribute value.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;object&lt;/code&gt; (CanvasObject): object to modify&lt;/li&gt;
&lt;li&gt;&lt;code&gt;attName&lt;/code&gt; (Constant / Number): attribute to modify; must be &lt;code&gt;ATTR_XXX&lt;/code&gt;. See &lt;em&gt;Variables&lt;/em&gt; for more details&lt;/li&gt;
&lt;li&gt;&lt;code&gt;attrValue&lt;/code&gt; (?): new value for the attribute; must be the good type&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;? Canvas.getAttr(object, attrName)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get an attribute value. Return type depends of the attribute (number, font or image).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;object&lt;/code&gt; (CanvasObject): object to use&lt;/li&gt;
&lt;li&gt;&lt;code&gt;attName&lt;/code&gt; (Constant / Number): attribute to get value. Must be &lt;code&gt;ATTR_XXX&lt;/code&gt;. See &lt;em&gt;Variables&lt;/em&gt; for more details&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Canvas.setObjOnTop(canvas, object)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Make a CanvasObject on the first plan of a Canvas.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;canvas&lt;/code&gt; (Canvas): Canvas in which we work.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;object&lt;/code&gt; (CanvasObject): Object that we want to set on Top.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Canvas.removeObj(canvas, object)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Delete an CanvasObject in a Canvas.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;canvas&lt;/code&gt; (Canvas): Canvas in which we want to delete an Object.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;object&lt;/code&gt; (CanvasObject): Object that we want to delete.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="rumble"&gt;Rumble&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Boolean Rumble.isInserted()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Check if a rumble pack is inserted.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Rumble.set(status)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the rumble status.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;status&lt;/code&gt; (Boolean): status of the rumble (&lt;em&gt;true&lt;/em&gt;: ON, &lt;em&gt;false&lt;/em&gt;: OFF)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="motion"&gt;Motion&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Boolean Motion.init&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Init the motion system if a motion device is detected. Return &lt;em&gt;true&lt;/em&gt; if a motion device is detected.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Motion.calibrate&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Calibrate the motion system.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Motion.readX&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Read the X tilt of the motion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Motion.readY&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Read the Y tilt of the motion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Motion.readZ&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Read the Z tilt of the motion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Motion.accelerationX&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Read the X acceleration of the motion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Motion.accelerationY&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Read the Y acceleration of the motion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Motion.accelerationZ&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Read the Z acceleration of the motion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Motion.readGyro&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Read the gyro value of the motion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Motion.rotation&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Read the rotation value of the motion.&lt;/p&gt;
&lt;h2 id="wifi"&gt;Wifi&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Wifi.connectWFC()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Connect the DS to the Wifi connection. Use the firmware configuration. So, you need to configure your connection with an official DS game.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Wifi.initDefault()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Init the DS Wifi system. Must be done before all Wifi functions except Wifi.connectWFC(). Don't use with Wifi.connectWFC().&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Wifi.autoConnectWFC()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Same as Wifi.connectWFC() but used after Wifi.initDefault().&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;String Wifi.status()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get the Wifi association status.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Wifi.scanAP()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the DS in scan mode for AP detection (Access Points such as Livebox, Freebox, Neufbox...). When starting, the DS searches all the time but doesn't warn for a found connection.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Wifi.getNumAP()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Return the number of AP found after a Wifi.scanAP(). The search may be long.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Tableau Wifi.newAP()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Return an empty table with AP data. There are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ssid&lt;/code&gt; (String): name of the network's AP&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bssid&lt;/code&gt; (String):&lt;/li&gt;
&lt;li&gt;&lt;code&gt;macaddr&lt;/code&gt; (String): MAC address of the AP&lt;/li&gt;
&lt;li&gt;&lt;code&gt;channel&lt;/code&gt; (Number): network channel number&lt;/li&gt;
&lt;li&gt;&lt;code&gt;rssi&lt;/code&gt; (Number): signal strength&lt;/li&gt;
&lt;li&gt;&lt;code&gt;maxrate&lt;/code&gt; (Number): communication speed (1M or 2M)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;protection&lt;/code&gt; (String): Wifi protection (&lt;em&gt;NONE&lt;/em&gt;, &lt;em&gt;WEP&lt;/em&gt;, &lt;em&gt;WPA&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adhoc&lt;/code&gt; (Boolean): is the connection adhoc (&lt;em&gt;true&lt;/em&gt;) or not (&lt;em&gt;false&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;active&lt;/code&gt; (Boolean): is the connection active (&lt;em&gt;true&lt;/em&gt;) or not (&lt;em&gt;false&lt;/em&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Tableau Wifi.getAP(numap)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;) &lt;br /&gt;
Return data about the AP with the number &lt;code&gt;numap&lt;/code&gt; found by &lt;code&gt;Wifi.scanAP()&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;numap&lt;/code&gt; (Number): number of the AP.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number Wifi.connectAP(numap, numkey, key)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Make a association request to the AP of index &lt;code&gt;numap&lt;/code&gt; with the key number &lt;code&gt;numkey&lt;/code&gt; and the WEP key &lt;code&gt;key&lt;/code&gt;.&lt;br /&gt;
If you intend to associate with an unprotected AP set &lt;code&gt;numkey&lt;/code&gt; to 1 and &lt;code&gt;key&lt;/code&gt; to an empty String (&lt;em&gt;""&lt;/em&gt;).&lt;br /&gt;
&lt;code&gt;numkey&lt;/code&gt; must be between 1 and 4, but the first key is more often used.&lt;br /&gt;
Return -1 if the association is refused.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;numap&lt;/code&gt; (Number): AP number&lt;/li&gt;
&lt;li&gt;&lt;code&gt;numkey&lt;/code&gt; (Number): key number&lt;/li&gt;
&lt;li&gt;&lt;code&gt;key&lt;/code&gt; (String): WEP key.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Wifi.disconnect()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Disconnect the DS from the Wifi connection.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Wifi.stop()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Disengage the Wifi.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;String Wifi.getLocalConf(choice)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Return data of the DS connection.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;choice&lt;/code&gt; (Number): &lt;ul&gt;
&lt;li&gt;&lt;em&gt;1&lt;/em&gt;: console's IP.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;2&lt;/em&gt;: gateway.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;3&lt;/em&gt;: subnet mask.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;4&lt;/em&gt;: first DNS.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;5&lt;/em&gt;: second DNS.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;6&lt;/em&gt;: MAC address of the console&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Wifi.resetIP()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Reset the IP, GateWay, SubnetMask and DNS data.&lt;br /&gt;
If called before association, the DS queries the DHCP server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Wifi.setLocalIp(ip, gateway[, subnetmask[, dns1[, dns2]]])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the IP, gateWay, subnetMask and DNS. The strings must be formated like "N1.N2.N3.N4" where N is a number between 0 to 255.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ip&lt;/code&gt; (String): IP address.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gateway&lt;/code&gt; (String): gateway address.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;subnetmask&lt;/code&gt; (String): subnet mask.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dns1&lt;/code&gt; (String): first DNS.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dns2&lt;/code&gt; (String): second DNS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Socket Wifi.createTCPSocket()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create a new TCP socket.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Socket Wifi.createUDPSocket()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Create an new UDP socket.&lt;/p&gt;
&lt;h3 id="shared-udp-and-tcp-sockets-methods"&gt;Shared UDP and TCP sockets methods&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number socket:checkData()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Check if there are data in the socket's Wifi buffer and return the number of characters to be read (TCP or UDP).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void socket:closeSocket()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Close a socket (TCP or UDP).&lt;/p&gt;
&lt;h3 id="udp-sockets-only-methods"&gt;UDP sockets only methods&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void udpSocket:sendTo(buffer, host, port)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Send data to the given peer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;buffer&lt;/code&gt; (String): data to be sent&lt;/li&gt;
&lt;li&gt;&lt;code&gt;host&lt;/code&gt; (String): URl of the peer&lt;/li&gt;
&lt;li&gt;&lt;code&gt;port&lt;/code&gt; (Number): port number&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;String, String, Number udpSocket:receiveFrom(length)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Receive data from any server, and also give the host's IP address and port.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;length&lt;/code&gt; (Number): size of the data to receive&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void udpSocket:setPeerName(host, port)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the default peer for this UDP socket.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;host&lt;/code&gt; (String): URl of the peer&lt;/li&gt;
&lt;li&gt;&lt;code&gt;port&lt;/code&gt; (Number): port number&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void udpSocket:send(buffer)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Send data to the socket's default peer (raise an error if none has been set).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;buffer&lt;/code&gt; (String): data to be sent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;String udpSocket:receive(length)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Receive data from the socket's default peer (raise an error if none has been set).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;length&lt;/code&gt; (Number): size of the data to be received&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="tcp-sockets-only-methods"&gt;TCP sockets only methods&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void tcpSocket:connect(host, port)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Connect the socket to a peer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;host&lt;/code&gt; (String): URl of the peer&lt;/li&gt;
&lt;li&gt;&lt;code&gt;port&lt;/code&gt; (Number): port number&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void tcpSocket:send(buffer)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Send data to the socket's peer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;buffer&lt;/code&gt; (String): data to be sent&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;String tcpSocket:receive(length)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Receive data from the socket's peer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;length&lt;/code&gt; (Number): size of the data to be received&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="nifi"&gt;Nifi&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Boolean Nifi.init(channel)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Init the Wifi in Nifi mode on a channel and return true if success, false otherwise.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;channel&lt;/code&gt; (Number): the wifi channel where to discuss (must be between 1 and 13).&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Nifi.changeChannel(channel)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Change the channel where the Nifi discuss.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;channel&lt;/code&gt; (Number): The new channel (must be between 1 and 13).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Nifi.stop()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Stop the nifi.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Boolean Nifi.checkMessage()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Check if a new message is arrived and return true if there is one and false otherwise.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;String Nifi.getTrame()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Get the last trame receive by Nifi even if it's not address to the NDS. Its max size is 4096 bytes.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Nifi.sendMessage(message)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Send a message on the channel.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;message&lt;/code&gt; (String): Message to send. The max size of the message is 2048 bytes.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;String Nifi.readMessage()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Read the last message received.&lt;br /&gt;
&lt;/p&gt;
&lt;h2 id="sound"&gt;Sound&lt;/h2&gt;
&lt;h3 id="sound-banks"&gt;Sound banks&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.loadBank(filename)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Load a soundbank from a file in memory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;filename&lt;/code&gt; (String): path of the file to load&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.unloadBank()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Unload the sound bank from the memory.&lt;/p&gt;
&lt;h3 id="mods"&gt;Mods&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.loadMod(id)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Load a module in memory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt; (Number): id of the module to load&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.unloadMod(id)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Unload a module from the memory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt; (Number): id of the module to unload&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.startMod(id, playmode)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Start playing a module already loaded in memory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt; (Number): id of the module to play&lt;/li&gt;
&lt;li&gt;&lt;code&gt;playmode&lt;/code&gt; (Number): playing mode (&lt;code&gt;PLAY_ONCE&lt;/code&gt; or &lt;code&gt;PLAY_LOOP&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.pause()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Pause all modules.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.resume()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Resume all modules.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.stop()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Stop all modules.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.setPosition(id, position)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the cursor position of a module.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt; (Number): id of the module&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Boolean Sound.isActive()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Return &lt;em&gt;true&lt;/em&gt; if the player is active and &lt;em&gt;false&lt;/em&gt; otherwise.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.startJingle(id)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Start playing a module as a jingle.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt; (Number): id of the module to play&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.setModVolume(volume)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the volume of the played module.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;volume&lt;/code&gt; (Number): new volume value between 0 and 1024&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.setJingleVolume(volume)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the volume of the played jingle.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;volume&lt;/code&gt; (Number): new volume value between 0 and 1024&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.setModTempo(tempo)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the tempo of the module player.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tempo&lt;/code&gt; (Number): new tempo value between 512 and 2048&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.setModPitch(pitch)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the pitch of the module player.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;pitch&lt;/code&gt; (Number): new pitch value&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="sfx"&gt;SFX&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.loadSFX(id)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Load a SFX in the meory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt; (Number): id of the SFX to load&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.unloadSFX(id)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Unload a SFX in the meory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt; (Number): id of the SFX to unload&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Handle Sound.startSFX(id)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Start a sound effect already loaded in memory. Return and handle to this SFX.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt; (Number): id of the SFX to start&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.stopSFX(handle)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Stop a played SFX.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;handle&lt;/code&gt; (Handle): handle of a SFX, given by the startSFX function&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.releaseSFX(handle)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Mark an effect as low priority.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;handle&lt;/code&gt; (Handle): handle of a SFX, given by the startSFX function&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.stopAllSFX()&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Stop all payed SFX.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.setSFXVolume(handle, volume)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the volume of a playing SFX.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;handle&lt;/code&gt; (Handle): handle of a SFX, given by the startSFX function&lt;/li&gt;
&lt;li&gt;&lt;code&gt;volume&lt;/code&gt; (Number): new volume value between 0 and 255 (different from Mods)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.setSFXPanning(handle, panning)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the panning of a playing SFX.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;handle&lt;/code&gt; (Handle): handle of a SFX, given by the startSFX function&lt;/li&gt;
&lt;li&gt;&lt;code&gt;panning&lt;/code&gt; (Number): new panning value between 0 (left) and 255 (right)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.setSFXPitch(handle, pitch)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the pitch of a playing SFX.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;handle&lt;/code&gt; (Handle): handle of a SFX, given by the startSFX function&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pitch&lt;/code&gt; (Number): new pitch value&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void Sound.setSFXScalePitch(handle, scale)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;nds&lt;/em&gt;)&lt;br /&gt;
Set the scaling pitch ratio of a playing SFX.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;handle&lt;/code&gt; (Handle): handle of a SFX, given by the startSFX function&lt;/li&gt;
&lt;li&gt;&lt;code&gt;scale&lt;/code&gt; (Number): new scale pitch value&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ini-files"&gt;INI Files&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Table INI.load(filename [, mode])&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Load an INI file and create a table with it.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;filename&lt;/code&gt; (String): file to load&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mode&lt;/code&gt; (Boolean): use the simple mode or not&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Void INI.save(filename, tab)&lt;/code&gt;&lt;/strong&gt; (&lt;em&gt;libs&lt;/em&gt;)&lt;br /&gt;
Save a table in an INI file.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;filename&lt;/code&gt; (String): file to load&lt;/li&gt;
&lt;li&gt;&lt;code&gt;tab&lt;/code&gt; (Table): table to save&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Example&lt;/em&gt;:&lt;/p&gt;
&lt;p&gt;An INI file contains:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;[infos]&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;toto&lt;/span&gt;
&lt;span class="na"&gt;age&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;25&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And then in the Lua script:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;tab&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;INI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;myfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ini&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;tab&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;infos&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;tata&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;
&lt;span class="n"&gt;INI&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;“&lt;/span&gt;&lt;span class="n"&gt;myfile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ini&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tab&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This example changes the line &lt;em&gt;name=toto&lt;/em&gt; into &lt;em&gt;name=tata&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;These tables can only contain Strings! If you want to store numbers convert them with the &lt;code&gt;tostring()&lt;/code&gt; function.&lt;/p&gt;
&lt;h2 id="users-informations"&gt;User's informations&lt;/h2&gt;
&lt;h3 id="variables"&gt;Variables&lt;/h3&gt;
&lt;p&gt;They are defined in &lt;em&gt;nds&lt;/em&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;(Number) dsUser.color&lt;/code&gt;: gives the color theme, between 0 and 15&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(Number) dsUser.birthDay&lt;/code&gt;: gives the birth day&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(Number) dsUser.birthMonth&lt;/code&gt;: gives the birth month&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(String) dsUser.name&lt;/code&gt;: gives the user's name&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(Number) dsUser.nameLength&lt;/code&gt;: gives the user's name length&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(String) dsUser.message&lt;/code&gt;: gives the user's personal message&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(Number) dsUser.messageLength&lt;/code&gt;: gives the user's personal message length&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(Number) dsUser.alarmHour&lt;/code&gt;: gives the alarm hour setting&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(Number) dsUser.alarmMinute&lt;/code&gt;: gives the alarm minute setting&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(Number) dsUser.language&lt;/code&gt;: gives the user's language, between 0 and 5&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(Boolean) dsUser.GBAScreen&lt;/code&gt;: gives the GBA screen setting (&lt;em&gt;true&lt;/em&gt; for the upper screen, and &lt;em&gt;false&lt;/em&gt; for the lower screen)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(Number) dsUser.defaultBrightness&lt;/code&gt;: gives the default brightness (between 0 and 3 with a NDS Lite)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(Boolean) dsUser.getAutoMode&lt;/code&gt;: gives the auto launching mode setting (&lt;em&gt;true&lt;/em&gt; if enabled, and &lt;em&gt;false&lt;/em&gt; if disabled)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="functions-unused-nds"&gt;Functions (&lt;em&gt;unused&lt;/em&gt;, &lt;em&gt;nds&lt;/em&gt;)&lt;/h3&gt;
&lt;p&gt;They are not really useful since the variables herebefore are based on them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number dsUser.getColor()&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;
Give the color theme, between 0 and 15.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number dsUser.getBirthDay()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the birth day.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number dsUser.getBirthMonth()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the birth month.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;String dsUser.getName()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the user's name.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number dsUser.getNameLength()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the user's name length.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;String dsUser.getMessage()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the user's personal message.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number dsUser.getMessageLength()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the user's personal message length.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number dsUser.getAlarmHour()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the alarm hour setting.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number dsUser.getAlarmMinute()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the alarm minute setting.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number dsUser.getLanguage()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the user's language, between 0 and 5.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Boolean dsUser.getGBAScreen()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the GBA screen setting (&lt;em&gt;true&lt;/em&gt; for the upper screen, and &lt;em&gt;false&lt;/em&gt; for the lower screen).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Number dsUser.getDefaultBrightness()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the default brightness (between 0 and 3 with a NDS Lite).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Boolean dsUser.getAutoMode()&lt;/code&gt;&lt;/strong&gt; &lt;br /&gt;
Give the auto launching mode setting (&lt;em&gt;true&lt;/em&gt; if enabled, and &lt;em&gt;false&lt;/em&gt; if disabled).&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Reylak</dc:creator><pubDate>Sun, 17 Nov 2013 14:33:49 -0000</pubDate><guid>https://sourceforge.net740787d9f970376428bacff0979ef9bb85582854</guid></item></channel></rss>