- Rom hacking
-
Se entiende por ROM hacking o ROM hack, al proceso de alteración de la imagen o volcado del soporte original de un videojuego o programa (por ejemplo, la memoria ROM de un cartucho o circuito integrado, o la superficie de un disco óptico --CD-ROM, DVD-ROM o BR-ROM--, generalmente estructurada según el sistema de archivos estándar ISO 9660). Dicho proceso puede tener por objetivos tanto la corrección de fallas o modificación, a veces con fines críticos, creativos o satíricos, de ciertos detalles o aspectos del juego, la traducción, o incluso la creación de nuevos juegos basándose en la mecánica, estructura y el formato de otro original; siendo quizá la traducción la tarea más frecuente, valorada y de mayor aplicación práctica.
El término proviene de la combinación de dos conceptos: ROM y Hacking. La ROM es un acrónimo de la expresión inglesa read only memory, traducida como memoria de sólo lectura, que, por lo general se refiere a los chips no modificables, programados y ensamblados de fábrica en la mayoría de circuitos integrados y cartuchos insertables en ranuras de expansión de computadoras. Estos, además de controladores o drivers, contienen y permiten la ejecución de juegos y programas de aplicación en ordenadores personales antiguos, o microordenadores, y en muchas videoconsolas; en el mundo de la emulación y el ROM hacking, el término se aplica comúnmente, por extensión, a las lecturas o volcados (en inglés dumping) que los aficionados a estos juegos y plataformas antiguas han ido realizando, con ayuda del instrumental adecuado, a los soportes de memoria secundaria o almacenamiento de datos, tales como los discos duros, de los ordenadores modernos, en forma de archivos o imágenes ROM. El hacking, hack, o hackeo, se refiere al arte informático de construir y solucionar problemas que atenten contra la eficacia o vulnerabilidad de un sistema o aplicación o limiten su capacidad, así como a las pequeñas modificaciones hechas a éstos para mejorar, modificar o ampliar su funcionamiento. En otras palabras, ROM hacking es el arte de modificar y perfeccionar el funcionamiento de imágenes ROM, o de cualquier soporte o formato cuyo contenido sea el de un programa o un juego, como la imagen ISO de un disco óptico o CD/DVD-ROM, la imagen de cinta secuencial (.TAP, .TZX...) de un casete o cinta magnética, la imagen de disco (.IMG ó .DSK) de un disco flexible o el propio archivo ejecutable (.EXE, .COM, .bin o .SCR) o módulo (.DAT, .PAK, etc.) de un programa, directamente desde su código en bruto, ya compilado, en el producto comercial final, sin disponer del código fuente; o lo que es lo mismo, desde su archivo binario o código máquina.
Contenido
Herramientas necesarias
El individuo que se dedica a realizar tal labor, ya sea de forma sistemática, u ocasional, como aficionado, se denomina Rom hacker.
Para poder desempeñar su labor de una manera eficaz y precisa, el ROM hacker suele acompañarse de herramientas varias:
- Un editor hexadecimal, que da acceso a todos los datos de la ROM o cualquier archivo a partir de sus bytes, convenientemente señalizados mediante sus códigos ASCII, generalmente en números hexadecimales (por ser los más económicos desde el punto de vista de simetría, espacio y representación, capaz de representar 8 bits, 1 byte (256 caracteres posibles), utilizando sólo dos digitos, "FF"). Algunos de los editores más conocidos son el thingy (y su versión gráfica thingy32), o el hex editor.
- Un editor de tiles o de sprites, para poder editar ciertos gráficos necesarios, como la tipografía y símbolos de texto especiales, en las traducciones. Esto es fundamental para incluir, por ejemplo, la eñe, acentos, o ce con cedilla, en lenguas como el castellano, el portugués, y otras lenguas romances; los umlaut, en las lenguas germánicas; o sistemas gráficos alternativos, tanto silábicos ó ideográficos, en idiomas como el japonés, el koreano o el chino, o alfabéticos, en idiomas como el griego, el ruso (y otras lenguas eslavas) o el árabe.
- Un buscador de cadenas de texto, que permita localizar la posición exacta de los textos, así como deducir su tabla de caracteres o códigos, en caso de que la codificación del texto no sea estándar (a diferencia de como ocurre en los IBM PC compatibles y en muchas computadoras con el sistema código ASCII), mediante la búsqueda de palabras que aparecen durante el programa o el juego, en modo búsqueda relativa, restando las posiciones de cada letra en el alfabeto en función de su distancia a partir de la letra "a". Esta función suele ser incluida en muchos de los editores hexadecimales especializados modernos.
- Opcionalmente, una herramienta depuradora, que permita la interpretación y ensamblaje, mediante instrucciones de ensamblador, del código de máquina del juego, específico de la arquitectura de la computadora madre. Esta función puede realizarse manualmente, manipulando los bytes del código mediante el propio editor hexadecimal, si se dispone de la conveniente tabla de códigos e instrucciones de ensamblador del procesador de la computadora madre (a cada código hexadecimal de 1 o más bytes, corresponde una instrucción específica del procesador de la computadora madre, con sus parámetros). Esta técnica manual fue la empleada originalmente, para la programación de los primeros ordenadores, cuando aún no se disponía de las herramientas ensambladoras correspondientes. La herramienta depuradora permite, sin embargo, realizar un seguimiento, instrucción por instrucción, en orden, de cualquier parte del código del programa o juego, y observar el comportamiento efectuado.
- Herramientas especializadas, preprogramadas y compiladas por otros Rom hackers, como herramientas específicas de ciertos juegos, para editar niveles, objetos, características de enemigos o personajes, etc. Algo muy recurrente en juegos de rol o estrategia o, en el caso de los niveles, en los plataformas.
- Finalmente, un buen programa emulador del sistema específico del formato al que pertenece el programa o juego, para poder comprobar los cambios efectuados sobre el mismo, y apuntar posibles errores o despistes que hayan podido escaparse, para su corrección futura.
Clasificación por videojuegos
En realidad muchas veces la profundidad del nivel de hacking se diferencia por la Rom base utilizada, ya que éstas difieren enormemente en la capacidad de personalización del juego. Muy popular es el Poke Hacking, edición de ROMs de pokémon, cuya capacidad de admitir nuevos datos es enorme.
Después, el hackeo de cada rom puede ser un mundo: Dependiendo de la empresa que lo haga, lo distribuya... Tendrán en general diferente compresión, archivos, etc.
Suele usarse casi siempre los mismos métodos, explicados más arriba en las herramientas básicas de un romhacker, para hackear rom. Aparte, cada Aparato/Consola suele tener diferentes tipos de compresión, lo que hace más difícil saber saber en profundidad sobre todas ellas.
Enlaces externos
Documentación, herramientas, tutoriales y hacks, se pueden encontrar en estas páginas:
Wikis
- Data Crystal Wiki, la wiki dedicada al ROM hacking (en inglés).
- RHWiki, una wiki alemana dedicada al ROM hacking (en alemán).
Documentación
- Whack a Hack - Sobre rom hacking en español
- SpriHackNet - Comunidad sobre ROM Hacking general en español
- Dragon Eye Studios
- Zophar's Domain - sitio clave de emulación, con herramientas, documentos y ROM hacks
- Acmlm's ROM Hack Domain - página sobre hacking. New acmlm.org Hack Domain (unofficial)
- I-Mockery's ROM Hack reviews
- ROMhacking.net - repositorio de hacks, herramientas, documentos y ajustes.
- Hacking CulT
- The Mushroom Kingdom con una sección de hacking de Mario
- Panicus - una colección de páginas de ROM hackers
Wikimedia foundation. 2010.