Gameboy ROM Header Info

From GbdevWiki
Revision as of 22:10, 10 March 2008 by Nitro2k01 (Talk | contribs) (New page: = Gameboy ROM Header Info v1.01 by SephirothBCH, 2000/11/28 = {{PlainBox| '''After the release of this document, I am temporarily leaving the coding and emulation scene. The last few wee...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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