Update:
LuaPlayer is updated from Lua 5.1 to the last Lua version 5.2.3.
The used library for sound is Estwald's (aka Hermes) nice spu sound library.
The other great library from Hermes, tiny3d for 2D and 3D grafics is also added.
Download the player + some tiny3d samples by Hermes, ported to Lua scripts:
LuaPlayer.rar (mediafire)
PS3 LUA Player psl1ght-v2 port by 3141card
Found time to read how LUA work, more exact, how library code like a SDL interface can be added. It is very simple.
I add e.g. TTF-font support, a sys-font in the example. But I am really not interested in LUA. Maybe someone
here have time and pleasure to add things like sound (from psl1ght or SDL) and other things to the LUA Player.
- Compiled with psl1ght 2 and signed for 4.xx
- The app search for "/dev_usb000/app.lua",
- Change nothing on lib code, fix only the usual path/name probs for psl1ght vs psl1ght-v2
Download:
Source code + example + pkg
LuaPlayerPS3 beta 1.0 Written by jonlimle
XMB icons created by yamagushi
Current Features
-Texture loading (currently only supports BMP)
-Onscreen text rendering
-Controls (including sixaxis and joysticks)
-Screenshots
-All standard Lua functionality (with the exception of the OS functions)
-PC emulator that can be used to test scripts before you run on the ps3 (Linux, Mac and Windows binaries included,
if you are using the windows binary and get some missing dll messages, those dll's are in the "compat DLL's.zip" file in the emulator folder)
Future Features
-Support for more image formats
-Support for TTF fonts and font customization
-Audio support
-More advanced rendering functionality
-Networking capabilities
How to use
-copy everything that is in the "Copy to USB root" to the root of your USB drive
-install the pkg as you would any other pkg
-all files that you attempt to open from lua must be on your USB drive
-any scripts that you make, must be on the root of the card, and named app.lua
-when testing the scripts in the emulator, it will load app.lua in the same folder as the binary, all files that you attempt
to load should also be in that same folder
this release comes with an example app.lua which shows a few of the features of which you are currently able to do
when using the emulator, the keys are mapped in the folowing way
up = up arrow
down = down arrow
left = left arrow
right = right arrow
triangle = w
square = a
cross = s
circle = d
start = enter/return
select = quote key (")
R1 = Right shift
R2 = Right control
R3 = question mark
L1 = Left shift
L2 = Left control
L3 = z
There is currently no emulation of the joysticks or sixaxis in the emulator
if you have any questions, comments, or requests you can post them wherever you downloaded this from, or you can also find me on irc in #luaplayerps3 on irc.freenode.net
Commands
========
--GRAPHICS--
- InitGFX(width, height) this must be called before you can call any other graphics related functions, for example, if your tv was 720p you would call InitGFX(720,480)
- beginGFX() this must be called before you can begin drawing to the screen
- DrawText(x, y, text, surface) this will print text to the screen, x is the x posistion on the screen, y, is the y posistion, text is the text you want to print
and surface (see information on surface below) is the surface that you want to print the text on to, if you do not give it a surface, it will print to the main screen
- DrawCircle(x, y, size, r, g, b, alpha) this will draw a circle on the screen, x is the x posistion on the screen, y, is the y posistion, size is how many pixels wide you want the circle to be, r is the level of red for its color, g is the level of green for its color, b is the level of blue for its color, and alpha is for the
alpha :P
- BlitToScreen(surface) you must call this on every surface that you want drawn onto the main screen (see definition of surface below)
- endGFX() this must be called after you have drawn everything wanted onto the current frame
- Screenshot(filename) Saves a screenshot (bmp format) to your usb device, filename = name of file to be saved
--SURFACE--
a surface currently only holds a texture (only bmp format supported currently)
you must initialize surface by calling surface() for example ...
mySurface = surface()
you must initialize the suface before you can start using any of its methods, from here on, we will be using "mySurface" as the example for the method definitions
- mySurface:LoadIMG(bmpfile) this will load a bmp image file into "mySurface"
- mySurface:setRectPos(x, y) this will set the posistion on the screen where "mySurface" will be drawn, x is the x posistion, and y is the y posistion
- mySurface:getRes() this will return the width and height in pixels that the surface will take up, you need to call this in a way similar to...
mySurfaceWidth, mySurfaceHeight = mySurface:getRes()
--CONTROLS--
- initPads(num) you must call this before you can begin reading any keys num = the number of pads you want, 7 is reccomended
- setsixaxis(padnum, enable) you must call this before you can use any of the sixaxis functionality padnum is the pad that you want to enable/disable sixaxis on
if there is only one pad, you would use 0 for padnum, enable is weather you are wanting to enable or disable it, if enable, use 1, or 0 to disable
- up(padnum) returns true if the up button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- down(padnum) returns true if the down button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- left(padnum) returns true if the left button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- right(padnum) returns true if the right button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- triangle(padnum) returns true if the triangle button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- square(padnum) returns true if the square button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- circle(padnum) returns true if the circle button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- cross(padnum) returns true if the right button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- R1(padnum) returns true if the R1 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- R2(padnum) returns true if the R2 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- R3(padnum) returns true if the R3 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- L1(padnum) returns true if the L1 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- L2(padnum) returns true if the L2 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- L3(padnum) returns true if the L3 button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- start(padnum) returns true if the start button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- select(padnum) returns true if the select button is pressed, and false if it isnt, padnum is the pad which you want to check, if only one controller is connected use 0
- RanalogX(padnum) returns the x posistion of the right analog stick
- RanalogY(padnum) returns the Y posistion of the right analog stick
- LanalogX(padnum) returns the x posistion of the left analog stick
- LanalogY(padnum) returns the y posistion of the left analog stick
- Xaxis(padnum) returns the x axis value if sixaxis is enabled
- Yaxis(padnum) returns the y axis value if sixaxis is enabled
- Zaxis(padnum) returns the z axis value if sixaxis is enabled
- Gaxis(padnum) returns the gyro value if sixaxis is enabled