NINA Header Version 1.02                      
========================


Overview
--------

* The format may consist of a number of data blocks.  

* Each data block begins with an identifier and size field (4,4).

* The header is recognised by the existance of the Primary Data Block.

* Information stored in the header describes hardware requirement.  


Primary Data Block
------------------

Identifier      "NINA"
Size            size(PRG) + size(CHR) + 48 Bytes

Block Information
  0x000000  Word    Maker Code         
  0x000002  Byte    Game Code [4]          
  0x00000E  Byte    Special Version     
  0x00000F  Byte    Sub-Number     
  0x000010  Byte    Game Title [21] 
  0x000025  Byte    Map Mode
  0x000026  Byte    Catridge Type
  0x000027  Byte    ROM Size            
  0x000028  Byte    RAM Size
  0x000029  Byte    Destination Code
  0x00002A  Byte    Licensee Code        
  0x00002B  Byte    Mask ROM Version    
  0x00002C  Word    Check Sum (PRG) 
  0x00002E  Word    Check Sum (CHR) 
End Block

The Program ROM and Character ROM (if present) follow the Primary Data Block.


1.  Maker Code
    2-digit ASCII code assigned by Nintendo.

2.  Game Code
    4-digit Game Code assigned by Nintendo. If the game program was assigned
    a 2-digit code, the code will be followed by 2 "Space" codes.   

3.  Special Version
    Assigned when necessary to distinguish between original and non-original 
    mapping.

4.  Sub-Number
    Assigned when necessary to distinguish between the same cartridge type
    or identify a custom mapper. 

5.  Game Title
    The game title using ASCII code.

6.  Map Mode
    Background selection.  

    00H - Horizontal           VRAM A10 = PPU A10
    01H - Vertical             VRAM A10 = PPU A11
    02H - Single-Screen        VRAM A10 = GND
    03H - Single-Screen        VRAM A10 = +5V    
    8*H - Mapper Control

    The high-order bit should specify whether VRAM is hard-wired or controlled
    by a memory manager (mapper).
   
7.  Cartridge Type
    The cartridge configuration.
   
    *0H - ROM
    *1H - ROM + RAM
    *2H - ROM + RAM + Battery
    *3H - ROM + Battery

    1*H - C*ROM
    2*H - U*ROM
    3*H - B*ROM
    4*H - G*ROM
    5*H - A*ROM
    6*H - D*ROM (Namcot 108)
    7*H - S*ROM (MMC1)
    8*H - P*ROM (MMC2)
    9*H - T*ROM (MMC3)
    A*H - F*ROM (MMC4)
    B*H - E*ROM (MMC5)
    C*H - H*ROM (MMC6)
    D*H - J*ROM (Sunsoft FME-7)
    E*H - Custom (see mappers)
    F*H - Other

8.  ROM Size
    The Program and Character ROM size. 
     
    PRG   Size                      CHR   Size
    *3H - 64K Bit                   3*H - 64K Bit
    *4H - 128K Bit                  4*H - 128K Bit
    *5H - 256K Bit                  5*H - 256K Bit
    *6H - 512K Bit                  6*H - 512K Bit
    *7H - 1M Bit                    7*H - 1M Bit
    *8H - 2M Bit                    8*H - 2M Bit
    *9H - 4M Bit                    9*H - 4M Bit
                             
                                    0*H - CHRRAM
                             
9.  RAM Size
    The RAM size as described by the table below. If RAM is not installed,
    store 00H

    WRAM-0                          WRAM-1
    *0H - No RAM                    0*H - No RAM
    *1H - 16K Bit                   1*H - 16K Bit
    *3H - 64K Bit                   3*H - 64K Bit
    *5H - 256K Bit                  5*H - 256K Bit

10. Destination Code
    The region code as described by the table below.
    
    PRG  CHR   Destination          Code
    *0H  0*H   Japan                (see licensee codes)
    *1H  1*H   North America        NES
    *2H  2*H   Europe               PAL
    *3H  3*H   Scandinavia          SCN
    *4H  4*H   Sweden               SWE
    *6H  6*H   France               FRA
    *7H  7*H   Holland              HOL
    *8H  8*H   Spain                ESP
    *9H  9*H   Germany              FRG
    *AH  A*H   Italy                ITA
    
11. Licensee Code
    The Licensee code as assigned by Nintendo. If Licensee code 33H is used
    Maker Code and Game Code should contain valid data.

12. Mask ROM Version
    The version number of the Program and Character mask ROM.

15. Check sum (PRG)
    The Program ROM checksum.

16. Check Sum (CHR)
    The Character ROM checksum.


Production Board 
-----------------
This information is valid for boards produced by Nintendo. 

Sub-Number is used in conjunction with Cartridge Type to identify the
production board. The 5 low-order bits are used to identify the second
character (sub-Char). The 3 high-order bits the third character 
(special-Char). 

If sub-Char is 00H, special-Char should be ignored.
 
         sub-Char   special-Char
    00H     N/A         N/A
    01H     'A'         '1'
    02H     'B'         '2'
    03H     'C'         '3'
    04H     'D'         'S'
    05H     'E'         
    ...                 
    ...                 
    ...
    18H     'X'
    19H     'Y'
    1AH     'Z'      


Example 1:
  Cartridge Type = 92H (T*ROM)
  Sub-Number = 0BH ('K')
  Board = TKROM

Example 2:
  Cartridge Type = 20H (U*ROM)
  Sub-Number = 2EH ('N', '1')
  Board = UN1ROM


Other Cartridge Type
--------------------
The following memory mappers are defined by Cartridge Type Sub-Number.
 
  01H  Famicom Network System
  02H  TV-NET


Licensee Codes
--------------

  01H  HVC - Nintendo   
  08H  CAP - Capcom
  09H  GAM - Hot-B
  0AH      - Jaleco 
  0BH  CDS - Coconuts
  18H  HFC - Hudson Soft
  21H  TEC - Tokai Engineering (Sunsoft)
  28H  KTB - Kotobuki System
  29H  KKS - SETA
  35H  HCT - Hector
  49H  TIX - Tamtex (Irem)  
  4AH  GAT - Gakken
  85H  GOI - GO.1
  86H  TIM - Tokuma Shoten Intermedia
  8BH  BPS - Bullet-Proof Software
  8CH  VIC - Vic Tokai
  8EH  CTS - Character Soft
  8FH  IMX - I'Max
  95H  VAR - Varie
  96H  YZW - Yonezawa
  99H  PAC - Pack-in-video
  9AH  NBF - Nichibutsu
  9BH  TCF - Tecmo
  9CH  IMA - Imagineer
  9EH  FAC - Face
  A2H  SCO - Scorpion Soft
  A4H  KDS - Konami
  A5H  KAC - KAC
  A6H  KWD - Kawada
  A7H  TFC - Takara
  A8H  ROY - Royal
  A9H  TJC - Technos
  AAH  VFR - Victor
  ABH  HSS - Hi-Score Software
  ACH  TDF - Toei
  ADH  THF - Toho
  AEH  TSS - TSS
  AFH      - Namco
  B1H  HSP - ASCII
  B2H  BAN - Bandai
  B3H  SFC - Soft Pro
  B4H  EFC - Enix
  B6H  HAL - HAL
  B7H  SFX - SNK
  B9H  PHF - Pony Canyon
  BAH  CBF - Culture Brain
  BBH      - Sunsoft 
  BCH  TFS - Toemiland (Toshiba EMI)
  BDH  CBS - CBS/Sony Group
  BFH  SAC - Sammy
  C0H      - Taito
  C2H  KSC - Kemco-Seika
  C3H  SQF - SQUARE
  C4H  GTS - Tokuma Soft
  C5H  DFC - Data East
  C6H  TKS - Tokyo Shoseki/Tonkin House
  C7H  ECF - East Cube
  C8H  KOE - KOEI
  C9H  UPL - UPL
  CAH  KDS - Konami (Ultra Games/Palcom)
  CBH  VAP - Vap
  CCH  USE - USE
  CDH  MDC - Meldac
  CEH  PNF - Pony Canyon
  CFH  ANG - Angel
  D0H  DTF - Disco/Taito
  D1H  SFL - Sofel
  D2H  BTC - Bothtec (Quest)
  D3H  SEI - Sigma Enterprises
  D4H  ASK - ASK Kodansha
  D5H  KYG - Kyugo Boueki
  D6H  NAX - Naxat Soft
  D8H  STE - Status (Capcom)
  D9H  BAP - Banpresto
  DAH  TOM - Tomy
  DBH  HIR - Hiro
  DDH  NCS - NCS
  DEH  HUM - Human
  DFH  ALT - Altron
  E0H  DCE - K.K.DCE
  E1H  TCC - Towa Chiki
  E2H  SHI - Shinsei/Yutaka
  E3H  VRE - Varie
  E5H  EPO - Epoch
  E7H  ATH - Athena
  E8H  ASM - Asmik
  E9H  NAT - Natsume
  EAH  KIN - King Records
  EBH  ATL - Atlus
  ECH  ESF - Epic/Sony Records
  EDH  PIX - Pixel
  EEH  IGS - IGS
  EFH  FMI - Fujimic
  F0H  WAV - A-Wave
  ???  DBF - dB-SOFT
  ???  TOA - ToaPlan
  ???  NMK - NMK (Nihon Micom Kaihatsu)
  ???  RES - Rix Soft
  ???  VIS - Visco
  ???  MAM - M&M
  ???  TKR - Takeru
  ???  SAN - Sanritsu
  ???  IPC - Jingukan
  ???  NFC - Nihon Game


Custom Mappers
--------------
The following memory mappers are defined by Cartridge Type Sub-Number.

  10H  Namcot 108
  11H  Namcot 163
  12H  Namcot 175
  13H  Namcot 340
  20H  Jaleco JF-11
  21H  Jaleco JF-13
  22H  Jaleco JF-16
  23H  Jaleco JF-17
  24H  Jaleco JF-19
  25H  Jaleco SS88006
  30H  Taito X1-005
  31H  Taito TC0190
  32H  Taito X1-017
  33H  Taito TC0350
  34H  Taito TC0690
  40H  Konami VRC
  41H  Konami VRC II
  42H  Konami VRC III
  43H  Konami VRC IV
  44H  Konami VRC V
  45H  Konami VRC VI
  46H  Konami VRC VII
  50H  Irem TAM-S1
  51H  Irem IF-09
  52H  Irem IF-12
  53H  Irem G-101
  54H  Irem H3001
  60H  Sunsoft-1 (C)
  61H  Sunsoft-1 (P)
  62H  Sunsoft-2
  63H  Sunsoft-3
  64H  Sunsoft-4
  65H  Sunsoft-5
  66H  Sunsoft FME-7
  70H  Bandai FCG-X
  71H  Bandai LZ93D50
  72H  Bandai LZ93D50 (Jump-2)
  73H  Bandai Datach 
  74H  Bandai OekaKids
  80H  Color Dreams
  81H  Tengen Rambo-1
  82H  Camerica BF9093
  83H  Camerica BF9096
  84H  Camerica BF9097  
  F0H  74*139/74
  F1H  74*161/32
  F2H  74*161/138
  F3H  74*161/161/32
  F4H  74*174/138


Special Version is used to differentiate between mapping variations.
For Standard mapping store 00H.

Namcot 108
----------

01H - Dragon Buster
02H - Megami Tensei
03H - Gauntlet
04H - Devil Man / Dragon Spirit / Mahjong 3 / Quinty


Konami VRC II
-------------

00H - Mapping A (A1:A0)
01H - Mapping B (A0:A1)
02H - Mapping A (A0:A1)


Konami VRC IV
-------------

00H - A0:A1
01H - A3:A2
02H - A2:A3
03H - A2:A1
04H - A7:A6


Konami VRC VI
-------------

00H - A1=A1, A0=A0
01H - A1=A0, A0=A1


Konami VRC VII
--------------

00H - A0=A4
01H - A0=A3


Taito TC0190
------------

Special Version: 00H

                 ----_----
      CPU D0 <> |01     40| -- VCC
      CPU D1 <> |02     39| <- CPU R/W
      CPU D2 <> |03     38| <- CPU /CE
      CPU D3 <> |04     37| <- M2
      CPU D4 <> |05     36| -- NC
      CPU D5 <> |06     35| -- NC
      CPU D6 <> |07     34| <- PPU A10
      CPU D7 <> |08     33| <- PPU A11
     PRG A13 <- |09     32| <- PPU A12  
     PRG A14 <- |10     31| -- GND
     PRG A15 <- |11     30| -> VRAM A10
     PRG A16 <- |12     29| -> CHR A10
     PRG A17 <- |13     28| -> CHR A11
     PRG A18 <- |14     27| -> CHR A12  
      CPU A0 -> |15     26| -> CHR A13  
      CPU A1 -> |16     25| -> CHR A14  
     CPU A13 -> |17     24| -> CHR A15  
     CPU A14 -> |18     23| -> CHR A16  
     PRG /CE <- |19     22| -> CHR A17  
         GND -- |20     21| -- NC
                 ---------

Special Version: 01H (PAL16R4)

     PRG A14 <- |10     31| -- GND
     PRG A15 <- |11     30| -- NC 
     PRG A16 <- |12     29| -> CHR A10  


Taito TC0350
------------

Special Version: 00H

                 ----_----
         GND -- |01     48| -- VCC
     PRG A18 <- |02     47| <- M2
     PRG A16 <- |03     46| -> PRG A14
     PRG A17 <- |04     45| -> PRG A13
     PRG A15 <- |05     44| -> PRG /CE
     CPU A13 -> |06     43| <> CPU D7
     CPU A14 -> |07     42| <> CPU D6
      CPU A1 -> |08     41| <> CPU D5
      CPU A0 -> |09     40| <> CPU D4
      CPU D0 <> |10     39| <> CPU D3
      CPU D1 <> |11     38| -> CHR /OE
      CPU D2 <> |12     37| -> CHR A17
     CPU /CE -> |13     36| -> CHR A14
     CPU R/W -> |14     35| -> CHR A13
         IRQ <- |15     34| <- PPU A8
     PPU /RD -> |16     33| <- PPU A9
     CHR A16 <- |17     32| <- PPU A10
     CHR A15 <- |18     31| -> CHR A11
     CHR A12 <- |19     30| <- PPU A11
      PPU A7 -> |20     29| -> CHR A10*
      PPU A6 -> |21     28| <- PPU A12
      PPU A5 -> |22     27| -> CHR /RD
      PPU A4 -> |23     26| <- PPU A13
         GND -- |24     25| -- NC
                 ---------

* Pin 29 is also connected to VRAM A10.


Taito TC0690
------------

Special Version: 00H

01 -- NC            20 -- NC            33 -- NC            52 -- NC
02 -- NC            21 -> IRQ           34 -- NC            53 <> CPU D5
03 -> CHR A15       22 <- CPU /CE       35 -> PRG A14       54 <> CPU D1
04 <- PPU /RD       23 -> PRG /CE       36 -- NC            55 <> CPU D4
05 -- NC            24 <- CPU R/W       37 <- CPU A13       56 <> CPU D2
06 -> CHR A10       25 -- Vcc           38 -> PRG A17       57 -- Vcc
07 <- PPU A12*      26 -> PRG A15       39 -- NC            58 <> CPU D3
08 <- PPU A11       27 -- GND           40 <- M2            59 -- GND
09 -- Vcc           28 -> PRG A13       41 -- Vcc           60 -- NC
10 <- PPU A10       29 <- CPU A14       42 -> CHR /OE       61 -> CHR A11
11 -- GND           30 -> PRG A16       43 -- GND           62 -> CHR A16
12 -> CHR A13       31 -- NC            44 <> CPU D7        63 -- NC
13 <- PPU A13*      32 -- NC            45 <- CPU A0        64 -- NC
14 -> CHR A14                           46 <> CPU D6
15 -> CHR A12                           47 <- CPU A1
16 -> VRAM A10                          48 <> CPU D0
17 -> CHR A17                           49 -- NC
18 -- NC                                50 -- NC
19 -- NC                                51 -- NC

* Latched (74LS157) 


Taito X1-005
------------

Special Version: 00H

                 ----_----
          NC -- |01     48| -- VCC
          M2 -> |02     47| -> PRG A17
     CPU A12 -> |03     46| -> PRG A15
     CPU A13 -> |04     45| -> PRG A14
     CPU A14 -> |05     44| -> PRG A13
      CPU A6 -> |06     43| <- CPU A8
      CPU A5 -> |07     42| <- CPU A9
      CPU A4 -> |08     41| <- CPU A11
      CPU A3 -> |09     40| -> PRG A16
      CPU A2 -> |10     39| <- CPU A10
      CPU A1 -> |11     38| <- CPU /CE
      CPU A0 -> |12     37| <> CPU D7
      CPU D0 <> |13     36| <> CPU D6
      CPU D1 <> |14     35| <> CPU D5
      CPU D2 <> |15     34| <> CPU D4
     CPU R/W -> |16     33| <> CPU D3
     CHR A17 <- |17     32| -- NC
         GND -- |18     31| -> VRAM A10
     CHR A15 <- |19     30| -> CHR A14
     CHR A12 <- |20     29| -> CHR A13
     PPU A10 -> |21     28| -> CHR A11
     PPU A11 -> |22     27| -> CHR A16
     PPU A12 -> |23     26| -> CHR A10
         GND -- |24     25| -- NC
                 ---------

Special Version: 01H

     CPU R/W -> |16     33| <> CPU D3
    VRAM A10 <- |17     32| -- NC
         GND -- |18     31| -- NC
     CHR A15 <- |19     30| -> CHR A14


Bandai LZ93D50
--------------

Special Version: 01H (X24C01P)
Special Version: 02H (X24C02P)


Sunsoft 3
---------

Special Version: 00H

                 ----_----
         GND -- |01     42| -- VCC
          M2 -> |02     41| -- NC
     CPU A11 -> |03     40| <> CPU D7
     CPU A12 -> |04     39| <> CPU D6
     CPU A13 -> |05     38| <> CPU D5
     CPU A14 -> |06     37| <> CPU D4
     CPU /CE -> |07     36| <> CPU D3
     CPU R/W -> |08     35| <> CPU D2
     PRG /CE <- |09     34| <> CPU D1
    VRAM A10 <- |10     33| <> CPU D0
     CHR /RD <- |11     32| -- NC
     CHR A10 <- |12     31| -- NC
     PPU A11 -> |13     30| <- PPU A13
     PPU A12 -> |14     29| <- PPU /RD
     CHR A16 <- |15     28| -> IRQ
     CHR A15 <- |16     27| -> PRG A14
     CHR A14 <- |17     26| -> PRG A15
     CHR A13 <- |18     25| -> PRG A16
     CHR A12 <- |19     24| -> PRG A17
     CHR A11 <- |20     23| -> PRG /A17
         GND -- |21     22| -> PRG A18
                 ---------


Last updated 12th January 2014