Todo Funciones Grupos Páginas
Documentación de OneLua

Versión 4R1

Actualmente ONElua v4R1 cuenta con grandes funciones implementadas:

  • Se ha optimizado y mejorado el code para un mayor rendimiento.
  • Se ha adaptado a las necesidades actuales para la Scene PSP-PSVita, funcional tanto para VHBL, eCFW ARK y el eCFW TN-V.
  • Se ha agregado el Módulo CAM (GO! CAM).
  • Se ha agregado el Módulo IR (Puerto Infrarojo).
  • Se ha agregado el Módulo HTTP, incluye un gestor automático de cookies integrado.
  • Se ha agregado la carga de imagenes tipo BMP.
  • Se ha agregado la reproducción de archivos .pmf (gameboots) con la función pmf.run().
  • Se ha incluido la salida a TV (modo progresivo 720*480) con la función os.modetv().
  • Se han agregado los modulos FTP, mejorado el modulo Sockets y optimizado el modulo Wlan con nuevas funciones.
  • Se ha optimizado la extracción de archivos .zip y .rar através de la extracción en paralelo (modo hilo).
  • Cuenta con Módulos interesantes como el Módulo 3D y el Módulo SIO.
  • Añadida la posibilidad de cargar una fuente por defecto: oneFont.pgf si existe junto a nuestro EBOOT.PBP, de lo contrario carga la jpn0.pgf de la flash0. Esta mejora es especialmente útil para el uso en el emulador ppsspp
  • basta colocar la fuente renombrada correctamente a oneFont.pgf y así el eboot de ONElua podrá iniciar nuestro Homebrew con está Font por defecto.
  • Agregada la libreria Lua Bit que permite Operaciones a nivel bit a bit.
  • Agregados varios 'PATCH' para ampliar la sintaxis de lua, ejemplos:
    • Operaciones tipo C: "suma: +=, resta: -=, multiplicación: *=, división: /=, potencia: ^=, mod: %=, diferente: !=, división no float: \"
    • Operaciones C bit: "and: &, or: |, not: ~, shift left: <<, shift right: >>"
    • Operaciones continue, "salta un ciclo", en cualquier bucle.

Introducción

El proyecto OneLua nació como una idea que no parecía realizable a corto plazo, pero que después de un periodo de investigación, planeo y pruebas terminó tal y como se presenta ante ustedes. OneLua no presume de tener funciones muy avanzadas, ni tampoco de ser el más rápido o eficiente de los intérpretes de Lua existentes para el PSP, pero si tiene un gran abanico de funciones, comenzando por las más comunes y algunas que suelen echarse en falta en otros intérpretes.

Instalación

  1. Descargar el ejecutable de OneLua. Tanto el ejecutable como esta documentación se actualizan tan pronto se añaden funcionalidades, por lo que es recomendable usar sólo nuestros links.
  2. Crear una carpeta dentro de /PSP/GAME y colocar dentro el ejecutable. En esta misma carpeta colocar un archivo llamado script.lua, que será la base de cualquier proyecto.
  3. Editar el script.lua, y ejecutar desde el menu de juegos.
Atención
Siempre que se trabaje con los scripts es recomendable asegurarse de que están codificados en UTF-8, de lo contrario los caracteres especiales (acentos y ñ por ejemplo) no se visualizarán.

OneLua en el emulador PPSSPP

Para que funcione correctamente ONElua sobre el emulador es necesario hacer ciertos ajustes:

  • Desmarcar la casilla Renderizado por software.
  • Marcar la casilla Memoria Rápida (inestable).
  • Y lo más importante debes colocar la fuente: oneFont.pgf al lado del EBOOT.PBP de ONElua (La font jpn0.pgf que maneja el emulador PPSSPP en la carpeta flash0 es diferente).

Consideraciones sobre OneLua

A manera de nota informativa, en esta documentación no encontrarán información acerca del uso de funciones propias de Lua (como lo son las funciones del módulo string, math, io, etc), solamente de las propias funciones del intérprete. Para más información acerca de las funciones de Lua, visitar la página oficial.

Constantes

Muchas de las funciones de OneLua cuentan con constantes para facilitar su uso. Dichas constantes tienen un valor numérico asociado (indicado en la documentación de cada función) por lo que es irrelevante usar la constante o su valor numérico directamente.

Por convención, las constantes de OneLua están definidas como __NOMBRE (dos guiones bajos al inicio y en mayúsculas).

Callbacks

OneLua cuenta con varios callbacks, que no son otra cosa sino funciones que, si están definidas, se ejecutarán automáticamente en determinadas tareas que bloquean la ejecución del script. Para usar un callback sólo es necesario definir una función con el nombre adecuado (ver lista a continuación) y dentro escribir el código que se desea ejecutar. Los callbacks no están diseñados para ejecutar código muy complejo, sólo para que la consola no parezca muerta mientras ejecuta esas tareas.

Los callbacks disponibles son:

  • onDebug(msg) Se ejecuta cuando se produce un error en nuestro script, permitiendo utilizar una pantalla de error personalizada.
    • msg: Es el mensaje de error que genera lua.
  • onAdhocConnection(state, backtime) Se ejecuta cuando se realiza una petición de conexión Ad-Hoc con la función adhoc.sendrequest().
    • state: Estado de la conexión.
    • backtime: Contador con el tiempo disponible antes de que se cancele la petición.
  • onCopyFiles(size, written, name) Se ejecuta al copiar archivos con la función files.copy().
    • size: Tamaño en bytes del archivo que se copia.
    • written: bytes escritos hasta el momento.
    • name: Nombre del archivo.
  • onExtractFiles(size, written, name) Se ejecuta cuando se descomprimen archivos con la función files.extract().
    • size: Tamaño en bytes del archivo que está siendo extraído.
    • written: bytes escritos hasta el momento.
    • name: Nombre del archivo que se está extrayendo.
  • onNetConnection(state) Se ejecuta cuando se realiza la conexión a la red WiFi con la función wlan.connect().
    • state: Es un número, que indica el estado de la conexión.
  • onNetConfig(index, name) Se ejecuta usando las siguientes funciones: wlan.backup(), wlan.restore() y wlan.add().
    • index: Es el ID de la conexión de red.
    • name: El nombre de la conexión de red.
  • onNetGetFile(size, written) Se ejecuta cuando se descarga un archivo de la red con la función http.getfile().
    • size: Tamaño en bytes del archivo que está siendo descargado (No siempre puede alcanzar el tamaño del archivo, en dado caso devolverá 0).
    • written: bytes escritos hasta el momento.
  • onDumpUmd(size, written) Se ejecuta cuando se dumpea un UMD con la función umd.dumpiso().
    • size: Tamaño en sectores del UMD que está siendo dumpeado.
    • written: sectores escritos hasta el momento.
  • onPbpUnpack(size, written, name) Se ejecuta cuando se extrae los recursos de un EBOOT.PBP con la función game.unpack().
    • size: Tamaño en bytes del archivo que se está extrayendo.
    • written: bytes escritos hasta el momento.
    • name: Nombre del archivo.
  • onPbpPack(size, written, name) Se ejecuta cuando se empaca los recursos de un EBOOT.PBP con la función game.pack().
    • size: Tamaño en bytes del archivo que se está empacando.
    • written: bytes escritos hasta el momento.
    • name: Nombre del archivo.
  • onPmfPlay(state) Se ejecuta mientras es reproducido un archivo pmf por la funcion pmf.run().
    • state: Estado de la reproducción, true o false de acuerdo si está en reproduciendo "play".
Nota
  • Los argumentos del callback onExtractFiles no se refieren al comprimido entero, sino a cada uno de los archivos que contiene.
  • El número y/o nombre de los argumentos para los callbacks no necesariamente debe coincidir con los de la lista, sin embargo el nombre de la función si debe ser exactamente el mismo.
Atención
Los callbacks no actualizan automáticamente la pantalla, de manera que se debe usar screen.flip() para evitar que la consola se bloquee cuando se use texto o gráficos en general dentro del callback.

Legal

Copyright © 1994–2014 Lua.org, PUC-Rio.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.