GxROM: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (→‎Hardware: did you know you can transwiki to google? i didn't.)
(move Disch's notes from iNES Mapper 066, also add cat:nescartdb, also link to category explicitly)
Line 1: Line 1:
[[Category:GNROM-like mappers]]
[[Category:GNROM-like mappers]][[Category:in NesCartDB]]
The designation '''GxROM''' refers to Nintendo cartridge boards labeled NES-GNROM and NES-MHROM (and their [[Famicom|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 [[iNES Mapper 066|mapper 66]] to these boards.
The designation '''GxROM''' refers to Nintendo cartridge boards labeled NES-GNROM and NES-MHROM (and their [[Famicom|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 [[iNES Mapper 066|mapper 66]] to these boards.


Line 43: Line 43:


== Variants ==
== Variants ==
In theory, it would be possible to implement the bank select register with a [[74377|74HC377]] octal D latch, allowing up to 512 KB of PRG ROM and 128 KB of CHR ROM. The [[Color Dreams]] board, similar in function to GNROM, expanded CHR in much the same way. Two Famicom-only mappers — [[INES Mapper 070|70]] and [[INES Mapper 152|152]] — combine UNROM with CNROM in an analogous fashion. Official licensed games, on the other hand, used ASIC mappers instead for smaller bank sizes.
In theory, it would be possible to implement the bank select register with a [[74377|74HC377]] octal D latch, allowing up to 512 KB of PRG ROM and 128 KB of CHR ROM. The [[Color Dreams]] board, similar in function to GNROM, expanded CHR in much the same way. There are a [[:Category:GNROM-like mappers|large number]] of other variants on GNROM, where the bits or the writeable address were moved around. Most official licensed games, however, used ASIC mappers instead for smaller bank sizes.


Placing the bank register in $6000-$7FFF instead of $8000-$FFFF gives [[INES Mapper 140|mapper 140]].
Placing the bank register in $6000-$7FFF instead of $8000-$FFFF gives [[INES Mapper 140|mapper 140]].
== 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 19:56, 17 October 2012

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.

The following GxROM boards are known to exist:

Board PRG ROM CHR
GNROM 128 KB 8,16,32 KB ROM
MHROM 64 KB 8,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

In theory, it would be possible to implement the bank select register with a 74HC377 octal D latch, allowing up to 512 KB of PRG ROM and 128 KB of CHR ROM. The Color Dreams board, similar in function to GNROM, expanded CHR in much the same way. There are a large number of other variants on GNROM, where the bits or the writeable address were moved around. Most official licensed games, however, used ASIC mappers instead for smaller bank sizes.

Placing the bank register in $6000-$7FFF instead of $8000-$FFFF gives mapper 140.

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 mapper 140.  See mapper 140 for info.
 
 
 Registers:
 --------------------------
   $8000-FFFF:  [..PP ..CC]
     P = Selects 32k PRG @ $8000
     C = Selects 8k CHR @ $0000