ROM header
From Sega Retro
The ROM header or disc ID[1] is a defined area of a video game cartridge ROM or CD-ROM used to identify software. Sega mandated that software include a header, both so the hardware understood what it was running, and for cataloguing purposes.
Sega's ROM headers were designed to be human readable, so details of compatible software can be understood quickly. The layout of these headers were dictated by Sega, and failure to conform with the company's guidelines could mean software would be rejected by Sega's quality assurance teams and be prevented from going on sale.
Sega's first ROM header scheme came into use with the Sega Mega Drive in late 1988, and were still being mandated for Sega Dreamcast releases twenty years later. Other video game platform holders have adopted different schemes (or indeed no schemes at all).
Contents
Pre-Mega Drive
Likely due to smaller cartridge (or card) sizes, no ROM header schemes were ever enforced for Sega's earlier systems (or add-ons), the SG-1000, SC-3000 and Sega Master System. They were also not enforced with Sega Game Gear software, likely for similar reasons, or its technical similarities with the Master System architecture.
Mega Drive
Guidelines for Sega Mega Drive software were the first to mandate the inclusion of ROM headers, and the same system would be used for Sega Mega-CD, Sega 32X and Pico software in the early 1990s.
ROM headers for these systems must occupy 256 bytes of memory in the cartridge (or disc) from 100 to 1FF, laid out as follows[2]:
Offset | Contents | ||
---|---|---|---|
100 | Hardware designation | ||
110 | Company code, date | ||
120 | Domestic game title | ||
130 | |||
140 | |||
150 | Overseas game title | ||
160 | |||
170 | |||
180 | Disc type, product no., version | SPACE | |
190 | I/O info | ||
1A0 | SPACE | ||
1B0 | SPACE | Modem info | |
1C0 | Modem info | SPACE | |
1D0 | SPACE | ||
1E0 | SPACE | ||
1F0 | Regional compatibility |
Contents breakdown
Hardware designation
Hardware | Designation | Comments |
---|---|---|
Sega Mega Drive | SEGA MEGA DRIVE | |
Sega Genesis | SEGA GENESIS | |
Sega Mega-CD | SEGA MEGA DRIVE | No distinction is made between cartridge and CD-based software. |
Sega CD | SEGA GENESIS | No distinction is made between cartridge and CD-based software. |
Sega 32X | ||
Pico |
Example
The following header is for the initial release of Sonic the Hedgehog for the Mega Drive:
Offset | Contents (hexadecimal) | Decoded text |
---|---|---|
00000100 00000110 00000120 00000130 00000140 00000150 00000160 00000170 00000180 00000190 000001A0 000001B0 000001C0 000001D0 000001E0 000001F0 |
53 45 47 41 20 4D 45 47 41 20 44 52 49 56 45 20 28 43 29 53 45 47 41 20 31 39 39 31 2E 41 50 52 53 4F 4E 49 43 20 54 48 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 45 44 47 45 48 4F 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 4F 4E 49 43 20 54 48 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 48 45 44 47 45 48 4F 47 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 4D 20 30 30 30 30 31 30 30 39 2D 30 30 26 4A 4A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00 00 00 07 FF FF 00 FF 00 00 00 FF FF FF 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4A 55 45 20 20 20 20 20 20 20 20 20 20 20 20 20 |
SEGA MEGA DRIVE (C)SEGA 1991.APR SONIC THE HEDGEHOG SONIC THE HEDGEHOG GM 00001009-00&J J JUE |
From the header alone, it can be established that:
- It is Mega Drive software
- The software was published by Sega
- The software is dated April 1991
- The software is known as "Sonic the Hedgehog" both domestically (Japan) and overseas.
- It is a game (GM) with product code "00001009-00&J"
- The software is compatible with the Control Pad (J)
- The software is designed to run on NTSC-J (J), NTSC-U (U) and PAL (E) systems.
Saturn
Dreamcast
Issues
Inaccuracies
While Sega usually policed the layout of ROM headers, they were less likely to moderate the contents, meaning some headers do not accurately describe the software. For most users, the contents of ROM headers did not matter, as they wouldn't be shown when the software was running, however if one wishes to catalogue software based on the internal headers alone, the information can be misleading.
Most ROM headers were written while the software was in development and thus may not reflect the final product. The dates are particularly unreliable for this reason, however if a game changed publisher or gained new features late in development, this may not be reflected in the header's contents. As such, while in theory ROM headers should describe the software well enough for cataloguing, in practise the information can only provide rough guidelines.
Prototypes suggest that information was often added well in advance of software coming to market, with developers filling in the relevant fields to appease Sega's quality control, but not subsequently updating said fields when the product neared completion. This means headers often contain projected information, i.e. what the developers thought the software might look like sometimes months before the project fully took shape.
For example, Sonic the Hedgehog's header claims an April 1991 release and an incorrect product code. The game was originally planned for release around that time, but was delayed into June 1991, with the header not being updated. Furthermore the original ROM claims to be designed for NTSC-J systems, and while the game will indeed boot, Japan actually received a updated revision of the game in July, not the original release.
TradeMark Security System
With the Mega Drive, Sega incorporated the ROM header into its TradeMark Security System (TMSS) license checking system. The first of these checks expects to see the text "SEGA" (or " SEGA") at 100, the start of the hardware designation field. Starting in 1991, software that failed this check would not boot.
Early (and unlicensed) software often have ROM headers stored in the wrong place in memory (for example, Onslaught an unlicensed title by Accolade which infamously was never re-released to be TMSS-compliant, starts its header at 108).