Difference between revisions of "Lua for Wii"

From WiiBrew
Jump to: navigation, search
m (Homebrew Apps/Lua for Wii moved to Homebrew apps/Lua for Wii: Capitals make me cry :( sorry guys)
(removed outdated stuff and updated download links for new version)
 
(24 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{Infobox homebrewapp
+
{{Infobox development tools
 
| image      =  
 
| image      =  
 
| title      = Lua
 
| title      = Lua
| desc        = Lua on Wii
+
| version    = 5.1.5-wii-1
| type        = Scripting Language
+
| type        = ported library
| author      = Feesh!
+
| licence    = MIT
| download    = [http://feesh.braingravy.co.uk/archives/lua-wii.tar.bz2 Lua]
+
| maintainer  = [[User:Carstene1ns|carstene1ns]]
| peripherals = none
+
| contributor = [[User:Feesh!|Feesh]],[[User:Owen|Owen]]
 +
| download    = https://github.com/carstene1ns/lua51-wii/releases/download/v5.1.5-wii-1/lua-5.1.5-wii-1.zip
 +
| source      = https://github.com/carstene1ns/lua51-wii/archive/v5.1.5-wii-1.zip
 
}}
 
}}
  
Lua is a small and powerful scripting language that is perfect for use in projects that require changes in logic without the hassle of recompiling the program's source code. Lua can be told to load a file and execute functions from that file to create a dynamic program flow. Being extensible, Lua allows the programmer to define new functions for use in the script files they create.  
+
'''Lua''' is a small and powerful scripting language that is perfect for use in projects that require changes in logic without the hassle of recompiling the program's source code. Lua can be told to load a file and execute functions from that file to create a dynamic program flow. Being extensible, Lua allows the programmer to define new functions for use in the script files they create.  
  
 
== Usage ==
 
== Usage ==
  
The source code comes with a functioning example. To use the example, you need to copy the 'test.lua' to the root of your SD card, then run the lua.elf, either from Wiiload, the HBC menu, or (possibly- not tested yet) any other homebrew bootloader.
+
Extract release download archive to your $DEVKITPRO/libogc folder.
 +
 
 +
Include lua headers in your source files, eg:
 +
#include "lua.h"
 +
#include "lauxlib.h"
 +
#include "lualib.h"
 +
 
 +
Add -llua to your LIBS in Makefile before -lm
 +
 
 +
If you need file system access, use an external library (for example libfat)
 +
and initalize it before trying to access any files.
 +
 
 +
== Build ==
 +
 
 +
Be sure DevkitPPC and libogc is installed and $DEVKITPRO is an exported variable.
 +
 
 +
Then the usual
 +
 
 +
cd /to/lua51-wii/dir
 +
make -j <number of processor cores/threads> (eg. -j2)
 +
 
 +
will build the library and
 +
 
 +
make install
 +
 
 +
will install library and header files in your DevkitPro installation folder.
  
 
== Reasons To Use Lua ==
 
== Reasons To Use Lua ==
Line 19: Line 46:
 
To poke at a few popular uses of Lua; Lua was used in World of Warcraft for the GUI, in Farcry for the console system and all of the programmed user materials in Gmod(the famous retail HL2 sandbox mod) are made with it. It's been used in a bunch of open source game engines because it is simple to use and pretty versatile.
 
To poke at a few popular uses of Lua; Lua was used in World of Warcraft for the GUI, in Farcry for the console system and all of the programmed user materials in Gmod(the famous retail HL2 sandbox mod) are made with it. It's been used in a bunch of open source game engines because it is simple to use and pretty versatile.
  
== Bugs ==
+
== TODO / BUGS / Limitations ==
  
* FAT system needs to be initialised by the user before calling any file loading functions (such as luaL_dofile(...)).  
+
* Add proper Wii thread support
 +
* Add proper time support (in testing)
 +
* The stand-alone-interpreter and bytecode-compiler are not build.
 +
* Launching external programs (system()) will likely never work
 +
* FAT system needs to be initialized by the user before calling any file loading functions (such as luaL_dofile(...)).  
  
 
== Source ==
 
== Source ==
  
The only major changes to the source code were removing functions related to launching system executables and getting the system's time. Other small changes were made to the file manipulation functions- they try to initialise FAT before use but it is recommended you do this yourself! The makefile might need some configuration to reflect your development environment.
+
The only major changes to the source code were removing functions related to launching system executables.
 +
 
 +
== Alternate download for old version 5.1.3 ==
 +
* Feesh's server seems down at the moment, a mirror can downloaded from [http://www.box.com/s/n5dmlncn0dicbsx4b16i here] (its not exactly a mirror copy but it should work) [[User:Owen|Owen]] 09:31, 22 March 2012 (CET)
 +
* If you'd just like the development files they can be found [http://www.2shared.com/file/-2meQZx6/lua-wii.html here].
 +
 
 +
== Wii Software using Lua ==
 +
* [[Luafwii]] is a LuaPlayer (Lua Interpreter) for Wii, which loads and executes lua files.  
 +
* [[GuitarsOnFire]]
 +
* [[Newo Shooter]]
 +
 
 +
[[Category:Development]]

Latest revision as of 19:19, 29 November 2013

Lua
General
Maintainer(s)carstene1ns
Contributor(s)Feesh,Owen
TypePorted Libraries
Version5.1.5-wii-1
LicenceMIT
Links
Download
Source

Lua is a small and powerful scripting language that is perfect for use in projects that require changes in logic without the hassle of recompiling the program's source code. Lua can be told to load a file and execute functions from that file to create a dynamic program flow. Being extensible, Lua allows the programmer to define new functions for use in the script files they create.

Usage

Extract release download archive to your $DEVKITPRO/libogc folder.

Include lua headers in your source files, eg:

#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"

Add -llua to your LIBS in Makefile before -lm

If you need file system access, use an external library (for example libfat) and initalize it before trying to access any files.

Build

Be sure DevkitPPC and libogc is installed and $DEVKITPRO is an exported variable.

Then the usual

cd /to/lua51-wii/dir
make -j <number of processor cores/threads> (eg. -j2)

will build the library and

make install

will install library and header files in your DevkitPro installation folder.

Reasons To Use Lua

To poke at a few popular uses of Lua; Lua was used in World of Warcraft for the GUI, in Farcry for the console system and all of the programmed user materials in Gmod(the famous retail HL2 sandbox mod) are made with it. It's been used in a bunch of open source game engines because it is simple to use and pretty versatile.

TODO / BUGS / Limitations

  • Add proper Wii thread support
  • Add proper time support (in testing)
  • The stand-alone-interpreter and bytecode-compiler are not build.
  • Launching external programs (system()) will likely never work
  • FAT system needs to be initialized by the user before calling any file loading functions (such as luaL_dofile(...)).

Source

The only major changes to the source code were removing functions related to launching system executables.

Alternate download for old version 5.1.3

  • Feesh's server seems down at the moment, a mirror can downloaded from here (its not exactly a mirror copy but it should work) Owen 09:31, 22 March 2012 (CET)
  • If you'd just like the development files they can be found here.

Wii Software using Lua