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