Después de casi 2 semanas sin nada nuevo, hoy traigo una nueva actualización al primer post, que nos deja en la versión 2.3.
Lo relevante de esta actualización incluye cambios menores como retoques al pathfinder de Oro, Plata y Cristal; una nueva función para leer la vida del rival en combate (que esperemos que valga de una vez por todas para solucionar los 1000 y un problemas que dio esta característica hasta ahora) y alguna que otra corrección de bugs de menor importancia.
Ahora bien, el cambio de versión a 2.3 se debe, principalmente, a que esta es la primera versión en incorporar soporte para HackRoms de los juegos ya soportados. Sé que dije que no sería mi prioridad, pero visto el panorama con las sucesivas consolas...
Ahora bien, en un futuro planeo hacer esta característica más intuitiva añadiendo soporte para indicarle al script de que juego base parte el hack en caso de que indique que no se soporta. Sin embargo, por ahora el soporte de hacks solo se puede añadir de forma manual, editando el archivo hacks.lua, en el que a modo de ejemplo se incluye la compatibilidad con el hack Pokémon Crystal Clear en su última versión, la 2.1.2. En el readme está explicado el proceso, pero a continuación añado la explicación traducida.
En relación con el archivo hacks.lua, ten en cuenta que...
{
-- estructura del juego base
["crystal"] = { -- carpeta del juego base
-- estructura del HackROM
[0x8447] = { -- checksum del HackRom (se puede obtener con VBA-RR (file/rom information)
game = "crystal-clear", -- carpeta del script del hack (puede ser la misma que la del juego base)
language = "en" -- carpeta del idioma del hack
}, -- fin de la estructura del hack
-- pega aquí la estructura anterior para añadir más hacks de pokémon cristal
}, -- final de estructura de juego base
-- copia la estructura anterior para añadir compatibilidad para hacks de otros juegos (Rojo, Amarillo, Oro...)
}
Para quien entienda algo de lenguajes de programación, esta estructura será de lo más básico. Para quien no, si tiene alguna duda, puede consultarla por aquí y le ayudaré en lo que pueda.
En cuanto a la compatibilidad de hacks, hay que tener en cuenta que no basta con añadir el juego en cuestión a la lista anterior. Seguramente habrá que crearle su propia carpeta de script basándola en el juego del que parte y modificando lo que sea necesario (se puede observar el ejemplo de Pokémon Crystal Clear).
Algunas notas adicionales:
Como este método utiliza verificación de checksums para reconocer que hack estamos jugando, en el momento en que se utilice una versión del hack distinta a la registrada dejará de funcionar hasta que se añada al archivo el checksum de la misma.
También hay que tener en cuenta que hacks como Pokémon Prism o Brown seguramente no se puedan añadir con este método, ya que los creadores modificaron su cabecera para que tengan ID propio, de modo que el script no tiene forma de reconocerlos como hacks de nada, los reconocerá como juegos independientes sin soporte. No sé si esto tendrá posible solución en un futuro o no...
En cuanto al soporte de los hacks dentro del script, a menos que un hack en concreto sea muy solicitado, no se añadirán al repositorio, si bien cualquiera que extienda el soporte para un hack puede compartir los recursos necesarios.
