UxROM: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(→‎Variants: we have an article about multicarts)
(→‎Variants: NES 2.0)
Line 55: Line 55:
The mapper used in Codemasters games published by [[Camerica]] extends UxROM with [[CIC]] defeat circuitry.
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 74*32, 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.
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 74*32, 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. The [[iNES]] format can't represent a ROM bigger than 2 MiB, so the biggest of these ROMs would have to be in [[NES 2.0]] format.


Another conceivable configuration leaves out the additional 74*32 and provides a separate fixed bank for each set of 16 banks in a way reminiscent of [[SUROM]]. For example, when bank 20 is swapped into $8000, bank 31 is swapped into $C000. As with SUROM, this configuration would be useful for making [[multicart]]s or other games with multiple distinct engines.
Another conceivable configuration leaves out the additional 74*32 and provides a separate fixed bank for each set of 16 banks in a way reminiscent of [[SUROM]]. For example, when bank 20 is swapped into $8000, bank 31 is swapped into $C000. As with SUROM, this configuration would be useful for making [[multicart]]s or other games with multiple distinct engines.

Revision as of 18:25, 6 February 2010

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.

      2A03 address bus     A15432 1098 7654 3210
                             |||| |||| |||| ||||
       ,---------------------'||| |||| |||| ||||
       | D3-D0-.      ,-------'|| |||| |||| ||||
       |       |    . |        || |||| |||| ||||
       | ,-----+--. |`+.       || |||| |||| ||||
       | |Register+-+0  `.     || |||| |||| ||||
       | `--------' |    |___  || |||| |||| ||||
       |       |    |    | ||| || |||| |||| ||||
       | R/W --'  7-+1  ,' ||| || |||| |||| ||||
       |            | ,'   ||| || |||| |||| ||||
       |            |'     ||| || |||| |||| ||||
       |                   ||| || |||| |||| ||||
      ,+-------------------+++-++-++++-++++-++++-.
      |EN                A1654 32 1098 7654 3210 |
      |         128 kilo by 8 bit ROM       D7-D0+-- to 2A03 data bus
      |                                          |
      `------------------------------------------'

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 74*32, 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. The iNES format can't represent a ROM bigger than 2 MiB, so the biggest of these ROMs would have to be in NES 2.0 format.

Another conceivable configuration leaves out the additional 74*32 and provides a separate fixed bank for each set of 16 banks in a way reminiscent of SUROM. For example, when bank 20 is swapped into $8000, bank 31 is swapped into $C000. As with SUROM, this configuration would be useful for making multicarts or other games with multiple distinct engines.

See also