[ARC] Double Dragon II: Arreglo de los botones de ataque (PARCHE)

Imagen

Llevaba tiempo con una espina clavada con el Double Dragon II de recreativa, y por fin está resuelta. Dejo aquí la versión 1.1 del parche y la explicación.

El problema
En la placa original de Technōs los dos botones de ataque no son «puño» y «patada». Son direccionales: uno golpea siempre hacia la izquierda de la pantalla y el otro siempre hacia la derecha.
Como Billy se gira, eso significa que el botón que era el puño pasa a ser la coz (le quitaron la patada normal hacia el frente y la convirtieron en una coz) en cuanto cambias de lado. Y al revés. Medido en la ROM original:

ORIGINAL
mirando DERECHA    Fire1 = coz     Fire3 = puño
mirando IZQUIERDA  Fire1 = puño    Fire3 = coz


En 1988, en Technōs Japan se pusieron especialmente creativos en cuanto a la jugabilidad del juego, y hay a quien le parece parte de su encanto. Pero si vienes de cualquier beat’em up posterior, tu cabeza espera que un botón sea siempre el mismo golpe, y en la práctica acabas dando patadas cuando querías dar puñetazos.

Imagen Imagen Imagen

Lo que hace el parche

[spoiler]Rehace la gestión de la entrada para que cada botón sea siempre el mismo movimiento, mires hacia donde mires, corrigiendo además el mapeo inicial y la lógica de objetos:

Botón 1  =  puño
Botón 2  =  salto  (sin tocar)
Botón 3  =  patada


Y no sólo en el golpe básico. Está aplicado a todos los ataques del juego:

[Situación]                        [Botón 1 (Puño)]           [Botón 3 (Patada)]
En el suelo                        Puño                       Coz
Salto + ataque (a la vez)          Codazo                     Patada al ras
En el aire (tras saltar)           Huracán, en la cúspide     Patada voladora
Con el cuchillo                    Lanzamiento                Lanzamiento giratorio
Con látigo o pala                  Golpe normal               Golpe giratorio
Con caja o tronco                  Lanzamiento                Lanzamiento giratorio
Recoger un arma o caja             Todo con el puño           — (Nunca recoge)
Patear una caja o tronco           —                          Lo desliza / patea


Compatibilidad con FBNeo restaurada

FBNeo valida el CRC de cada fichero del romset y se niega a arrancar un juego cuyos ficheros hayan sido modificados. Eso es justo lo que pasaba con los DOS ficheros que parchea este hack. FBNeo daba el error:

«Verify the following romsets: ddragon2
ROM with name 26a9-04.bin / ROM with name 26ac-0e.63»

El parche reescribe unos pocos bytes de RELLENO (no usados) en cada fichero parcheado para que su CRC vuelva a ser idéntico al original. El juego carga en FBNeo igual que el original, sin carpetas especiales, sin opciones del core y sin pasos extra. MAME y FB Alpha, que son mas permisivos, siguen funcionando como antes.


NOTA: En el primer Double Dragon, los ataques giratorios con arma u objeto (caja, piedra, barril) se ejecutaban con la combinación del codazo; en Double Dragon II, como la patada no tiene uso al llevar algo pesado en la mano (excepto con el cuchillo), aprovecharon ese botón para que el personaje se dé media vuelta y ejecute el golpe o lanzamiento propio de ese objeto.

La prueba de sprites
Esto es lo que sale al pulsar cada botón desde reposo, en los dos lados. La primera pareja de números es la acción interna y el sprite que se dibuja:

ORIGINAL                   CON EL PARCHE
DERECHA     Fire1      puño   spr 12/13           puño   spr 12/13    <-- corregido en v1.1
DERECHA     Fire3      coz    spr 73/74           coz    spr 73/74    <-- corregido en v1.1
IZQUIERDA   Fire1      puño   spr 92/93           puño   spr 92/93
IZQUIERDA   Fire3      coz    spr F3/F4           coz    spr F3/F4


Los sprites 92/93 y F3/F4 son los mismos 12/13 y 73/74 con el bit de volteo puesto ($12|$80 = $92): es el mismo movimiento mirando al otro lado, no otro distinto.

Cambios de apoyo y notas de diseño

    • La ventana del buffer de combinaciones pasa de 3 a 4 frames. Con 3 era muy fácil perder el «salto + ataque» una vez que los dos ataques dejan de ser intercambiables.
    • Ya no se fuerza el volteo en el aire. En el original, el ataque aéreo obliga al sprite a mirar hacia donde golpea el botón. Como los botones ya no son direccionales, ese volteo forzado no tenía sentido.
    • El giro con objetos en mano: Cuando llevas un arma o caja y pulsas patada, el personaje se da media vuelta antes de atacar/lanzar. Esto no es un bug; es la patada trasera original de la ROM (un ataque inverso deliberado). Funciona como los creadores idearon y se queda intacto.
    • El huracán con armas: Sigue sin poder hacerse mientras cargas un objeto, exactamente igual que en el juego de fábrica.

PARCHE (v1.2)

Double Dragon II - Fixed Attack Controls (v1.2) (by Psicopompo).zip



Enlaces de interés:
Ficha oficial en RomHacking.net
Repositorio en GitHub

Cómo se aplica
El juego de recreativa no es una ROM suelta: son 18 ficheros dentro de ddragon2.zip. El parche toca dos, así que hay dos .bps:

26a9-04.bin.bps    ->   26a9-04.bin   (CPU principal, 253 bytes)
26ac-0e.63.bps     ->   26ac-0e.63    (banco conmutado, 10 bytes)


Abre ddragon2.zip y extrae 26a9-04.bin y 26ac-0e.63.
Aplica cada parche a su fichero con Flips, beat o cualquier herramienta BPS.
Vuelve a meter los dos ficheros en el zip, sustituyendo los originales.
Los otros 16 no se tocan.

MD5 de control (v1.2)

26a9-04.bin   66e634a78217cab840e61ffbef72ef68   (CRC32 0xf2cfc649, = original)
26ac-0e.63    580701f52cb0f08ca6714c757fe3d2d1   (CRC32 0x57acad2c, = original)


¿Por qué no un solo parche del zip entero?
Porque el checksum de un zip depende del nivel de compresión y del orden de los ficheros: el mismo contenido puede dar zips distintos. Un parche hecho contra un zip concreto fallaría con cualquier otro. Las ROMs de dentro sí son estables, así que se parchean esas.

Compatibilidad
Probado con FB Alpha 2012 y FB Neo. Debería funcionar en cualquier emulador que mueva el set ddragon2, y en hardware real: sólo cambian las ROMs de programa, y ni su tamaño ni su disposición se alteran.
El modo de dos jugadores funciona con normalidad. Todo el código modificado va indexado por jugador, así que ambos se comportan igual.
Si alguien le pega un repaso a esta v1.2 y ve cualquier cosa, que avise por aquí.
Si el parcheo funciona correctamente podrías probar a enviarlo al autor de HBMame para que lo incluya...
@Retrodanuart ¿Qué es lo que hacen en HBMame?
@Retrodanuart Gracias. Voy a echarle un vistazo. 🤜🏻🤛🏻
Brutal,años estoy esperando algo así,no sabes cómo te lo agradezco,mañana lo pruebo en mi Raspberry y comento por aquí.gracias por compartirlo,salu2.
Bueno, lo de arreglo de los botones del título es una impresión tuya, porque no hay nada que arreglar. Personalmente, hubiese puesto "modificación" o "modernización" (si quieres verlo como una modernización), o mejor aún, "controles de Double Dragon", porque remites a los controles del primer Double Dragon.

No sé por qué algunos os empeñais en que todos los juegos sean iguales. Luego nos quejamos de originalidad, pero a la que alguien hizo algo distinto (tratando de simplificar), a rechazarlo y modificarlo para que sea lo mismo de siempre.
Cananas escribió:Bueno, lo de arreglo de los botones del título es una impresión tuya, porque no hay nada que arreglar. Personalmente, hubiese puesto "modificación" o "modernización" (si quieres verlo como una modernización), o mejor aún, "controles de Double Dragon", porque reciertes a los controles del primer Double Dragon.

No sé por qué algunos os empeñais en que todos los juegos sean iguales. Luego nos quejamos de originalidad, pero a la que alguien hizo algo distinto (tratando de simplificar), a rechazarlo y modificarlo para que sea lo mismo de siempre.

Llamar a las cosas por su nombre no es ir en contra de la originalidad, sino distinguir entre una genialidad de diseño y un error de ergonomía que la propia industria descartó por algo. Que en 1988 a un programador se le ocurriera esa marcianada de atar los botones a la dirección en lugar de a la acción no convierte ese galimatías en arte sacro intocable, sino en una incomodidad supina que hoy chirría a cualquiera.

En cuanto a lo de que «No sé por qué algunos os empeñáis en que todos los juegos sean iguales», casi que te lo puedes ahorrar, no vayas a acabar creyendo que tu criterio es el bueno. Aplicar lógica básica de control a un arcade no busca homogeneizar nada, sino evitar que jugar sea una pelea constante contra el hardware. Acepto que para ti sea un dogma de fe, pero permíteme llamarlo arreglo.

vlc71 escribió:Brutal,años estoy esperando algo así,no sabes cómo te lo agradezco,mañana lo pruebo en mi Raspberry y comento por aquí.gracias por compartirlo,salu2.

En breve actualizaré el parche con un par de correcciones. 👍🏻
Al final hoy no podré probarlo,tengo turno doble...pero cuando lo pruebe lo comento por aquí.salu2.
@psicopompo, bueno, es un arreglo para tu gusto. Un modificación para corregir una decisión de diseño del programador, cuya motivación te la pasar por el forro.

Hecha para que todos los juegos se jueguen como tú quieres, incluso aunque te hayas visto obligado después a tener que aumentar el buffer de combinaciones porque con tu "arreglo" ya no salían los combos porque no daba tiempo y había que hacerlk más fácil, rompiendo la fluidez y dinámica que el diseñador del juego quiso dar, aportando esa sencillez en los controles respecto al primer juego.
@Cananas Mira, llámalo como quieras para justificar tu drama de purista ofendido, pero inventarte intenciones artísticas donde solo había un esquema de control ortopédico de 1988 no cuela. Si a ti te pone feliz sufrir con los botones y hacer malabares mentales, perfecto para ti; disfrútalo a solas. Pero ahorrémonos el melodrama de que corregir una incomodidad de diseño arruina la "dinámica" del juego, porque es una estupidez. Vale, ha quedado claro cuál es tu enfoque. Ahora, si no te importa, deja que otros tengan también el suyo propio sin que les acusen de nada.
Personalmente NUNCA pude disfrutar de este juego ni al 60% como quien dice, ni en su momento jugandolo en su correspondiente maquina Arcade, ni a dia de hoy cuando me lo he puesto via emulacion (ni en otros momentos pasados cuando me ha dado por intentarlo jugar), los controles en ese juego eran al menos para mi.... "ilógicos", mi cerebro no entendía nada de porqué estaban así puestos y claro, jugaba como 10 minutos a mucho... y ya, se acabó jugarlo (creo que ha sido seguramente el unico juego en toda mi vida "videojueguil" que he abandonado y no he podido seguir jugando, era una tortura), a mi cuando me preguntaban... "¿que te parece la segunda parte del Double Dragon?", siempre he respondido lo mismo, "ni idea", (y luego ya explicaba el tema "controles"), y es que es así, no tengo ni idea de como será el juego... porque nunca he podido jugarlo completo, ¿para mi?, los controles son una puta mierda, es lo mas que puedo decir, ahora con este arreglo... seguramente la cosa cambie :) mil gracias @psicopompo , ahora lo que me quedaria es ver como parchear esto ya que no es algo que haya hecho anteriormente.

Un saludo.
A mi me parece una buena opcion poder utilizarlos asi.

Con todo, quitando las recres de la epoca, con este juego siempre he redefinido los botones "en linea", de tal forma que se (me)hacia mas intuitivo. Golpe-Salto-Golpe. De forma que al mirar a la derecha se quedaba Patada-Salto-Puño. No sé si me estoy explicando.

Por cierto, si no recuerdo mal, el Renegade ya contaba con este sistema. O algun otro, la verdad que ya no tengo tanta memoria como antes [snif]
Ahora avientate uno para el 1 que haga lo opuesto no? a mi me gusta ese comportamiento de ataque direccional [carcajad] [sonrisa]
ZedHqX4 escribió:Ahora avientate uno para el 1 que haga lo opuesto no? a mi me gusta ese comportamiento de ataque direccional [carcajad] [sonrisa]

El salto con patada del 1 es direccional. Igual lo cambio también... 😄

Parallax Snake escribió:Personalmente NUNCA pude disfrutar de este juego ni al 60% como quien dice, ni en su momento jugandolo en su correspondiente maquina Arcade, ni a dia de hoy cuando me lo he puesto via emulacion (ni en otros momentos pasados cuando me ha dado por intentarlo jugar), los controles en ese juego eran al menos para mi.... "ilógicos", mi cerebro no entendía nada de porqué estaban así puestos y claro, jugaba como 10 minutos a mucho... y ya, se acabó jugarlo (creo que ha sido seguramente el unico juego en toda mi vida "videojueguil" que he abandonado y no he podido seguir jugando, era una tortura), a mi cuando me preguntaban... "¿que te parece la segunda parte del Double Dragon?", siempre he respondido lo mismo, "ni idea", (y luego ya explicaba el tema "controles"), y es que es así, no tengo ni idea de como será el juego... porque nunca he podido jugarlo completo, ¿para mi?, los controles son una puta mierda, es lo mas que puedo decir, ahora con este arreglo... seguramente la cosa cambie :) mil gracias @psicopompo , ahora lo que me quedaria es ver como parchear esto ya que no es algo que haya hecho anteriormente.

Un saludo.

No tiene historia. Entras en este enlace, en ROM file seleccionas uno de los dos archivos que hay que parchear, en Patch file seleccionas su parche correspondiente y le das a Apply patch. Al pulsarlo, se te descarga el archivo parcheado automáticamente. Tendrás que cambiar el nombre para dejarlo como el original (el parcheador le pone algo así como [patched] al final del nombre). Haces lo mismo con el otro archivo y luego metes los dos en el zip de la ROM.

Z_Type escribió:A mi me parece una buena opcion poder utilizarlos asi.

Con todo, quitando las recres de la epoca, con este juego siempre he redefinido los botones "en linea", de tal forma que se (me)hacia mas intuitivo. Golpe-Salto-Golpe. De forma que al mirar a la derecha se quedaba Patada-Salto-Puño. No sé si me estoy explicando.

Por cierto, si no recuerdo mal, el Renegade ya contaba con este sistema. O algun otro, la verdad que ya no tengo tanta memoria como antes [snif]

Sí, te refieres al Renegade y al Nekketsu Renegade Kunio-kun. Puede que más adelante los modifique también.
14 respuestas