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 [email protected].  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