Hacking de la ROM
On diciembre 28, 2021 by adminAl haber sido creada por muchos programadores o equipos de programación diferentes, los datos de la ROM pueden ser muy diversos.
Edición hexadecimalEdición
Un editor hexadecimal es una de las herramientas más fundamentales en el repertorio de cualquier hacker de la ROM. Los editores hexadecimales suelen utilizarse para editar texto, y para editar otros datos cuya estructura se conoce (por ejemplo, las propiedades de los objetos), y el hacking de ensamblajes.
La edición de texto es una de las formas más básicas de hacking. Muchos juegos no almacenan su texto en forma ASCII, y debido a esto, se han desarrollado algunos editores hexadecimales especializados, a los que se les puede decir qué valores de bytes corresponden a qué letra(s) del alfabeto, para facilitar la edición de texto; un archivo que define estas relaciones byte=letra se llama archivo «tabla». Otros juegos utilizan técnicas simples de compresión de texto (como la codificación de pares de bytes, también llamada codificación de baldosas duales o DTE, en la que ciertas combinaciones de dos o más letras se codifican como un byte) que un editor hexadecimal adecuadamente equipado puede facilitar la edición.
Un editor hexadecimal es la herramienta de elección para editar cosas como las propiedades de los personajes/artículos, si se conoce la estructura y la ubicación de estos datos y no hay un editor específico para el juego que pueda editar esta información. Algunos intrépidos hackers también realizan la edición de niveles con un editor hexadecimal, pero esto es extremadamente difícil (excepto en los juegos cuyo formato de almacenamiento de niveles se asemeja mucho a cómo se presenta en un editor hexadecimal).
Edición de gráficosEditar
Otra habilidad básica de hacking es el hacking de gráficos, que consiste en cambiar la apariencia de los entornos del juego, los personajes, las fuentes u otras cosas similares. El formato de los datos gráficos varía de una consola a otra, pero la mayoría de las primeras (NES, Super NES, Game Boy, etc.) almacenan los gráficos en mosaicos, que son unidades de datos de 8×8 píxeles, que se disponen en la pantalla para producir el resultado deseado. La edición de estos mosaicos también es posible con un editor hexadecimal, pero generalmente se lleva a cabo con un editor de mosaicos (como Tile Layer o Tile Molester), que puede mostrar los datos de la ROM de forma gráfica, así como encontrar y editar mosaicos.
Los hacks gráficos pueden ir desde simples ediciones (como dar a Luigi un palo de golf, o hacer sprites pixelados para la última generación de Pokemon) hasta «portar» personajes de un juego a otro, pasando por cambios temáticos completos (normalmente con cambios de paleta acompañantes; ver más abajo).
Un hackeo gráfico más sofisticado implica cambiar algo más que los azulejos y los colores, sino también la forma en que los azulejos están dispuestos, o los grupos de azulejos generados, dando más flexibilidad y control sobre la apariencia final. Esto se consigue mediante la edición hexadecimal o una herramienta especializada (ya sea para el juego específico o para un sistema concreto). Un buen ejemplo de hack gráfico es el incompleto Pokémon Torzach, un hack que intentaba añadir toda una nueva generación de Pokémon y fichas al juego. El hack ha sido descontinuado desde entonces, pero todavía sirve como un buen ejemplo de lo que se puede lograr con las herramientas disponibles.
Edición de la paletaEditar
Otra forma común de hacking es el hacking de la paleta, donde los valores de color se modifican para cambiar los colores que un jugador ve en el juego (esto a menudo va de la mano con el hacking de gráficos); los valores de la paleta se almacenan comúnmente en Hex. Esto es bastante fácil para los juegos de NES, cuyos gráficos utilizan un conjunto predefinido de colores entre los que el juego selecciona; el hackeo de la paleta en este caso implica cambiar cuál de esos colores se selecciona. El asunto es algo más complicado con los juegos de Super NES y los de otros sistemas, que almacenan valores de color RGB absolutos. Los editores de paletas suelen ser sencillos y a menudo se encuentran con los editores de niveles, o con los editores gráficos específicos de los juegos.
Edición de nivelesEdición
Una de las formas más populares de hackeo de la ROM, la edición de niveles implica modificar o rediseñar los niveles o mapas de un juego. Esto se hace casi exclusivamente con un editor especialmente diseñado para un juego en particular (llamado editor de niveles). La edición de niveles puede hacerse para hacer el juego más desafiante, para alterar el flujo de la trama del juego o simplemente para dar algo nuevo a un juego antiguo. Combinado con un extenso hackeo de los gráficos, el juego puede tener un aspecto muy diferente.
Edición de datosEditar
Un componente central de muchos hacks (especialmente de los videojuegos de rol) es la edición de datos como las propiedades de los personajes, objetos y enemigos. Esto suele hacerse «a mano» (con un editor hexadecimal) si se conoce la ubicación y estructura de los datos, o con un editor específico del juego que tenga esta funcionalidad. A través de esto, un hacker puede alterar el funcionamiento de las armas, la fuerza de los enemigos o su forma de actuar, etc. Esto puede hacerse para que el juego sea más fácil o más difícil, o para crear nuevos escenarios a los que se enfrente el jugador.
Hacking en ensambladorEditar
La técnica de hacking más poderosa, y posiblemente la más difícil, es editar el código real del juego, un proceso llamado hacking ASM («ASM» significa «ensamblador», en referencia al tipo de lenguaje de programación utilizado para los primeros videojuegos). No hay un patrón establecido para el hacking ASM, ya que el código varía mucho de un juego a otro, pero la mayoría de los hackers ASM expertos utilizan un emulador equipado con un depurador o rastreador incorporado, o ejecutan la ROM a través de un desensamblador, luego analizan el código y lo modifican utilizando un editor hexadecimal o ensamblador de acuerdo a sus necesidades. Aunque es un reto en comparación con los métodos relativamente sencillos mencionados anteriormente, todo es posible con el hackeo de ASM (por supuesto, dentro de los límites del hardware/software de la plataforma de juego), desde alterar la IA del enemigo hasta cambiar la forma en que se generan los gráficos. (Por supuesto, las posibilidades siguen estando limitadas por la capacidad del hacker para comprender y modificar el código existente.)
Si los desarrolladores utilizaron un lenguaje tipado, el hacker puede ser capaz de compilar su propio código para el juego en el mismo lenguaje si tiene acceso a un compilador adecuado. Un ejemplo sería usar C para hackear juegos de Nintendo 64, ya que MIPS-GCC puede compilar código para la Nintendo 64.
Hacking de músicaEditar
Los hacks de música son relativamente raros, debido a la gran variedad de formas en que los juegos almacenan los datos musicales (de ahí la dificultad de localizar y modificar estos datos) y las dificultades para componer nueva música (o portar música de otro juego). Como el cracking de música es muy poco común, muchos hacks no tienen ninguna música portada/compuesta. Sin embargo, el programa SapTapper puede utilizarse para piratear los datos musicales de Game Boy Advance, ya que muchos juegos de esta consola utilizan el motor M4A (también llamado «Sappy Driver») para la música. Se crearon otras utilidades para trabajar con el motor, como Sappy 2006.
Otro caso en el que se utiliza el mismo motor entre los juegos es en la Nintendo 64, en la que la mayoría de los juegos usan el mismo formato; aunque utilizan diferentes bancos de sonido. Se creó una utilidad conocida como N64 Midi Tool para editar las secuencias que utilizan la mayoría de los juegos de Nintendo 64, aunque no cubre los títulos first-party de N64 que utilizan un motor ligeramente diferente, como Super Mario 64.Varios juegos de Mega Drive utilizan un motor de sonido conocido extraoficialmente como «SMPS», que ha sido investigado durante décadas por muchos hackers. A día de hoy, existen varias herramientas para alterar la música de los juegos que utilizan el motor SMPS (los juegos de Sonic the Hedgehog en particular), y muchas de ellas llegaron al Steam Workshop.
Expansión de la ROMEditar
En general, un hacker de la ROM no puede normalmente añadir contenido a un juego, sino simplemente cambiar el contenido existente. Este límite puede ser superado a través de la expansión de la ROM, por lo que el tamaño total de la imagen de la ROM se incrementa, haciendo espacio para más contenido y, a su vez, un juego más grande. La dificultad para hacerlo varía en función del sistema para el que se haya creado el juego. Por ejemplo, ampliar una ROM de NES puede ser difícil o incluso imposible debido al mapeador utilizado por el juego. Por ejemplo, si un mapeador permite 16 bancos de ROM y se utilizan todos, ampliar la ROM es imposible sin convertir el juego a otro mapeador, lo que puede ser fácil o extremadamente difícil. Por otro lado, ampliar un juego de SNES es (relativamente) sencillo. Para utilizar el espacio añadido, hay que modificar o reescribir partes del código del juego (véase la piratería en ensamblador más arriba) para que el juego sepa dónde buscar. Otro tipo de expansión de ROM que es bastante fácil son las ROM de Game Boy Advance. Las ROMs en sí son generalmente pequeñas, pero el espacio de memoria disponible a veces lo supera en múltiplos de hasta 17.
Deja una respuesta