Alien Breed ROL Format

From ModdingWiki
Jump to navigation Jump to search
Alien Breed ROL Format
Format typeMusic
Notation typeMIDI
InstrumentsRoland
Max channel countUnknown
Max track count1-7
Max pattern count0
Max order count0
Tags?None
Games

All five .ROL files start with MThd, and their track chunks are MTrk. Their contents are Standard MIDI Files despite the game-specific extension. The Roland role is inferred from matching NEW_ROL.BIN/SFX_ROL.BIN names and the sound modes described in READ.ME.

File format

Offset Length Content
0x00 4 MThd
0x04 4 Big-endian header length, 6
0x08 2 Big-endian format number
0x0A 2 Big-endian track count
0x0C 2 Big-endian division, 192 ticks per quarter note
0x0E onward Variable MTrk, big-endian track length, event bytes

Four files are format 0 with one track. TITLE.ROL is format 1 with seven tracks. All track counts and lengths account for the complete files.

The MIDI Association's Standard MIDI Files specification is the applicable standard. Decode variable-length delta times and event payloads, and honor running status, tempo meta-events, and end-of-track markers. Header and track boundaries were checked here; a full event-by-event validation was not performed.

Notes

A copy with a .mid extension can be given to a MIDI-capable reader without changing its bytes. Preserve the originals and every track. The game's instrument/program mapping and playback-driver behavior have not been verified; a General MIDI synthesizer may sound different.

These files are not AdLib Visual Composer ROL files. Selecting a Visual Composer decoder from the extension alone would be incorrect.

Files

Paths are relative to game/.

File Stored bytes
ADLIB/ALARMED.ROL 457
ADLIB/INGAME.ROL 209
ADLIB/INTEX.ROL 1,119
ADLIB/MONSTER.ROL 326
ADLIB/TITLE.ROL 13,238

Source code

From re-alienbreed, the open-source browser port and asset viewer:

Credits

The Alien Breed-specific format research and parsers were prepared by VorticonCmdr. If you find this information helpful in a project you're working on, please give credit where credit is due. (A link back to this wiki would be nice too!)