Todo Funciones Grupos Páginas
Documentación de ONElua Vita

Versión 3R1

Actualmente ONElua Vita tiene las siguientes características principales:

  • ONElua Vita 3R1
  • Portado para ser 100% compatible con taiHEN y utilizar el máximo de funciones.
  • Manejo de los perifericos:
    • Botones fisicos o controles.
    • Camara (frontal y trasera).
    • Motion (acelerómetro, giroscopio).
    • Touch (frontal y trasero).
  • Agregado el modulo 'thread' & 'channel', que permiten a ONElua ejecutar multiples procesos.
  • Mejorado el reproductor de audio, ahora reproduce formatos MP3, OGG, WAV, y reproduce desde fuentes en la red.
  • En modo de acceso total, se remueve la partición "app0:", y se agrega la escritura en la ruta de la aplicación ("ux0:/app/<ID>").
  • Permite habilitar el modo inseguro o total en la consola os.master().
  • Permite conocer el tipo de acceso en la consola (Seguro o Inseguro) os.access().
  • Añadida la habilidad de ir al 'LiveArea' sin cerrar la aplicacion o presionar el boton 'PS' os.golivearea().
  • Añadida la habilidad de actualizar o rehacer la base de datos del 'LiveArea' os.updatedb() & os.rebuilddb().
  • Añadida la posibilidad de recargar del archivo config.txt de taiHEN os.taicfgreload().
  • Añadida la posibilidad de Instalar/Actualizar/Desintalar Temas Personalizados del 'LiveArea'.
  • Agregado ONEdebugger - completo para depurar los errores en los scripts.
  • Optimización de nuestros Callbacks y la posibilidad de detener o abortar los procesos en el callback, revise la sección Callbacks para más información.
  • Optimización del Módulo files (Por favor revisa nuevamente nuestra Documentación).
  • Añadida la posibilidad de Instalar/Actualizar/Desintalar Homebrew´s en formato vpk y mediante carpeta.
  • Actualizada la función game.info(), ahora es posible obtener los datos de: .sfo, eboot.pbp o VPKs/ZIPs.
  • Añadida la posibilidad de cargar mapas (tiles) y dibujarlos.
  • Añadida la posibilidad de cargar fuentes ttf o pgf.
  • Añadida la posibilidad de cargar una fuente por defecto: onefont.pgf si existe junto a nuestro EBOOT.BIN, de lo contrario carga la fuente por defecto. 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: >>"
    • Operations continue, "skips a cycle", in any loop.

Introducción

ONELua es un proyecto multiplataforma orientado a facilitar la programacion tanto para programadores como aquellos que no lo son, Con la llegada de Henkaku por el Team Molecule, por fin la vita era accesible y cualquier usuario podria utilizar Homebrew´s, en ese momento decidimos que era momento de portar ONElua y crear una version completa para la Play Station Vita.

Debido que aun esta en inicios el vitasdk, la falta de samples, requirio un tiempo el realizar toda la codificacion y pruebas personalmente, por lo tanto la primer version sale con tal retraso desde la aparicion de henkaku.

Aquí encontrarás las principales funciones de ONElua para PSP pero claro, con funciones nuevas y especiales para la PSVita.

Instalación

  1. Descargar el ejecutable de ONElua para Vita. 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. Dentro del paquete que descargara, contiene el ejecutable y una aplicacion de empaquetado ONEmaker que es la encargada de crear el vpk para su aplicacion desarrollada.
  3. Dentro de la carpeta ONEmaker se encuentra una carpeta llamada homebrew dentro de esta carpeta debe colocar el eboot.bin mas reciente de ONElua Vita, asi como todo archivo que desea incluir en el proyecto. En esta misma carpeta colocar un archivo llamado script.lua, que será la base de cualquier proyecto.
  4. Una vez que tiene todos los archivos de su proyecto listos, debe ejecutar el packer.bat que esta en ONEmaker, este le pedira un titulo para su proyecto (Este es la leyenda visible en el live area), despues le pedira un ID este debe ser exactamente nueve digitos alfa-numericos en mayus, una vez insertados ambos campos, se generara un nuevo vpk con el titulo que ingreso, ese es el homebrew terminado.
  5. Para intrucciones mas detalladas de instalacion de homebrew´s vpk en Henkaku visite la página oficial.
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.

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.

Algunos callbacks como el onExtractFiles, onInstallApps y onNetGetFile, cuentan con la opcion de abortar el proceso que estan realizando, mediante la devolucion de un valor numerico 0.

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.
  • 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.
  • onDeleteFiles(name) Se ejecuta al eliminar archivos con la función files.delete().
    • name: Nombre del archivo.
  • onAppInstall(step, size_argv, written, file, totalsize, totalwrittent) Se ejecuta cuando se instala archivos .VPK con la función game.install().
    • step: Estado en el que se encuentra el callback:
      • 1: Estado Inicial preparandose en busqueda de archivos peligrosos en el vpk
      • 2: En este estado el vpk se encontró con archivos peligrosos y está en espera de respuesta por parte del usuario.
      • 3: En este estado se prepara para hacer la extracción del vpk.
      • 4: En este estado se prepara para hacer la instalación del vpk en el sistema.
    • size_argv: Es el valor devuelto cuando un vpk se encuentra archivos peligrosos: 1 para Unsafe y 2 para peligrosos.
    • written: bytes escritos hasta el momento.
    • file: Nombre del archivo.
    • totalsize: Tamaño total de descompresion.
    • totalwritten: Datos escritos totales de la descompresion.
  • onScanningFiles(name, uncomp_size, offset) Se ejecuta cuando se escanea archivos .ZIP/.VPK con la función files.scan().
    • name: Nombre del archivo.
    • uncomp_size: Tamaño del archivo sin comprimir en bytes.
    • offset: Es la posición del archivo dentro del .ZIP/.VPK
    • unsafe: Determina si un vpk está marcado como: error o no sé permitio revisar (-1), seguro(0), inseguro (1) o peligroso (2).
  • onExtractFiles(size, written, name, totalsize, totalwritten) Se ejecuta cuando se descomprimen archivos con la función files.extract() y cuando se instala un .VPK con la función game.install().
    • 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.
    • totalsize: Tamaño total de descompresion.
    • totalwritten: Datos escritos totales de la descompresion.
  • onCompressZip(name) Se ejecuta al Comprimir archivos con la función files.makezip().
    • name: Nombre del archivo a comprimir.
  • 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.
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.