Konami's Boxing

Seis rivales, y solo tres dibujados. Los nombres son seis, pero las figuras salen de una tabla de tres palabras: los tres de la segunda vuelta son los tres primeros con el color cambiado. Y el cartucho lleva la puntuacion al reves de como se lee —va sumando faltas y al final hace 10 - faltas—, que es el sistema de los diez puntos del boxeo de verdad.

Konami - (c) Konami 1985 - Cartucho RC-736, 32 KB - MSX1 - paginas 1 y 2 - Volcado 43b23739...

Aqui no hay ninguna captura. Todas las imagenes estan dibujadas desde los bytes de la ROM, ejecutando en Python los mismos descompresores, montadores de figuras y pintores de sprites que corre el Z80, y cotejadas byte a byte contra la VRAM de openMSX: las ocho pantallas volcadas del emulador —la presentacion, el titulo y los seis cuadrilateros— dan cero diferencias en color (6.144 bytes), patrones (6.144) y las 768 casillas de la pantalla, y en el primer combate tambien en las figuras de los dos boxeadores. El listado y las cifras se reproducen con make, y el reensamblado devuelve la ROM byte a byte.

El cartucho en cifras

100 %del binario explicado
475bloques de codigo medidos
52,6 %del listado comentado
6.932bytes de codigo
25.836bytes de datos
0bytes sin identificar

Lo que aparecio al desmontarlo

Seis rivales, tres archivos y una pieza escondida

Los nombres salen de una tabla de seis punteros en 0x5661: RED·WOLF, M.B.ALLI, MOAI·KING, SANCHESS, CHINA·KHAN y MOAI·Jr. Las figuras, en cambio, salen de una tabla de tres palabras en 0x52C9 —0x825C, 0x9670 y 0xABB4— que 0x4F8D indexa con (0xE207) & 3.

Y aun asi los seis son distintos: cada figura de rival lleva una pieza de mas de las que declara —0x5005 hace inc b en el turno del rival— y 0x5034 solo la pinta en la segunda vuelta: en SANCHESS en vez de la cabeza de RED WOLF (el pelo hasta el cuello), en CHINA KHAN ademas de la de M.B.ALLI (la coleta) y en MOAI Jr. en vez del sprite vacio de MOAI KING. Y solo al moai le cambian 0x526F y 0x51BE el color 4 por el 0x0C: del azul al verde. Cotejado contra la VRAM del emulador, sprites incluidos, a cero.

Pegar cansa, y el golpe solo toca en dos cuadros

Al acabarse un golpe, 0x49BC le suma a quien lo ha dado lo que dice la tabla de 0x6854 —3, 2, 1 y 1—, y el que mas castiga al otro (0x6850: 12, 10, 9 y 2) es tambien el que mas cansa. Las dos tablas van en el mismo orden.

Y el golpe tiene una ventana: 0x49FB carga 0xC0 en (0xE24C) o (0xE24D), y 0x4CCF lo gasta con un srl por cuadro. De los dos bits solo sale acarreo en el septimo y el octavo cuadro: fuera de ahi el golpe no puede tocar.

El marcador se lleva al reves

(0xE21E) y (0xE21F) no van sumando puntos: van sumando faltas. Una por llevar tres niveles mas de castigo que el otro, otra por haber acertado menos golpes, y el doble de lo que diga (0xE23E) o (0xE261). Al final, 0x4ECD hace 10 - faltas y sube las dos notas a la vez hasta que una llega al diez. Es el sistema de los diez puntos del boxeo de verdad.

La marca oculta de Konami

En 0xBFF0, detras del relleno, estan el titulo en katakana al reves, la longitud (13), el numero de catalogo en BCD (0x36) y 0xAA: RC-736 y コナミのボクシング. El hallazgo del formato es de Manuel Pazos; aqui solo se lee.

Y en 0x4010 hay una segunda cabecera "AB" con 07 36 detras: la que lee el Konami Game Master desde la otra ranura. Con este son ocho los cartuchos de la serie que la llevan.

La maquina juega al de la izquierda

Con un solo jugador, el boxeador de la izquierda lo lleva decide_la_maquina (0x4A6B) y el humano es el de la derecha, que es el que va con el puerto 1 y el cursor. Lo dicen tres cosas independientes: al colocarlos (0x49FE) al de 0xE232 le toca la columna 22 y al de 0xE255 la 2; al andar, uno se acerca sumando y el otro restando; y la maquina se acerca a la derecha (0x4A83) y se retira a la izquierda (0x4B39), que es lo que le toca al de ese lado.

En la escena 2 —la demostracion— al de la derecha lo mueve el registro R del Z80 (0x4836): juegan solos los dos.

Un reloj de tres minutos, en cuatro casillas

El tiempo del asalto no es un contador binario: son las cuatro casillas de (0xE212) a (0xE215), en ASCII, que 0x5798 vuelca a la fila 1 columna 14. Bajan de una en una por el final; cuando las unidades pasan de '0' a '9' se llevan una de las decenas, y cuando las decenas pasan de '0' vuelven a '5'. Arranca en 3:01, que a la primera bajada queda en 3:00.

Los seis rivales, uno a uno

La misma pantalla seis veces, montada desde la ROM con lo que cambia en cada una: el nombre de la tabla de 0x5661, la figura de la de 0x52C9 y, en la segunda vuelta, el cambio de color de 0x526F. Ninguna es una captura, y las seis dan cero diferencias contra la VRAM del emulador.

RED·WOLF, el primero
RED·WOLF, el primero
M.B.ALLI
M.B.ALLI
MOAI·KING
MOAI·KING
SANCHESS, ya en la segunda vuelta (STAGE B)
SANCHESS, ya en la segunda vuelta (STAGE B)
CHINA·KHAN
CHINA·KHAN
MOAI·Jr., el hijo de MOAI·KING
MOAI·Jr., el hijo de MOAI·KING

Lo que el cartucho dibuja

Debajo de cada imagen esta de donde sale y que se esta viendo.

La pantalla del titulo, con las cuatro opciones. El bit 0 de las banderas de 0x4563 es el que dice si juegan dos, y el bit 4 la variante B.
La pantalla del titulo, con las cuatro opciones. El bit 0 de las banderas de 0x4563 es el que dice si juegan dos, y el bit 4 la variante B.
La presentacion. El cartel son 26 casillas correlativas en tres filas que suben una fila cada dos cuadros, catorce veces (0x462A).
La presentacion. El cartel son 26 casillas correlativas en tres filas que suben una fila cada dos cuadros, catorce veces (0x462A).
Las diecinueve poses del jugador: las casillas colocadas con los ocho bytes de disposicion de cada figura y los sprites encima.
Las diecinueve poses del jugador: las casillas colocadas con los ocho bytes de disposicion de cada figura y los sprites encima.
RED·WOLF, el archivo 2 en la primera vuelta: la pieza escondida se salta.
RED·WOLF, el archivo 2 en la primera vuelta: la pieza escondida se salta.
M.B.ALLI, el archivo 3 sin la coleta.
M.B.ALLI, el archivo 3 sin la coleta.
MOAI·KING, el archivo 4 en azul y con un sprite vacio en la cara.
MOAI·KING, el archivo 4 en azul y con un sprite vacio en la cara.
SANCHESS: el mismo archivo 2 con la primera pieza en vez de la segunda, el pelo hasta el cuello.
SANCHESS: el mismo archivo 2 con la primera pieza en vez de la segunda, el pelo hasta el cuello.
CHINA·KHAN: el archivo 3 con todas las piezas, la coleta incluida (0xAB2E, color 1).
CHINA·KHAN: el archivo 3 con todas las piezas, la coleta incluida (0xAB2E, color 1).
MOAI·Jr.: el archivo 4 con siete pixeles negros en la cara y el color 4 cambiado por el 0x0C, verde.
MOAI·Jr.: el archivo 4 con siete pixeles negros en la cara y el color 4 cambiado por el 0x0C, verde.
La fuente: cuarenta y seis casillas desde la 0x30, casi ASCII. No hay Q —0x51 es un punto medio— ni Z, y 0x58 es un glifo con la
La fuente: cuarenta y seis casillas desde la 0x30, casi ASCII. No hay Q —0x51 es un punto medio— ni Z, y 0x58 es un glifo con la "r" y el punto juntos, que es lo que hace que el sexto rival se llame MOAI·Jr.