TASVideos

Tool-assisted game movies
When human skills are just not enough

ES / Lua Scripting

>> EN | English
>> RU | Русский


Lua scripting es una herramienta extremadamente útil cuando se está realizando un TAS. Aunque se requiere de cierto conocimiento de programación, el usuario tiene el poder sobre cosas como lo que se despliega en la pantalla, entradas y hasta memoria. Las siguientes son algunas aplicaciones comunes, aunque las posibilidades son infinitas:

Snes9x fue el primer emulador modificado para soportar Lua, allá en el 2008. En la actualidad, los siguientes emuladores soportan Lua: FCEU(X), BizHawk, lsnes, Snes9x, Gens, VBA, Final Burn Alpha, PCSX, DeSmuME, PCEjin, VBjin, and JPC-RR.

Para poder integrar Lua, se crearon una cantidad de funciones específicas al emulador, las cuales forman la API de Lua específicas al emulador, habilitando el control del emulador. Sin embargo, uno no está limitado sólo a funciones de Lua específicas al emulador. Cualquiera puede usar cualquier función principal de la API de Lua, incluyendo archivos E/S. Por lo tanto, el emulador puede ser escrito para comunicarse con, digamos, ¡Archivos de texto!

Como correr un script de Lua

Para correr un script de Lua, copia el código y colócalo en un editor de texto. Nombra al archivo como "archivo.lua" o cualquier cosa que termine con extensión "lua". Cuando salvas desde Bloc de Notas (Notepad) en Windows, necesitas poner comillas alrededor del nombre "archivo.lua".

Después ve al emulador y corre el archivo Lua. Algunos emuladores tienen una ventana de script de Lua; dicho script comenzará automáticamente cuando lo cargues.

Lo básico

Para familiarizarse con Lua, consulta el manual de Lua 5.1 (inglés). Cubre cómo funciona el lenguaje Lua y la API principal de Lua.

En el emulador, es deseable tener un bucle de ejecución principal. El bucle de ejecución principal puede tomar una de las siguientes dos formas (-- significa que el resto de la línea es un comentario):

  --Insertar declaraciones aquí

  while true do
    --Insertar declaraciones aquí
    emu.frameadvance()
  end

y

  --Insertar declaraciones aquí
  function fn()
    --Insertar declaraciones aquí
  end
  gui.register(fn)
La segunda forma es técnicamente una función que es llamada cada vez que hay una actualización que mostrar (que se supone que pasa en cada cuadro, pero también es llamada en algunos emuladores[1] mientras la pantalla está en pausa). La segunda forma es necesaria para el DeSmuME ya que la primera forma funciona de manera diferente a la mayoría de los otros emuladores (consulte este tópico) para más información.

Por hacer

Usando MHS para emuladores que no cuentan con Lua embebido

Software de hacking de memoria de L. Spiro

Más información

Enlaces del sitio

Enlaces externos

Subpáginas

>> ES / Lua Scripting / Table Keys

[1]: Esto es conocido que ocurre en FCEUX, PCSX, and DeSmuME.



Combined RSS Feed
ES/LuaScripting last edited by samurai goroh on 2017-09-27 22:23:00
Page info and history | Latest diff | List referrers | View Source