Vampire Killer

A 156-room castle, 33 vendors who do not always sell and a Dracula who is half sprite and half VDP drawing, all drawn from the ROM.

Konami - (c) Konami 1986 - An RC-744 cartridge, a 128 KB MegaROM (Konami4) - MSX2 - Dump 99eabaae...

Not one capture here. Every picture is drawn from the bytes of the ROM: the title, the 156 rooms with what they hide, Simon, the enemies, the six bosses and the shop, with the cartridge's own tables, and checked against openMSX on an MSX2 machine: 0 bytes different in the rooms, the title, Simon, Dracula and the shop. The listing and the numbers are reproducible with make, and reassembling gives back the ROM byte for byte.

The cartridge in numbers

100%of the binary explained
1,909named routines
49.4%of the listing commented
29,786bytes of code
101,286bytes of data
0bytes unidentified

What turned up when we took it apart

The vendors are old men, and they count the hits

There are 33 in the castle: 16 in plain sight and 17 inside breakable blocks. Each one is a hooded old man, the same drawing in five colours (row 0xA0 of page 1). What happens when you hit him depends on his class and on how many hits he has taken (table 0x9300): the shop on the first, the third or the fifth; five hearts more or less; and on the eighth he leaves, with 5,000 points.

The colour tells what comes (0x9320): red, the shop; pink, hearts; blue, 0xD012; white, nothing. Dying resets the count. Seen in openMSX hit by hit.

The books change the prices

With the white book the shop charges less, and with the red one more (0xC702, p02:9418): full life costs 15, 40 or 80 hearts; the staff, 20, 30 or 60. Picking up one book takes away the other (p02:8E1D, 8E26).

Checked against six dumps of the open shop: 0 dots different.

The ending carries its story and its credits

After Dracula, p01:66BA scrolls up a text line by line with VDP register 23: eight lines of story (SO THE BRAVE YOUNG MAN PUT DRACULA INTO DEEP SLEEP AGAIN…) and the STAFF, twenty names, from GAME DESIGNER A. NAGATA to PRODUCED BY AKIHIKO NAGATA (table 0x678E, banks 5 and 8).

In the ROM the full stops are “:” and the apostrophe is “;”: the font that p00:53DE uploads for the ending draws them that way.

Dracula, half sprite and half VDP

The head is a sprite. The 32 × 32 body does not fit: the cartridge saves the background on page 1 (0x80, 0x80) and copies the body with LMMM and transparency (p03:AD80, AD93).

When the drawing changes, the new one is painted over the old one without restoring the background. Checked down to zero in his four frames.

Dracula's room comes out with a shifted row

p00:5969 flips the tiles of the portrait room writing the rows backwards, and the last one lands outside: it uploads rows 6 to 0 and four bytes that were already there.

The game draws it that way, and the check only reaches zero by reproducing the bug.

What candles, blocks and chests hide

The low bits of each secret say it (bank 14): 129 hearts, 100 big hearts, 77 keys, 21 white keys… and in 52 places, an enemy (type 0x15, table 0x8AF0).

All of it marked on the 19 map sheets.

Nearly everything Simon picks up is a bit

Many items only switch on a bit or a counter (p02:8D3E): the ring, which kills on touch while it lasts (0xC434), the hourglass, the bow, the boots, the wings, the books, the staff.

The scroll gives three uses of the stage map with F2 (0xC70F, p02:9552).

With a Game Master, another pause

The cartridge looks in the four slots for the signature of Konami's Game Master (p00:5C92) and notes it in 0xE600.

With it, STOP freezes the game from the interrupt and ; steps one frame; after GAME OVER, F5 CONTINUE shows up; and from the title there is a menu that picks the stage.

Two titles in one cartridge

Vampire Killer or Akumajō Dracula, depending on the BIOS country byte (0x002B, p00:4D9E).

Both checked down to zero, with the European BIOS and with the Japanese one.

A drawing read from RAM

p00:54E4 uploads 640 bytes from 0xBDC8, but the cartridge ends at 0xBFFF: the last 0x48 are already read from RAM.

What the cartridge draws

Under each picture is where it comes from and what is on it.

The European title built from the ROM: the blue of p00:4D74, the 0x59 tiles at 0xB260 (bank 8) and the PUSH SPACE KEY. Checked down to 0 bytes.
The European title built from the ROM: the blue of p00:4D74, the 0x59 tiles at 0xB260 (bank 8) and the PUSH SPACE KEY. Checked down to 0 bytes.
With the Japanese BIOS (0x002B), the same cartridge builds Akumajō Dracula: 0x1E tiles at 0xAEA0 and an RLE from bank 13. Also down to 0 bytes.
With the Japanese BIOS (0x002B), the same cartridge builds Akumajō Dracula: 0x1E tiles at 0xAEA0 and an RLE from bank 13. Also down to 0 bytes.
The 19 stages and their 156 rooms on the grid at 0x9695. Each room is 8 × 6 blocks of 32 × 32 (bank 11) and is checked down to 0 bytes.
The 19 stages and their 156 rooms on the grid at 0x9695. Each room is 8 × 6 blocks of 32 × 32 (bank 11) and is checked down to 0 bytes.
What stage 1 hides (the list in bank 14): candles, blocks, chests, keys, the vendor and the exit door (0xBB61). There is a sheet like this for every stage.
What stage 1 hides (the list in bank 14): candles, blocks, chests, keys, the vendor and the exit door (0xBB61). There is a sheet like this for every stage.
The vendor, a hooded old man that p00:54F0 colours five times over the mould at 0xBDA7. He comes out white; when hit he blinks with the black one and stays in the colour of what comes: red, the shop; pink, hearts; blue, 0xD012; white, nothing or he leaves.
The vendor, a hooded old man that p00:54F0 colours five times over the mould at 0xBDA7. He comes out white; when hit he blinks with the black one and stays in the colour of what comes: red, the shop; pink, hearts; blue, 0xD012; white, nothing or he leaves.
The staff shop (stage 4) with no book, with the white book and with the red one: 30, 20 and 60 hearts (0x9428). Drawn as p02:9397 does and checked down to 0 dots against six dumps.
The staff shop (stage 4) with no book, with the white book and with the red one: 30, 20 and 60 hearts (0x9428). Drawn as p02:9397 does and checked down to 0 dots against six dumps.
The 29 items that have a drawing, in the order of their type, from 0x01 to 0x1E (0x15 has none: an enemy comes out). Rows 0x50 and 0x60 of page 1 (p00:548D).
The 29 items that have a drawing, in the order of their type, from 0x01 to 0x1E (0x15 has none: an enemy comes out). Rows 0x50 and 0x60 of page 1 (p00:548D).
Simon is two halves, legs (0xC42E) and body (0xC42F), with 16 × 16 sprites and colour per line. Checked against the 156 dumps.
Simon is two halves, legs (0xC42E) and body (0xC42F), with 16 × 16 sprites and colour per line. Checked against the 156 dumps.
The enemies and the six bosses, one type of the list at 0xC800 per row, built from 0xB473. Of 58,430 openMSX samples, none unexplained.
The enemies and the six bosses, one type of the list at 0xC800 per row, built from 0xB473. Of 58,430 openMSX samples, none unexplained.
Dracula standing in the portrait room, in his four frames: sprites on top and the body copied by the VDP (p03:AD93).
Dracula standing in the portrait room, in his four frames: sprites on top and the body copied by the VDP (p03:AD93).
The enemies' shots, in the list at 0xD700, which numbers its types apart (p02:9E5C).
The enemies' shots, in the list at 0xD700, which numbers its types apart (p02:9E5C).
Konami's curtain, which p01:624C copies line by line from page 1.
Konami's curtain, which p01:624C copies line by line from page 1.