Vampire Killer

Un castillo de 156 habitaciones, 33 vendedores que no siempre venden y un Drácula que es medio sprite y medio dibujo del VDP, todo dibujado desde la ROM.

Konami - (c) Konami 1986 - Cartucho RC-744, MegaROM de 128 KB (Konami4) - MSX2 - Volcado 99eabaae...

Aquí no hay ninguna captura. Todas las imágenes están dibujadas desde los bytes de la ROM: el título, las 156 habitaciones con lo que esconden, Simon, los enemigos, los seis jefes y la tienda, con las tablas del cartucho, y cotejadas contra openMSX en una máquina MSX2: 0 bytes distintos en las habitaciones, el título, Simon, Drácula y la tienda. 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
1.909rutinas con nombre
49,4 %del listado comentado
29.786bytes de código
101.286bytes de datos
0bytes sin identificar

Lo que apareció al desmontarlo

Los vendedores son viejos, y cuentan los golpes

Hay 33 en el castillo: 16 a la vista y 17 dentro de bloques que se rompen. Es un viejo encapuchado, el mismo dibujo en cinco colores (fila 0xA0 de la página 1). Lo que pasa al pegarle depende de su clase y de cuántos golpes lleva (tabla 0x9300): la tienda al primero, al tercero o al quinto; cinco corazones más o menos; y al octavo se va con 5.000 puntos.

El color dice lo que toca (0x9320): rojo, la tienda; rosa, corazones; azul, 0xD012; blanco, nada. Al morir, la cuenta vuelve a cero. Visto en openMSX golpe a golpe.

Los libros cambian los precios

Con el libro blanco la tienda cobra menos, y con el rojo, más (0xC702, p02:9418): la vida llena cuesta 15, 40 u 80 corazones; el bastón, 20, 30 o 60. Coger un libro quita el otro (p02:8E1D, 8E26).

Cotejado contra seis volcados de la tienda abierta: 0 puntos distintos.

El final trae su historia y sus créditos

Tras Drácula, p01:66BA sube un texto renglón a renglón con el registro 23 del VDP: ocho líneas de historia (SO THE BRAVE YOUNG MAN PUT DRACULA INTO DEEP SLEEP AGAIN…) y el STAFF, veinte nombres, del GAME DESIGNER A. NAGATA a PRODUCED BY AKIHIKO NAGATA (tabla 0x678E, bancos 5 y 8).

En la ROM los puntos son «:» y el apóstrofo es «;»: la fuente que p00:53DE sube para el final los dibuja así.

Drácula, medio sprite y medio VDP

La cabeza es un sprite. El cuerpo, de 32 × 32, no cabe: el cartucho guarda el fondo en la página 1 (0x80, 0x80) y copia el cuerpo con LMMM y transparencia (p03:AD80, AD93).

Al cambiar de dibujo, el nuevo se pinta encima del anterior sin devolver el fondo. Cotejado a cero en sus cuatro dibujos.

La sala de Drácula sale con una fila corrida

p00:5969 voltea los dibujos de la sala del retrato escribiendo las filas hacia atrás, y la última cae fuera: se suben las filas 6 a 0 y cuatro bytes que ya había.

El juego lo pinta así, y el cotejo solo da cero reproduciendo el fallo.

Lo que esconden velas, bloques y cofres

Lo dicen los bits bajos de cada secreto (banco 14): 129 corazones, 100 corazones grandes, 77 llaves, 21 llaves blancas… y en 52 sitios, un enemigo (tipo 0x15, tabla 0x8AF0).

Todo marcado en las 19 láminas del mapa.

Casi todo lo que recoge Simon es un bit

Muchos objetos solo encienden un bit o una cuenta (p02:8D3E): el anillo, que mata al tocar mientras dura (0xC434), el reloj de arena, el lazo, las botas, las alas, los libros, el bastón.

El pergamino da tres usos del mapa de la fase con F2 (0xC70F, p02:9552).

Con un Game Master, otra pausa

El cartucho busca en las cuatro ranuras la firma del Konami's Game Master (p00:5C92) y la apunta en 0xE600.

Con él, STOP congela el juego desde la interrupción y ; avanza un cuadro; tras el GAME OVER sale F5 CONTINUE; y desde el título hay un menú que elige la fase.

Dos títulos en un cartucho

Vampire Killer o Akumajō Dracula, según el byte de país de la BIOS (0x002B, p00:4D9E).

Los dos, cotejados a cero con la BIOS europea y con la japonesa.

Un dibujo que se lee de la RAM

p00:54E4 sube 640 bytes desde 0xBDC8, pero el cartucho acaba en 0xBFFF: los últimos 0x48 se leen ya de la RAM.

Lo que el cartucho dibuja

Debajo de cada imagen está de dónde sale y qué se está viendo.

El título europeo montado desde la ROM: el azul de p00:4D74, los 0x59 dibujos de 0xB260 (banco 8) y el PUSH SPACE KEY. Cotejado a 0 bytes.
El título europeo montado desde la ROM: el azul de p00:4D74, los 0x59 dibujos de 0xB260 (banco 8) y el PUSH SPACE KEY. Cotejado a 0 bytes.
Con la BIOS japonesa (0x002B), el mismo cartucho monta Akumajō Dracula: 0x1E dibujos de 0xAEA0 y un RLE del banco 13. También a 0 bytes.
Con la BIOS japonesa (0x002B), el mismo cartucho monta Akumajō Dracula: 0x1E dibujos de 0xAEA0 y un RLE del banco 13. También a 0 bytes.
Las 19 fases y sus 156 habitaciones en la rejilla de 0x9695. Cada habitación son 8 × 6 bloques de 32 × 32 (banco 11) y está cotejada a 0 bytes.
Las 19 fases y sus 156 habitaciones en la rejilla de 0x9695. Cada habitación son 8 × 6 bloques de 32 × 32 (banco 11) y está cotejada a 0 bytes.
Lo que esconde la fase 1 (lista del banco 14): velas, bloques, cofres, llaves, el vendedor y la puerta de salida (0xBB61). Hay una lámina así por fase.
Lo que esconde la fase 1 (lista del banco 14): velas, bloques, cofres, llaves, el vendedor y la puerta de salida (0xBB61). Hay una lámina así por fase.
El vendedor, un viejo encapuchado que p00:54F0 colorea cinco veces sobre el molde de 0xBDA7. Sale blanco; al pegarle parpadea con el negro y se queda del color de lo que toca: rojo, la tienda; rosa, corazones; azul, 0xD012; blanco, nada o se va.
El vendedor, un viejo encapuchado que p00:54F0 colorea cinco veces sobre el molde de 0xBDA7. Sale blanco; al pegarle parpadea con el negro y se queda del color de lo que toca: rojo, la tienda; rosa, corazones; azul, 0xD012; blanco, nada o se va.
La tienda del bastón (fase 4) sin libro, con el libro blanco y con el rojo: 30, 20 y 60 corazones (0x9428). Pintada como p02:9397 y cotejada a 0 puntos contra seis volcados.
La tienda del bastón (fase 4) sin libro, con el libro blanco y con el rojo: 30, 20 y 60 corazones (0x9428). Pintada como p02:9397 y cotejada a 0 puntos contra seis volcados.
Los 29 objetos con dibujo, en el orden de su tipo, del 0x01 al 0x1E (el 0x15 no tiene: sale un enemigo). Filas 0x50 y 0x60 de la página 1 (p00:548D).
Los 29 objetos con dibujo, en el orden de su tipo, del 0x01 al 0x1E (el 0x15 no tiene: sale un enemigo). Filas 0x50 y 0x60 de la página 1 (p00:548D).
Simon son dos mitades, piernas (0xC42E) y cuerpo (0xC42F), con sprites de 16 × 16 y color por línea. Cotejado contra los 156 volcados.
Simon son dos mitades, piernas (0xC42E) y cuerpo (0xC42F), con sprites de 16 × 16 y color por línea. Cotejado contra los 156 volcados.
Los enemigos y los seis jefes, un tipo de la lista de 0xC800 por fila, compuestos desde 0xB473. De 58.430 muestras de openMSX, ninguna sin explicar.
Los enemigos y los seis jefes, un tipo de la lista de 0xC800 por fila, compuestos desde 0xB473. De 58.430 muestras de openMSX, ninguna sin explicar.
Drácula de pie en la sala del retrato, en sus cuatro dibujos: sprites arriba y el cuerpo copiado por el VDP (p03:AD93).
Drácula de pie en la sala del retrato, en sus cuatro dibujos: sprites arriba y el cuerpo copiado por el VDP (p03:AD93).
Los disparos de los enemigos, en la lista de 0xD700, que numera sus tipos aparte (p02:9E5C).
Los disparos de los enemigos, en la lista de 0xD700, que numera sus tipos aparte (p02:9E5C).
El telón de Konami, que p01:624C copia línea a línea desde la página 1.
El telón de Konami, que p01:624C copia línea a línea desde la página 1.