Game Boy ROM Header Information

Simple and clear explanation of what a Gameboy ROM header is, taken from the NO$GMB docs:

 

Gameboy ROM Header Info :: SephirothBCH :: v1.01 :: 2000/11/28

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\ After the release of this document, I am temporarily \\\
\\\ leaving the coding and emulation scene. The last few \\\
\\\ weeks of my life have been especially rough, mainly \\\
\\\ brought on by the death of my uncle, Roy Colbert. \\\
\\\ I would like to dedicate this doc, as well as any \\\
\\\ other progs I make to his memory. \\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

History:
_______________
v1.01 - Added some new licensees, fixed some
descriptions.
v1.00 - Initial release.
_______________

This information was taken and compiled from Martin Korth's
NO$GMB emulator. Best viewed in DOS EDIT.

Every Gameboy ROM header starts off at the HEX offset 0134.

Title/Name of ROM
=================
The title of a ROM is 15 or 16 bytes long. It seems that if the extension
of the ROM is GBC, the 16th byte denotes CGB features. This is then confirmed
by reading a HEX value of 80 from that 16th byte. I'm not sure of this yet,
but it seems correct. Any title bytes that are unused are filled with NULLs.

New licensee
============
This is two bytes long. These are two HEX values put together to make a
quasi-number value. For example 30h and 31h translate into 01. 31h and 32h
become 12, and so on. There are some companies also present in the licensee
section, later in this document. Known combos are as follows, in the trans-
lated form above.
00- none 01- nintendo 08- capcom
13- electronic arts 18- hudsonsoft 19- b-ai
20- kss 22- pow 24- pcm complete
25- san-x 28- kemco japan 29- seta
30- viacom 31- nintendo 32- bandia
33- ocean/acclaim 34- konami 35- hector
37- taito 38- hudson 39- banpresto
41- ubi soft 42- atlus 44- malibu
46- angel 47- pullet-proof 49- irem
50- absolute 51- acclaim 52- activision
53- american sammy 54- konami 55- hi tech entertainment
56- ljn 57- matchbox 58- mattel
59- milton bradley 60- titus 61- virgin
64- lucasarts 67- ocean 69- electronic arts
70- infogrames 71- interplay 72- broderbund
73- sculptured 75- sci 78- t*hq
79- accolade 80- misawa 83- lozc
86- tokuma shoten i* 87- tsukuda ori* 91- chun soft
92- video system 93- ocean/acclaim 95- varie
96- yonezawa/s'pal 97- kaneko 99- pack in soft

SGB features
============
Only one byte long. A HEX value of 03 says that the cartridge has added
features for Super Gameboy. Any other value, especially HEX 00 denotes
a non-SGB cart.

Cartridge type
==============
One byte long. This is one of the bigger values in the cart. This byte
indicates which memory mapper the cartridge uses, whether it has Rumble
features, RAM, or battery features. Valid values are as follows (in HEX):
00- ROM 01- MBC1 02- MBC1+RAM
03- MBC1+RAM+BATTERY 05- MBC2 06- MBC2+BATTERY
08- ROM+RAM 09- ROM+RAM+BATTERY 0B- MMM01
0C- MMM01+RAM 0D- MMM01+RAM+BATTERY 0F- MBC3+TIMER+BATTERY
10- MBC3+TIMER+RAM+BATTERY 11- MBC3 12- MBC3+RAM
13- MBC3+RAM+BATTERY 15- MBC4 16- MBC4+RAM
17- MBC4+RAM+BATTERY 19- MBC5 1A- MBC5+RAM
1B- MBC5+RAM+BATTERY 1C- MBC5+RUMBLE 1D- MBC5+RUMBLE+RAM
1E- MBC5+RUMBLE+RAM+BATTERY FC- POCKET CAMERA FD- Bandai TAMA5
FE- HuC3 FF- HuC1+RAM+BATTERY

*** The Bandai TAMA5 mapper was designed specifically for Tamagotchi. ***

ROM size
========
One byte long, fairly simple. ROM sizes range from 32K to 4MB. Valid HEX
values are as follows:
00- 32k 01- 64k 02- 128k 03- 256k 04- 512k
05- 1024k 06- 2048k 07- 4096k

Save RAM size
=============
One byte also, self-explanitory. Sizes range from no RAM, to 32K. The most
common ones used are 8k and 32k. HEX values:
00- 0k 01- 2k 02- 8k 03- 32k

Country code
============
Once again, this is only one byte long. Valid HEX values are 00- Japan and
01- Non-Japan.

Licensee
========
One byte long, this makes up the bulk of the entire document. Some of the
names are truncated (*), because they are too long for NO$GMB to display.
Anyone who has the full names of the truncated licensees please email me, and
you will get credit for them. Here are all of the valid HEX values I found:
00- none 01- nintendo 08- capcom
09- hot-b 0A- jaleco 0B- coconuts
0C- elite systems 13- electronic arts 18- hudsonsoft
19- itc entertainment 1A- yanoman 1D- clary
1F- virgin 24- pcm complete 25- san-x
28- kotobuki systems 29- seta 30- infogrames
31- nintendo 32- bandai 33- "see above"
34- konami 35- hector 38- capcom
39- banpresto 3C- *entertainment i 3E- gremlin
41- ubi soft 42- atlus 44- malibu
46- angel 47- spectrum holoby 49- irem
4A- virgin 4D- malibu 4F- u.s. gold
50- absolute 51- acclaim 52- activision
53- american sammy 54- gametek 55- park place
56- ljn 57- matchbox 59- milton bradley
5A- mindscape 5B- romstar 5C- naxat soft
5D- tradewest 60- titus 61- virgin
67- ocean 69- electronic arts 6E- elite systems
6F- electro brain 70- infogrames 71- interplay
72- broderbund 73- sculptered soft 75- the sales curve
78- t*hq 79- accolade 7A- triffix entertainment
7C- microprose 7F- kemco 80- misawa entertainment
83- lozc 86- *tokuma shoten i 8B- bullet-proof software
8C- vic tokai 8E- ape 8F- i'max
91- chun soft 92- video system 93- tsuburava
95- varie 96- yonezawa/s'pal 97- kaneko
99- arc 9A- nihon bussan 9B- tecmo
9C- imagineer 9D- banpresto 9F- nova
A1- hori electric A2- bandai A4- konami
A6- kawada A7- takara A9- technos japan
AA- broderbund AC- toei animation AD- toho
AF- namco B0- acclaim B1- ascii or nexoft
B2- bandai B4- enix B6- hal
B7- snk B9- pony canyon BA- *culture brain o
BB- sunsoft BD- sony imagesoft BF- sammy
C0- taito C2- kemco C3- squaresoft
C4- *tokuma shoten i C5- data east C6- tonkin house
C8- koei C9- ufl CA- ultra
CB- vap CC- use CD- meldac
CE- *pony canyon or CF- angel D0- taito
D1- sofel D2- quest D3- sigma enterprises
D4- ask kodansha D6- naxat soft D7- copya systems
D9- banpresto DA- tomy DB- ljn
DD- ncs DE- human DF- altron
E0- jaleco E1- towachiki E2- uutaka
E3- varie E5- epoch E7- athena
E8- asmik E9- natsume EA- king records
EB- atlus EC- epic/sony records EE- igs
F0- a wave F3- extreme entertainment FF- ljn

Header Check
============
One byte long. Not sure how this value is attained or checked. Email me if
you know, you'll get credit.

Global Check
============
Two bytes long. Perhaps this is a checksum of the entire rom. It might not,
since it is only a 16-bit value. Email me if you know.

-----------------------------------------------------------------------------

And so ends this document. If you have anything to add, or know of an error,
email me at SephirothBCH@theglobe.com. The next version of this document will
have explanations of the global and header check, and information on mappers
such as MBC1 and MBC2. Thanks for reading!
SephirothBCH
http://www.vbcop.com