Piratería de ROM
Hacking de ROM es el proceso de modificar una imagen ROM o un archivo ROM de un videojuego para alterar los gráficos, el diálogo, los niveles, la jugabilidad y/u otros elementos del juego. Esto lo suelen hacer aficionados a los videojuegos con inclinaciones técnicas para mejorar un viejo juego importante, como salida creativa o para crear juegos nuevos y no oficiales utilizando el motor del juego antiguo. Los ROM hacks rediseñan un juego para lograr un juego nuevo y divertido manteniendo la mayoría, si no todos, los elementos iguales o desbloquean/reimplementan funciones que existen en el código del juego pero que no se utilizan en el juego.
El hackeo de ROM generalmente se logra mediante el uso de un editor hexadecimal (un programa para editar datos no textuales) y varias herramientas especializadas, como editores de mosaicos y herramientas específicas del juego que generalmente se usan para editar niveles, elementos y el aunque ocasionalmente se utilizan herramientas más avanzadas como ensambladores y depuradores. Una vez listos, suelen distribuirse en Internet para que otros puedan jugar en un emulador o consola de juegos.
La traducción de fans (conocida como "piratería de traducción" dentro de la comunidad de piratería de ROM) es un tipo de piratería de ROM; También existen trucos anticensura para restaurar un juego a su estado original, lo que a menudo se ve en juegos más antiguos que fueron importados, como lo hacen los editores. las políticas de contenido para videojuegos (en particular, las de Nintendo) eran mucho más estrictas en Estados Unidos que en Japón o Europa; así como aleatorizadores para ciertos juegos que barajan la ubicación de las entidades. Aunque gran parte del método se aplica a ambos tipos de piratería, este artículo se centra en la "piratería creativa" como editar niveles de juegos.
Comunidades
La mayoría de los grupos de hackers ofrecen espacio web para alojar hacks y capturas de pantalla (a veces solo alojan hacks de los miembros del grupo y alojan casi cualquier hack), un tablero de mensajes y, a menudo, tienen un canal IRC.
Métodos
Al haber sido creados por muchos programadores o equipos de programación diferentes, los datos ROM pueden ser muy diversos.
Edición hexadecimal
Un editor hexadecimal es una de las herramientas más fundamentales en el repertorio de cualquier hacker de ROM. Los editores hexadecimales se utilizan generalmente para editar texto y para editar otros datos cuya estructura se conoce (por ejemplo, propiedades de elementos) y para piratear ensamblajes.
Editar texto es una de las formas más básicas de piratería. Muchos juegos no almacenan su texto en formato ASCII y, debido a esto, se han desarrollado algunos editores hexadecimales especializados, que pueden indicar 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 denomina "tabla" archivo. 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 mosaico dual 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 preferida para editar cosas como propiedades de personajes/elementos si se conoce la estructura y ubicación de estos datos y no existe un editor específico del juego que pueda editar esta información. Algunos hackers intrépidos también realizan edición de niveles con un editor hexadecimal, pero esto es extremadamente difícil (excepto en juegos cuyo formato de almacenamiento de niveles se parece mucho a cómo se presenta en un editor hexadecimal).
Edición de gráficos
Otra habilidad básica de piratería es la piratería de gráficos, que consiste en cambiar la apariencia de los entornos, personajes, fuentes u otras cosas similares del juego. 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 gráficos en mosaicos, que son unidades de datos de 8x8 píxeles, que se organizan en la pantalla para producir el resultado deseado. También es posible editar estos mosaicos con un editor hexadecimal, pero generalmente se logra con un editor de mosaicos (como Tile Layer o Tile Molester), que puede mostrar gráficamente los datos ROM, además de buscar y editar mosaicos.
Los trucos gráficos pueden variar desde ediciones simples (como darle a Mario un afro o a Luigi un palo de golf) hasta "portar" imágenes. personajes de un juego a otro (como la creación de sprites pixelados de "estilo retro" de Pokémon de generaciones posteriores para su uso en juegos de Pokémon de Generación IV a IV), hasta cambios temáticos completos (normalmente acompañados de cambios de paleta; ver más abajo).
La piratería de gráficos más sofisticada implica cambiar más que solo mosaicos y colores, sino también cómo se organizan los mosaicos o se generan grupos de mosaicos, lo que brinda más flexibilidad y control sobre la apariencia final. Esto se logra mediante la edición hexadecimal o una herramienta especializada (ya sea para un juego específico o un sistema específico). Ejemplos de hacks gráficos incluyen el incompleto Pokémon Torzach, un hack de Pokémon FireRed que intentó agregar una generación completamente nueva de Pokémon y mosaicos al juego, y Super Mario Land 2 DX: 6 Golden. Coins, una versión a todo color del juego original que agregó, entre otras cosas, soporte a todo color (el juego original era solo en escala de grises), así como soluciones a los problemas de parpadeo de la pantalla que estaban presentes en el juego original.
Edición de paleta
Otra forma común de piratería es la piratería de 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 la piratería de gráficos); Los valores de la paleta se almacenan comúnmente en hexadecimal. Esto es bastante fácil para los juegos de NES, cuyos gráficos utilizan un conjunto predefinido de colores entre los que selecciona el juego (utilizando una paleta de colores basada en YIQ); En este caso, piratear la paleta implica cambiar cuál de esos colores se selecciona. La cuestión es un poco más complicada con los juegos de Super NES y Sega Mega Drive/Genesis, así como con los juegos para otros sistemas, que almacenan valores de color RGB absolutos. Los editores de paleta suelen ser simples y, a menudo, vienen con editores de niveles o editores de gráficos específicos de juegos.
Edición de niveles
La edición de niveles, una de las formas más populares de pirateo de ROM, 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). Se pueden realizar ediciones de niveles para hacer que el juego sea más desafiante, alterar el flujo de la trama del juego o simplemente para darle algo nuevo a un juego antiguo. Combinado con una extensa piratería de gráficos, el juego puede adquirir una apariencia y sensación muy diferentes.
Edición de datos
Un componente central de muchos hacks (especialmente de videojuegos de rol) es la edición de datos como personajes, elementos y propiedades del enemigo. Por lo general, esto se hace "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 cómo funcionan las armas, qué tan fuertes son los enemigos o cómo actúan, etc. Esto se puede hacer para hacer el juego más fácil o más difícil o para crear nuevos escenarios que el jugador debe enfrentar.
Hacking de ensamblaje
La técnica de piratería más poderosa, y posiblemente la más difícil, es editar el código real del juego, un proceso llamado piratería ASM ("ASM" significa 34;ensamblado", en referencia al lenguaje de programación de bajo nivel que ejecuta la CPU). No existe un patrón establecido para el hackeo de ASM, ya que el código varía mucho de un juego a otro, pero los hackers de ASM más hábiles usan un emulador equipado con un depurador o rastreador incorporado, o ejecutan la ROM a través de un desensamblador y luego analizan el código. y modificarlo mediante un editor hexadecimal o ensamblador según sus necesidades. Si bien es bastante desafiante en comparación con los métodos relativamente simples enumerados anteriormente, cualquier cosa es posible con el hackeo ASM (por supuesto, dentro de los límites del hardware/software de la plataforma de juego), desde alterar la IA enemiga hasta cambiar cómo se generan los gráficos. (Por supuesto, las posibilidades todavía están limitadas por la capacidad del hacker para comprender y modificar el código existente).
Si los desarrolladores utilizaron un lenguaje escrito, el hacker puede compilar su 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 Nintendo 64.
Hacking de música
Los hacks de música son relativamente raros en la mayoría de los hacks, debido a la amplia variedad de formas en que los juegos almacenan datos musicales (de ahí la dificultad para localizar y modificar estos datos), así como a las dificultades para componer música nueva (o transferir música de otro juego).). Como el cracking de música es muy poco común, muchos hacks no tienen música portada/compuesta añadida. Se pueden encontrar excepciones a esta regla en los hacks más recientes de Super Mario World, donde las músicas personalizadas pueden tener nuevos instrumentos, no encontrado en el juego original. Otros juegos que tienen el hackeo de música como parte de sus comunidades de hackeo e investigación son los juegos Mega Man de NES, Final Fantasy VI y Mega Drive (Genesis) Sonic. los juegos del erizo.
Como muchos juegos de Game Boy Advance utilizan el motor M4A (también llamado "Sappy Driver") para la música, el programa SapTapper se puede utilizar para piratear datos musicales de Game Boy Advance. Se crearon varias otras utilidades para trabajar con el motor, como Sappy 2006.
Otro ejemplo del uso del mismo motor entre juegos es en Nintendo 64, donde la mayoría de los juegos usan el mismo formato; sin embargo, utilizan diferentes bancos de sonidos. Se creó una utilidad conocida como N64 Midi Tool para editar las secuencias que usan la mayoría de los juegos de Nintendo 64, aunque no cubre los títulos propios de N64 que usan un motor ligeramente diferente, como Super Mario 64.
Varios juegos de Sega Mega Drive/Genesis utilizan un motor de sonido conocido extraoficialmente como "SMPS", que se ofrecía en versiones basadas en 68k y Z80. Como motor de sonido predominante utilizado en una variedad de juegos para el sistema desarrollados en Japón, muchos piratas informáticos han investigado este motor de sonido durante décadas. A día de hoy, existen varias herramientas para alterar la música de los juegos que utilizan el motor SMPS (sobre todo los juegos de Sonic the Hedgehog en particular), y muchas de ellas llegaron a Steam Workshop.
Expansión de ROM
En términos generales, un hacker de ROM normalmente no puede añadir contenido a un juego, sino simplemente cambiar el contenido existente. Este límite se puede superar mediante la expansión de ROM, mediante la cual se aumenta el tamaño total de la imagen ROM, dejando espacio para más contenido y, a su vez, un juego más grande. La dificultad para hacer esto varía según el sistema para el que se creó el juego. Por ejemplo, expandir una ROM de NES puede resultar difícil o incluso imposible debido al mapeador utilizado por el juego. Por ejemplo, si un asignador permite 16 bancos de ROM y se utilizan todos, es imposible ampliar aún más la ROM sin convertir de alguna manera el juego a otro asignador, lo que podría ser fácil o extremadamente difícil. Por otro lado, expandir un juego de SNES es (relativamente) sencillo. Para utilizar el espacio añadido, es necesario modificar o reescribir partes del código del juego (consulte Hackeo de ensamblajes 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 ROM en sí son generalmente pequeñas, pero el espacio de memoria disponible a veces lo supera en múltiplos de hasta 17.
Distribución
Una vez que se completa un hack (o una versión incompleta se considera adecuada para un lanzamiento provisional), se publica en Internet para que otros puedan jugar. La forma generalmente aceptada de hacerlo es mediante la creación de un parche no oficial (en formato IPS u otros) que se pueda aplicar a la ROM no modificada. Esto, y normalmente algún tipo de documentación, se guarda en un archivo y se carga en algún lugar. IPS es un formato para registrar las diferencias entre dos archivos binarios (en este caso, entre las ROM no modificadas y las pirateadas) y es adecuado para hacks de rom. IPS todavía se utiliza hoy en día para parches pequeños; sin embargo, a medida que las ROM se hicieron más grandes, este formato se volvió inútil, lo que llevó a la creación de bastantes formatos de archivo, como NINJA y PPF (también conocido como "Formato de parche de PlayStation"). PPF todavía se utiliza hoy en día, particularmente para parchear archivos grandes, como imágenes de CD ISO y juegos de Nintendo 64. La comunidad de hackers de ROM también ha desarrollado un nuevo formato de parche, UPS, diseñado para ser el sucesor de IPS y PPF. Un hacker dedicado a la ROM de Game Boy Advance también ha desarrollado un formato de parcheo más reciente, el sistema de parcheo APS. El sistema APS ahorra más espacio, es reversible y más rápido que su predecesor.
El propósito de distribuir un hack en forma de parche es evitar los aspectos legales de distribuir imágenes ROM completas; el parche registra sólo lo que ha cambiado en la ROM, por lo que su distribución no suele distribuir partes del juego original. Un parche también suele ser drásticamente más pequeño que la imagen ROM completa (una ROM de NES puede ejecutarse desde 8 KB a 2 MB; una ROM de Super NES puede ejecutarse desde 256 KB a 6 MB; y las ROM de Mega Drive/Genesis pueden ejecutarse desde 512 KB). a 4 MB). Además, dado que los parches normalmente sólo contenían cambios de código realizados por el usuario y no código protegido por derechos de autor, no era ilegal distribuir uno.
En un novedoso ejemplo de distribución legal, Sega lanzó un centro virtual basado en Steam para su colección anterior de juegos Mega Drive/Genesis, titulado Sega Mega Drive Classics Hub. El Hub, además de permitir a los jugadores jugar versiones emuladas de estos juegos antiguos, aprovecha el soporte de Steam para contenido creado por usuarios a través de Steam Workshop, permitiendo oficialmente la distribución de hacks de ROM de cualquier de los juegos ofrecidos.
Uso
Las ROM parcheadas a menudo se reproducen en emuladores; sin embargo, es posible reproducir ROM parcheadas en el hardware original. El cartucho de destino podría ser el cartucho original del que se extrajo la ROM inicial sin parches (lo que implica reemplazar el chip ROM original por uno nuevo), u otro cartucho compatible del mismo tipo, como los cartuchos flash. Esto es particularmente popular para traducciones de fans, juegos caseros, prototipos, juegos para los cuales nunca se produjeron cartuchos ROM o juegos que requieren sincronización exacta u otros elementos del hardware original que no están disponibles en emuladores.
Sistemas y juegos
La mayor parte del hackeo de ROM se realiza en juegos de NES y SNES (incluidos hasta cierto punto los juegos de Sega Mega Drive/Genesis), ya que dichos juegos son pequeños y simples en comparación con los juegos de consolas más avanzadas como Nintendo 64 o Nintendo DS.. Los juegos para Game Boy, Game Boy Color y Game Boy Advance también son populares para hackear, así como los juegos para PlayStation, en menor medida. Sin embargo, los juegos destinados a consolas más recientes no están exentos de piratería y, a medida que las computadoras se han vuelto más rápidas con el tiempo y se han escrito más programas y utilidades, han surgido más piraterías de PlayStation, Nintendo 64 y Nintendo DS.
De estos, los juegos populares para jugar son juegos populares para hackear; Se han publicado muchos hacks de juegos de las series Sonic the Hedgehog, Mario (serie) (incluido Mario Bros., Super Mario Bros., Super Mario Bros. 2, Super Mario Bros. 3, Super Mario Land, Super Mario Land 2: 6 Golden Coins, Super Mario 64 y Super Mario World), series Mario Kart (en particular Super Mario Kart, Mario Kart Wii, Mario Kart 7 y Mario Kart DS), Pokémon series, Chip's Challenge, Castlevania, Final Fantasy, The Legend of Zelda, juegos de la serie Mega Man, la serie Fire Emblem, EarthBound, Super Metroid y muchas otras.
Un juego de arcade pirateado notable fue Street Fighter II: Rainbow Edition, que presentaba una mayor velocidad de juego y nuevos movimientos especiales. El éxito de este juego llevó a Capcom a lanzar Street Fighter II: Hyper Fighting como respuesta oficial.
La revistaYour Sinclair publicó una columna mensual llamada "Program Pitstop". Esto se centró principalmente en trucos para juegos, pero también incluía una impresora de mapas de niveles para el Gauntlet original, así como un editor de niveles completo para el mismo juego.