AxROM

From NESdev Wiki
Jump to navigationJump to search

The generic designation AxROM refers to Nintendo cartridge boards NES-AMROM, NES-ANROM, NES-AN1ROM, NES-AOROM, their HVC counterparts, and clone boards. Most games developed by Rare Ltd. used an AxROM series board. The iNES format assigns mapper 7 to AxROM.

The following AxROM boards are known to exist:

Board PRG ROM Bus conflicts
AMROM 128 KB Yes
ANROM 128 KB No
AN1ROM 64 KB No
AOROM 128, 256 KB Yes (by default)


Overview

  • PRG ROM size: up to 256 KB
  • PRG ROM bank size: 32 KB
  • PRG RAM: None
  • CHR capacity: 8 KB RAM
  • CHR bank size: Not bankswitched
  • Nametable mirroring: Single-screen, mapper-selectable
  • Subject to bus conflicts: AMROM/AOROM only

Banks

  • CPU $8000-$FFFF: 32 KB switchable PRG ROM bank

Solder pad config

No solder pad config is needed on the AxROM board family.

Registers

Bank select ($8000-$FFFF)

7  bit  0
---- ----
xxxM xPPP
   |  |||
   |  +++- Select 32 KB PRG ROM bank for CPU $8000-$FFFF
   +------ Select 1 KB VRAM page for all 4 nametables

Hardware

The AxROM boards contain a 74HC161 binary counter used as a quad D latch (4-bit register). The ANROM and AN1ROM boards also contains a 74HC02 which is used to disable the PRG ROM during writes, thus avoiding bus conflicts.

Various notes

On the AOROM board, special mask ROMs with an additional positive CE on pin 2 (which is connected to PRG R/W) can be used to prevent bus conflicts without an additional chip. It seems that only double dare and wheel of fortune employ this trick noticeably--that is, if emulated with bus conflicts enabled, the games will glitch. Bootgod's database lacks quality coverage of the PCB backs for the AOROM games, so it is hard to determine yet which games may be wired this way.

It is likely that every retail AOROM game could be emulated correctly without emulating bus conflicts.

A few 128 KB games used AOROM instead of ANROM because this might sometimes be cheaper than a 74HC02 depending on production quantities.

Variants

The only difference between AMROM and BNROM is the mirroring configuration.

In theory, it would be possible to implement the bank select register with a 74HC377 octal D latch, allowing up to 512 kilobytes of PRG ROM, but no Rare game used this much memory.