Romhacking básico – Tablas thingy
Bienvenidos, en este artículo se intentará explicar uno de los conceptos básicos del romhacking, las tablas thingy.
¿Qué es una tabla thingy?
Es un archivo de texto con extensión «.tbl» que sirve para indicarle a un programa cuál es la equivalencia entre el hexadecimal de una rom y las letras de un alfabeto, en nuestro caso el latino. Toma su nombre del programa Thingy.
¿Cómo hacer una tabla thingy para un juego de NES?
Hacer una tabla en sí es sencillo, no hay más que crear un archivo de texto y renombrarlo con la susodicha extensión «.tbl».
Tabla creada, ¿cómo la relleno?
Para rellenar una tabla de un juego de NES primero tendremos que averiguar la equivalencia hexadecimal de cada letra. En mi ejemplo usaré mi proyecto, el primer Hércules de NES y el emulador Mesen. Una vez abierto el juego, no hay más que avanzar hasta llegar a una parte que muestre texto e ir al visor de la PPU (unidad de procesamiento de imagen) que se encuentra en la pestaña «Debug» o pulsar las teclas «Control+P». Dentro del visor, nos posicionaremos en la pestaña que nos mostrará el contenido del chip CHR, el «CHR Viewer». Si tenemos suerte, como en nuestro ejemplo, podremos ver abajo la fuente y si clicamos en una letra o número, el apartado «Tile index» nos dirá su equivalencia hexadecimal en el juego. Después de esto, no hay más que abrir la tabla que hemos creado con anterioridad y empezar a rellenar de la siguiente forma: Código hexadecimal = letra latina Si tomamos como ejemplo la letra «a» vista en la imagen anterior nos quedaría: «0A=a», luego la «b» sería «0B=b» y así sucesivamente. Una vez hecho, grabaremos el archivo y abriremos un editor hexadecimal como Windhex para comprobar el resultado. Seleccionaremos la rom de esta forma: Y la tabla en la siguiente opción: Os quedará algo así: Obviamente, la rom es bastante grande, así que el texto no os saldrá al principio. Para encontrarlo tendréis que ir buscando por el archivo hasta verlo. Ahora, si os fijáis, no tenemos los espacios… Es cuestión de ver el texto y fijarse en lo que falta. En este caso se puede ver que «FF» equivale a un espacio. Estos se escriben en la tabla de la misma forma que el resto y pulsando la barra espaciadora. Para lo que nos incumbe en este caso, que es ver el texto, ya habríamos terminado, pero si queremos tener una tabla completa tendremos que rellenar un par de cosas más… Una tabla, si la quieres usar para otras algo más avanzado como manipular punteros, no estará terminada si no añades como mínimo los dos siguientes códigos de control: *FD=[LINE] —> Este código representa el final de una línea. Evitará que tu texto se salga de la caja de diálogo. En mi caso fue FD. No olvides añadirle el * delante. /FE=[END] —> Este código representa el final de una cadena. Tienes que mirar el texto y fijarte cuando termina para saber cuál es. En mi caso fue FE. No olvides añadirle la / delante. Otros códigos: Como has visto, todo se trata de ir experimentando con la rom y deducir qué puede estar haciendo el hexadecimal del juego. Mientras más códigos sepas, mejor, pero no son necesarios en general, solo te evitarán posibles problemas. En mi caso, averigüé los siguientes del Hércules: F99700=[ENEMY] —> Este código llama a un enemigo. F99800=[ITEM] —> Este código llama a un objeto. F6=[WAIT] —> Este código indica una pausa en la caja de diálogo. Una vez terminéis, el final de la tabla os quedará así: Y eso es todo, las tablas son algo muy básico que no solo se aplica a NES así que saberlo os será de utilidad. Si os interesa el mundo del romhacking, empezad con un juego sencillo de esta consola e id practicando. ¡Nos vemos!