GxROM: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(idem)
Line 49: Line 49:


Theoretically the bank select register could be implemented with a [[74377|74HC377]] octal D latch, allowing up to 512 KB of PRG ROM and 128 KB of CHR ROM. There are a [[:Category:GNROM-like mappers|large number]] of other variants on GNROM, where the bits or the writeable address were moved around.
Theoretically the bank select register could be implemented with a [[74377|74HC377]] octal D latch, allowing up to 512 KB of PRG ROM and 128 KB of CHR ROM. There are a [[:Category:GNROM-like mappers|large number]] of other variants on GNROM, where the bits or the writeable address were moved around.
== Disch's Notes ==
  Here are Disch's original notes:
  ========================
  =  Mapper 066          =
  ========================
 
  aka
  --------------------------
  GxROM and compatible
 
 
  Example Games:
  --------------------------
  Doraemon
  Dragon Power
  Gumshoe
  Thunder & Lightning
  Super Mario Bros. + Duck Hunt
 
 
  Notes:
  ---------------------------
  I do not know whether or not this mapper suffers from bus conflicts.  Use caution!
 
  This mapper is INFAMOUS for having bad headers.  Probably 80% or more of these ROMs floating around out
  there have the wrong mirroring mode set in the header.
 
  Some games are marked as mapper 066 that are really [[INES Mapper 140|mapper 140]].  See mapper 140 for info.
 
 
  Registers:
  --------------------------
    $8000-FFFF:  [..PP ..CC]
      P = Selects 32k PRG @ $8000
      C = Selects 8k CHR @ $0000

Revision as of 11:57, 20 April 2015

The designation GxROM refers to Nintendo cartridge boards labeled NES-GNROM and NES-MHROM (and their HVC counterparts), which use discrete logic to provide up to four 32 KB banks of PRG ROM and up to four 8 KB banks of CHR ROM. The iNES format assigns mapper 66 to these boards.

Board Types

The following GxROM boards are known to exist:

Board PRG ROM CHR
GNROM 128 KB 32 KB ROM
MHROM 64 KB 16 / 32 KB ROM

Overview

  • PRG ROM size: Up to 128 KB
  • PRG ROM bank size: 32 KB
  • PRG RAM: None
  • CHR capacity: Up to 32 KB ROM
  • CHR bank size: 8 KB
  • Nametable mirroring: Solder pads select vertical or horizontal mirroring
  • Subject to bus conflicts: Yes

Banks

  • CPU $8000-$FFFF: 32 KB switchable PRG ROM bank
  • PPU $0000-$1FFF: 8 KB switchable CHR ROM bank

Registers

Bank select ($8000-$FFFF)

7  bit  0
---- ----
xxPP xxCC
  ||   ||
  ||   ++- Select 8 KB CHR ROM bank for PPU $0000-$1FFF
  ++------ Select 32 KB PRG ROM bank for CPU $8000-$FFFF

Bits 5 is not used on MHROM, which supports only 64 KB PRG.

Solder pad config

  • Horizontal mirroring : 'H' disconnected, 'V' connected.
  • Vertical mirroring : 'H' connected, 'V' disconnected.

Hardware

The GNROM board contains a 74HC161 binary counter used as a quad D latch (4-bit register) to select the current PRG and CHR banks. MHROM, on the other hand, was often a glop-top, as it was used for pack-in games, such as the Super Mario Bros./Duck Hunt multicart, and needed to be very inexpensive to produce in huge quantities.

Variants

Placing the bank register in $6000-$7FFF instead of $8000-$FFFF gives mapper 140. The Color Dreams board leaves the port at $8000-$FFFF, swaps the nibbles, expands CHR by two bits, and adds two bits for charge pump control.

Theoretically the bank select register could be implemented with a 74HC377 octal D latch, allowing up to 512 KB of PRG ROM and 128 KB of CHR ROM. There are a large number of other variants on GNROM, where the bits or the writeable address were moved around.