Rastan Saga

The seven rounds, 255 screens built from their maps with their enemies and bosses, Rastan in his three layers, the dragon stage the game skips and an ending it never draws, all drawn from the ROM.

Taito - (c) Taito 1988 - A 256 KB MegaROM (ASCII8) - MSX2 - Dump 03fa40fa...

Not one capture here. Every picture is drawn from the bytes of the ROM: the title, the 257 screens of the 24 stages, Rastan, the 37 actor types and the bosses, with the cartridge's own tables, and checked against openMSX on a Japanese MSX2: the title and 256 screens without a single difference; the figures, sprite record by sprite record. 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,406named routines
46.1%of the listing commented
29,820bytes of code
232,324bytes of data
0bytes unidentified

What turned up when we took it apart

The dragon stage that gets skipped

Stage 0x11 has its record, its palette and its screen: a winged dragon over the sea, with 130 tiles no other stage uses. p00:5318 skips it: from 0x10 the game goes to 0x12.

Built from the ROM.

A test cheat in the header

Byte 0x4010 is 0. Set to 1, key 7 goes to the next stage, 6 to the previous one and BS ends the game (p00:5321, p00:5349); in the attract sequence, 4 and 5 change the VRAM page on display (p00:4E41).

Measured in openMSX on a copy of the ROM with that byte set to 1.

A throne with no layout

95 tiles in bank 0x19 make up a man sitting on a throne. There is no table that lays them out and no routine found that draws them.

The layout is the one in The Cutting Room Floor's picture, checked tile by tile.

An ending never drawn

The barbarian looking at the horizon, with blocks 0x2A-0x57 of the title's table. The table is cut at 0x6000, at the end of bank 0, and the last two rows of tiles fall outside it. No routine found draws it, and its blocks are not read in the run through the 257 screens.

The palette is not in the ROM: it is The Cutting Room Floor's.

Round 6 has no boss

The round comes from the stage (p00:566C: stage / 3 + 1). Round 6 gets 0x0F, 0x10 and 0x11, and 0x11 is the one that is skipped: two stages and no boss room. 0x11 sits where that room would be and, like the five boss rooms, is a single screen.

Read in the code.

The last byte of every 16 KB

The tiles go to VRAM 16 KB at a time with an LDIRVM of 0x3FFF bytes (p01:6077): the last byte of each piece stays at 0.

Checked against openMSX's VRAM.

What the cartridge draws

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

The title screen, built from the ROM: it matches openMSX's VRAM byte for byte (coteja_titulo.py).
The title screen, built from the ROM: it matches openMSX's VRAM byte for byte (coteja_titulo.py).
Round 1: the outdoors, the castle and the boss room, with the enemies where they come out (p00:58F9), the boss where its routine puts it (p04:8016) and Rastan on the starting screen, framed.
Round 1: the outdoors, the castle and the boss room, with the enemies where they come out (p00:58F9), the boss where its routine puts it (p04:8016) and Rastan on the starting screen, framed.
Round 7: five stages that repeat the five bosses, each on a given screen (p04:8BF4).
Round 7: five stages that repeat the five bosses, each on a given screen (p04:8BF4).
Rastan: the 48 different combinations of his three layers (p06:639F, p06:64B3 and the weapon) in his 92 poses, checked record by record against openMSX.
Rastan: the 48 different combinations of his three layers (p06:639F, p06:64B3 and the weapon) in his 92 poses, checked record by record against openMSX.
The 37 actor types, one pose per figure (p00:4C68), with the palette of the first stage they appear in.
The 37 actor types, one pose per figure (p00:4C68), with the palette of the first stage they appear in.
The five bosses (p03:7F76, bank 8) and their death.
The five bosses (p03:7F76, bank 8) and their death.
Stage 0x11, the dragon's, which the game skips.
Stage 0x11, the dragon's, which the game skips.
The dragon's head: blocks 0x60-0x77 of stage 0x11's table, which its map does not use.
The dragon's head: blocks 0x60-0x77 of stage 0x11's table, which its map does not use.
The throne: 95 tiles with no table, laid out as in The Cutting Room Floor's picture.
The throne: 95 tiles with no table, laid out as in The Cutting Room Floor's picture.
The ending: the barbarian looking at the horizon.
The ending: the barbarian looking at the horizon.
The ending text (p04:8D01) in the cartridge's own font.
The ending text (p04:8D01) in the cartridge's own font.