AxROM

From NESdev Wiki
Revision as of 15:29, 16 March 2014 by Rainwarrior (talk | contribs) (→‎Variants: revising to explain what emulators might support, and what an octal latch truly supports)
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 Depends on +CE wiring


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. Some 128 KB games were made with AOROM to save the cost of a 74HC02. 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. The list of AxROM games in NesCartDB 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.

Variants

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

Some emulators allow bit 3 to be used to select up to 512 KB of PRG ROM for an oversized AxROM. In hardware this could be implemented by using an octal latch in place of the quad latch (74HC377), though an octal latch has 3 more bits that could be used to switch up to 4 MB of PRG ROM.

Disch's Notes

 Here are Disch's original notes:
 ========================
 =  Mapper 007          =
 ========================
 
 aka
 --------------------------
 AxROM
 
 
 Example Games:
 --------------------------
 Battletoads
 Time Lord
 Marble Madness
 
 
 Notes:
 ---------------------------
 AMROM and AOROM have bus conflicts, ANROM does not
 AMROM and ANROM are capped at 128k PRG
 AOROM is capped at 256k PRG
 
 There is no CHR swapping.  Every mapper 007 game I've ever seen has CHR-RAM.
 
 
 Registers (**BUS CONFLICTS** sometimes):
 --------------------------
   $8000-FFFF:  [...M .PPP]
     M = Mirroring:
         0 = 1ScA
         1 = 1ScB
 
     P = PRG Reg  (only 2 bits wide on AMROM/ANROM)
 
 
 PRG Setup:
 --------------------------
 
       $8000   $A000   $C000   $E000  
     +-------------------------------+
     |             $8000             |
     +-------------------------------+