1 de noviembre de 2016

[Secretos] Juegos de la serie Kunio-kun

Nekketsu Koukou Dodgeball Bu / Super Dodge Ball (NES / Famicom)

Si revisamos la tabla gráfica, podemos observar un sprite no utilizado en el juego.
Este gráfico de Kunio es muy similar al que aparece en la introducción de la versión arcade del mismo juego. Por alguna razón no fue incluido en la versión final de NES/Famicom.

Ike Ike! Nekketsu Hockey-Bu (Famicom)  

Personajes no usados. Cada equipo cuenta con cinco miembros disponibles para llenar cuatro posiciones al momento de juego. Hay dos equipos finalizando el modo historia, que nunca juegan. La computadora siempre utiliza los primeros cuatro miembros para jugar, dejando de lado estos últimos. A pesar de esto, sus gráficos y datos están presentes en el juego.
Saki Takase
Banba Inc Shittenouji
242P 198P
105S 100S
106W 90W
Passwords ocultos. Hay algunos passwords que nunca son revelados por el juego.
  • 2437: Comienza en el segundo juego, contra el Nekketsu Kendo Club. Pudo ser considerado innecesario debido a que el primer juego es fácil.
  • 0508: Durante la última parte del modo historia, el juego solo da el password para el primer juego del Torneo Inter-Escolar. Este es el password para saltar al segundo juego.
  • 9250: Comienza el tercer y último juego.
  • 4728: Comienza un modo historia dificil, empezando por el club de kendo. Tu equipo es el del dodgeball, no tienes acceso a ninguno de los uniformes adquiridos, y no hay passwords intermedios ni continuación.
  • 7031: Sound test. A activa el sonido seleccionado, B lo detiene, y Start regresa al menú principal.
Downtown Nekketsu Koushin Kyoku: Soreyuke Daiundoukai (Famicom)
Características de Debug. Esta es una característica identica a la de otros juegos de Technos. Usualmente todos los códigos de debug están controlados por una bandera de memoria, escrita al final de la ROM en la dirección $FFF6 en el espacio para CPU del M6502. Varios bits de esta variable habilitan o deshabilitan varias características de debug.
Sample version. El bit 7 de la variable de debug (para configurarlo, usar el código de Game Genie EKNYVYAA) cambia entre normal y "SAMPLE VERSION", el cual habilita algunas características. Durante el juego, presionar el botón Select en el control 1, entonces presionar uno de los siguientes botones:
  • A para saltar al siguiente nivel.
  • B para regresar al principio del juego.
Kunio-kun no Nekketsu Soccer League (Famicom)
Sound Test. En la pantalla de Vestuarios (antes del partido), selecciona おうえん きょく ("Seleccionar BGM"), y coloca el cursor en la 6ta opción (ねっけつFCの てーま), manten Izquierda y presiona Select.

Nekketsu! Street Basket: Ganbare Dunk Heroes (Famicom)

Gráficos no usados. El juego contiene el tilemap y datos CHR para una versión no usada de la pantalla "Owari" ("Final"). En lugar de la celebración del equipo de Kunio, aparecen saliendo del oceano desesperados. Esto parece indicar la posibilidad de que se hubiera planeado un "final malo". En la versión final, hay solo un final mostrando al equipo celebrando. Lo más interesante es que hay datos CHR que contienen tiles de animación para ambas escenas, al igual que las demás. Sin embargo, por alguna razón, decidieron no usarlas. Aquí puedes ver ambas animaciones:
Con respecto al "final malo", si observamos los datos CHR de la introducción del juego, vemos más sprites sin usar:
Aquí una animación de cómo pudo haber sido:

1 de octubre de 2016

Final Fight 2

Título: Final Fight 2

Sistemas:
1993 – SNES
2009 – Virtual Console
En 1993 Capcom se encontraba en condiciones de brindar una secuela de Final Fight, aunque solo para el mercado doméstico (no-arcade). La consola favorecida fue la Super Famicom/SNES, la cual había tenido una versión bastante pobre del juego original (solo un jugador a la vez, un personaje menos y algunos niveles recortados).
Capcom salda la deuda con dicha consola, restaurando el modo de juego cooperativo (2 jugadores), con posibilidad de escoger alguno de estos 3 personajes: Haggar (del Final Fight original), Maki (estudiante de la misma técnica de Guy) y Carlos (estudiante de diferentes artes marciales).
El juego comienza mostrando que ha pasado algún tiempo desde que Haggar, junto a sus amigos Cody y Guy, derrotaron a la banda Mad Gear y devuelto la paz a Metro City. Sin embargo, los miembros sobrevivientes de Mad Gear se han reagrupado en secreto planeando su venganza. Comienzan secuestrando a la novia de Guy, Rena, junto con su padre.
Como a Guy no se le encuentra por ninguna parte, la hermana menor de Rena, Maki le informa a Haggar de la situación. Acompañado por su amigo Carlos, Haggar viaja a Eurasia para encontrarse con Maki, y los tres unen su fuerzas para enfrentar a la nueva Mad Gear.
Final Fight 2 no se desvía mucho de su predecesor, conserva su estilo (ataque y salto) y presenta enemigos algo diferentes pero ajustados a la mecánica del juego. La mayor diferencia está en que, cada uno de los 6 niveles del juego, tienen lugar en algún país de Eurasia en el siguiente orden: Hong Kong, Francia, Holanda, Inglaterra, Italia y Japón.

Video:

1 de septiembre de 2016

Definición de objetos (2/2)

Habíamos visto anteriormente que en ocasiones, en nuestro juego debemos manejar una gran cantidad de acciones y animaciones para los personajes. ¿Cómo podemos manejar dicha información? En uno de mis proyectos, los personajes cuentan con varias acciones, animaciones y además utilizan 2 cajas de colisiones (una de vulnerabilidad y otra de ataque). De forma similar a como vimos en Street Fighter 2, se utilizan variables que registran la siguiente información:
  • SI: Slot de la secuencia donde inicia la acción.
  • SR: Slot donde se repite la secuencia de la acción.
  • SF: Slot de la secuencia donde finaliza la acción.
La información se toma de la siguiente tabla:
Cada slot contiene la siguiente información:
  • ID Fot.: ID del fotograma de la hoja de sprites.
  • Int.: intervalos de tiempo de juego que la frame de la animación se va a mostrar antes de avanzar a la siguiente frame.
  • CXV: coordenada horizontal del centro de la caja de vulnerabilidad.
  • CYV: coordenada vertical del centro de la caja de vulnerabilidad.
  • RXV: radio horizontal de la caja de vulnerabilidad.
  • RYV: radio vertical de la caja de vulnerabilidad.
  • CXA: coordenada horizontal del centro de la caja de ataque.
  • CYA: coordenada vertical del centro de la caja de ataque.
  • RXA: radio horizontal de la caja de ataque.
  • RYA: radio vertical de la caja de ataque.
La información se toma de la siguiente tabla:
La hoja de sprites es similar a esta:
Ahora, a modo de ejemplo, examinemos cuadro a cuadro la acción de ataque:
La acción de atacar establece el slot inicial en 40. El slot 40 establece que el ID del fotograma de la hoja de sprites que será presentado es el 26. En la figura podemos apreciar el fotograma 26 que da inicio a la animación. Observamos según la tabla que, entre cada fotograma hay 6 intervalos de tiempo antes de pasar al fotograma siguiente, excepto en el último fotograma cuya duración es de 12 intervalos. Además, el último fotograma se repite si no se pasa a otra acción. En ese caso, se debe establecer que al llegar a la conclusión del slot e intervalo, se pase a la acción siguiente (por ej: parado). También, podemos ver que en la imagen se ha marcado con una cruz blanca la coordenada de referencia donde se va a imprimir el sprite, mientras que la cruz roja indica el centro de la caja de ataque. Veamos más de cerca:
Según la tabla de slots, vemos que en el primer fotograma se nulifica (es decir, que todos los valores son iguales a cero) la caja de vulnerabilidad. Esto se hizo con el propósito de que el balón no golpee accidentalmente el personaje al ejecutar el ataque. También, vemos que el centro de la caja de ataque se establece a 4 pixeles horizontales de las coordenadas de referencia del sprite y a 52 pixeles verticales (rectángulo verde). Por otro lado, vemos el radio horizontal y vertical establecido en 27 y 18 pixeles respectivamente (rectángulo purpura). Obviamente, este sistema se puede optimizar, por ejemplo, quitando de la tabla de slots la información de las cajas de colisión y estableciendo una tercer tabla que guarde dicha información asociándola a un ID (como vimos en Street Fighter 2). Ahora, un video con los resultados: