GxROM: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (Disch != cuisine)
Line 51: Line 51:


== See also ==
== See also ==
*[http://www.romhacking.net/documents/362/ NES Mapper List] by Dish
*[http://www.romhacking.net/documents/362/ NES Mapper List] by Disch
*[http://nesdev.org/mappers.zip Comprehensive NES Mapper Document] by \Firebug\, information about mapper's initial state is inaccurate.
*[http://nesdev.org/mappers.zip Comprehensive NES Mapper Document] by \Firebug\, information about mapper's initial state is inaccurate.

Revision as of 21:34, 22 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.

See also