Gameboy ROM Header Info
Contents
Gameboy ROM Header Info v1.01 by SephirothBCH, 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. (Editor's note: This document has been wikified, and DOS EDIT is no longer the best way to view it. ;) )
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 translated 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 |
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 | GBC - 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 intermedia | 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 intermedia | 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.
(Editor's note: The algorithms for the checksums are actually well known since long now, and can be attained from the article The Cartridge Header which is part of Pan Docs)
End of document
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 (Editor's note: Dead link)