Created
October 13, 2012 23:35
-
-
Save scottferg/3886608 to your computer and use it in GitHub Desktop.
Gameboy ROM header info
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment