ES / Lua Scripting
>>
EN | English>>
DE | Deutsch>>
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:
- Mostrar información útil en la pantalla.
- Eliminar la repetición tediosa.
- Crear circunstancias específicas para pruebas.
- Resolver por medio de la fuerza bruta.
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
- Por cubrir
- joypad.set
- savestate.create , savestate.load , savestate.save
- FCEU.pause
- FCEU.speedmode
- io.write , io.output
Usando MHS para emuladores que no cuentan con Lua embebido
Más información
Enlaces del sitio
Enlaces externos
Subpáginas
ES/LuaScripting last edited by
samurai goroh on 2017-09-27 22:23:00
Page info and history | Latest diff | List referrers | View Source