Difference between revisions of "Gameboy ROM Header Info"

From GbdevWiki
Jump to: navigation, search
(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...)
 
(Licensee: + KSS)
 
(3 intermediate revisions by 2 users not shown)
Line 244: Line 244:
 
| HuC1+RAM+BATTERY
 
| 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:
 +
{| class="wikitable"
 +
|-
 +
|'''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:
 +
 +
{| class="wikitable"
 +
|-
 +
|'''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:
 +
{| class="wikitable"
 +
|-
 +
|'''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
 +
|'''20'''
 +
| KSS
 +
|'''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'''
 +
| Ubisoft
 +
|'''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'''
 +
| Infogrammes
 +
|-
 +
|'''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<br />
 +
http://www.vbcop.com (Editor's note: Dead link)
 +
 +
= Source =
 +
http://www.zophar.net/tech/files/gbrom.txt

Latest revision as of 09:04, 14 January 2019

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 20 KSS 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 Ubisoft 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 Infogrammes
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)

Source

http://www.zophar.net/tech/files/gbrom.txt