UxROM

From NESdev Wiki
Revision as of 09:30, 13 June 2009 by Banshaku (talk | contribs)
Jump to navigationJump to search

The generic designation UxROM refers to the Nintendo cartridge boards NES-UNROM, NES-UOROM, their HVC counterparts, and clone boards. The iNES format assigns mapper 2 to UxROM.

Overview

  • PRG ROM size: 128 KB for UNROM, 256 KB for UOROM (DIP-28/32 Nintendo pinout)
  • PRG ROM bank size: 16 KB
  • PRG RAM: None
  • CHR capacity: 8 KB RAM
  • CHR bank size: Not bankswitched
  • Nametable mirroring: Solder pads select vertical or horizontal mirroring
  • Subject to bus conflicts: Yes

Banks

  • CPU $8000-$BFFF: 16 KB switchable PRG ROM bank
  • CPU $C000-$FFFF: 16 KB PRG ROM bank, fixed to the last bank

Solder pad config

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

Registers

Bank select ($8000-$FFFF)

7  bit  0
---- ----
xxxx pPPP
     ||||
     ++++- Select 16 KB PRG ROM bank for CPU $8000-$BFFF
          (UNROM uses bits 2-0; UOROM uses bits 3-0)

Hardware

The UNROM and UOROM boards contain a 74HC161 binary counter used as a quad D latch (4-bit register) and a 74HC32 quad OR gate to make one bank always visible.

Variants

The mapper used in Codemasters games published by Camerica extends UxROM with CIC defeat circuitry.

In theory, it would be possible to implement the bank select register with a 74373/74374/74377/74573 octal D latch along with an additional 74LS32, allowing up to 4 megabytes of PRG ROM, but due to mask ROM cost in the NES era, no non-pirate NES cart used this much memory. Leaving out the additional 74LS32 would allow making a multicart.