De Whack a Hack Wiki!

Revisión del 11:25 17 may 2019 de PkPower (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Pokémon Blue Legend utiliza un parche para su distribución

Un parche es un archivo binario que contiene las diferencias que le hemos hecho a una ROM, y que están codificadas de tal forma que se pueden recrear las modificaciones a partir de este archivo y la ROM original. Los ROM Hackers distribuyen los juegos de esta forma para evitar problemas de propiedad intelectual. Además, el parche tiene una ventaja adicional, ya que pesa muchísimo menos que una ROM completa, por lo que es más fácil de transmitir.

Otra forma existente en consolas más potentes como Wii, es una aplicación que permite parchear el juego en tiempo real, permitiendo jugar hacks como Newer Super Mario Bros o circuitos personalizados de Mario Kart sin piratear la consola, gracias a herramientas como Riivolution. La propia Nintendo hizo algo similar para subsanar un bug en Wii Sports Resort.

Tipos de parche

Existe una gran variedad de parches y métodos para crear o aplicar parches. dependiendo del sistema operativo que use tu ordenador o de lo que queramos hacer. Sin embargo, a diferencia de muchas otras veces en las que tenemos que elegir entre distintos formatos, en este caso se trata de algo más allá de tener que elegir entre diferencias superficiales. Cada tipo de parche que se muestra a continuación está representado con el mejor ejemplo o implementación existente hasta la fecha.

IPS

Pokémon ShinyGold se distribuía a través de un parche IPS

Durante mucho tiempo fue el método de parcheado por excelencia en los hacks de Game Boy y Game Boy Advance. Es un formato realmente simple (el núcleo del archivo contiene una lista de parches a aplicar, consistentes en la localización y longitud del segmento a reemplazar y los valores que los sustituirán), pese a que hay ciertas versiones customizadas que no están bien soportadas. El formato IPS no soporta cambios en localizaciones de datos, lo que no supone un problema para los formatos antiguos, pero sí para los más nuevos (los archivos de imagen óptica y las ROMs posteriores a GBA), lo que supone a día de hoy una gran debilidad. También está limitado a archivos de menos de 16 MB, lo que de nuevo no supone un problema para ROMs de GBA estándar, pero sí para las de consolas superiores o ROMs de GBA ampliadas a 32 MB.

Lunar IPS es la herramienta más usada por los ROM Hackers que necesiten parchear en este formato.

UPS

Pokémon Giratina Legend se distribuye en forma de parche UPS

Hecho como un sucesor directo del formato IPS, ha sido usado con bastante éxito en consolas antiguas, así como en posteriores a GBA, pero llegó un poco tarde al scene, y los métodos que vamos a ver a continuación se llevaron todo el protagonismo.

NUPS es la herramienta más conocida compatible con el formato UPS, junto a otras como Upset o Tsukuyomi UPS.

PPF

Creado originalmente para parchear juegos de PS1 (siendo PlayStation Patching Format su nombre completo), ha experimentado varias revisiones y a pesar de que muchas de estas puedan ser arriesgadas, algunas se han implementado en ISOs de Wii con notable éxito. Los límites de tamaño de ROM no son un problema, en cuanto a que no se conoce dónde está el límite de tamaño. PPF-O-Matic es una magnifica herramienta de parcheado que cuenta con GUI (interfaz gráfica), mientras que el PPF original proporciona una gran cobertura multiplataforma y una alternativa importante a los formatos más populares.

Xdelta y BSDiff

Pokémon Light Platinum DS emplea un parche Xdelta para su distribución

Los dos en general son parches para archivos genéricos (incluso muchas veces son considerados como “formatos rivales”) han encontrado su campo de aplicación en el parcheado de ROMs de NDS y algunas consolas más nuevas. Los ROM hackers son más propensos a utilizar Xdelta, ya que se tiende a ver BSDiff como un programa de investigación en el scene. Las relocalizaciones están muy bien soportadas (a pesar de que puedan no ser perfectas) y los límites en el tamaño de la ROM no son un problema ni parece que lo vaya a ser en un futuro cercano (aunque algunas implementaciones de BSDiff tienen preferencia por un tamaño modesto). Cuenta con soporte para comprobación de archivos originales y hashing. La versión actual de Xdelta es la que más se recomienda usar para parchear y crear parches, si bien hay gente que recomienda crear parches con versiones más antiguas, con tal de evitar incompatibilidades con usuarios que siguen usando versiones antiguas.

Ninja

Un antiguo candidato para sustituir a IPS y que cayó en desgracia por varios motivos. Varios parches usan este formato, y en cierto sentido, funciona bastante bien.

PAR2

No es un método de parcheado per se, sino más bien una utilidad para detectar corrupción de archivos y recuperar información. En la práctica, los datos modificados (nuestro parche) no son tan diferentes a los datos corruptos en lo que a ellos respecta, por lo que puede parchear archivos si bien tiene dificultades para el desplazamiento de datos. Aun mejor todavía, puedes asegurarte de que la ROM original se transforme exactamente en lo que necesitamos debido a la redundancia que existe en este formato, lo que será de gran utilidad cuando vemos pulular muchos parches dañados o modificados por Internet (los cabezales de las ROMs de SNES, por ejemplo).

Originales

Existen otros muchos formatos hechos para otras cosas (Jump Super Stars, poniendo un ejemplo) y otros para casos mucho más específicos (Fire-flower es un formato de parcheado utilizado para algunos hacks gráficos). Alguna gente decide desempaquetar los archivos de su ROM o ISO, parchearlos individualmente y montar una nueva ROM o ISO a partir de ellos. Esto propició, sin duda alguna, los parches más pequeños que existen, normalmente se evita el problema del desplazamiento de datos (queda a cargo del propio ROM Hacker), maximiza la compatibilidad (por ejemplo, un mismo parche de este tipo es aplicable tanto a la ROM de Pokémon Diamante como a la de Pokémon Perla, mientras que cualquier otro formato nos obligaría a crear dos parches distintos) y permite una customización enorme a la hora de aplicar el parche. Un ejemplo de esto último: imaginémonos un parche de traducción, en el que se traduce tanto texto en sí como gráficos con texto (texturas, sprites…). Muchas veces los gráficos traducidos no tienen tanta calidad como los originales, de modo que nosotros, con este tipo de parche, podríamos decidir que no se modifique la parte gráfica pero sí lo demás. Los principales defectos son que es muy específico para la plataforma que vayamos a usar, y requeriría hacer múltiples archivos batch o instalar runtimes. Ayuda también el hecho de que puedan comprimirse o encriptarse los archivos de este tipo de parcheo, ya que con un parche técnicamente estamos redistribuyendo código que no es nuestro.

Tutoriales

¿Cómo parchear? (UPS)