Hola. En este post vamos a ver como programar scripts en Lua para alterar juegos tan míticos como el Legend of Zelda.
En el primer post (0x00) ya hablamos de como se puede montar el tinglado para poder comenzar con estos «trasteos». Concretamente aquí: 56k.es/fanta/fceux-0x00-compilar-la-ultima-version/
Vamos al turrón.
Mostrar en pantalla la posición de Link
Link es el nombre del Heroe. Zelda es la princesa.
Una forma de hacer esto es ejecutar fceux y cargar la rom (el zip). Luego cargar el script lua y mover a link por el escenario.
Tendríamos que ver en pantalla como la posición cambia cuando vamos desplazandonos.
$ wget -q "http://fanta.56k.es/00-Games/03-Nes/Legend_of_Zelda-English.nes" -O Zelda-The_legend_of_Zelda-English.zip
$ touch Zelda-The_legend_of_Zelda-English.lua
while true do
link = {}
link.x = memory.readbyte("0x0070"); -- Link posición x
link.y = memory.readbyte("0x0084"); -- Link posicion y
gui.text(10,10,"x: " .. link.x .. " y: " .. link.y);
-- print("x: " .. link.x .. " y: " .. link.y);
emu.frameadvance();
end
Esto nos permite por ejemplo poder mover a Link de forma automatizada.
Moviendo a Link por zonas en las que no es posible
Podemos cargar un script como este para que se mueva.
while true do
link = {}
link.x = memory.readbyte("0x0070"); -- Link posición x
link.y = memory.readbyte("0x0084"); -- Link posicion y
gui.text(10,10,"x: " .. link.x .. " y: " .. link.y);
memory.writebyte("0x0070",(link.x - 1))
memory.writebyte("0x0084",(link.y + 1))
emu.frameadvance();
end
Es un ejemplo amigo de modo que relaja un poco si no le ves el sentido.
Y eso es por tanto un ejemplo de cosas que podemos hacer con este «emulador».
En futuros fascículos veremos como hacer más cosas y con otros juegos.
Espero que esto le gustase.
Saludos cordiales.