INES Mapper 003

From NESdev Wiki
Jump to navigationJump to search


iNES Mapper 003 is used to designate the CNROM board, and similar boards used by Bandai, Panesian, Sachen and others, generalized to support up to 255 banks (2048 KiB) of CHR ROM.

The CNROM-368 extension was proposed, allowing 46 KiB PRG ROM.

Example games:

  • Solomon's Key
  • Arkanoid
  • Arkista's Ring
  • Bump 'n' Jump
  • Cybernoid

Overview

  • PRG ROM size: 16 KiB or 32 KiB
  • PRG ROM bank size: Not bankswitched
  • PRG RAM: None
  • CHR capacity: Up to 2048 KiB ROM
  • CHR bank size: 8 KiB
  • Nametable mirroring: Fixed vertical or horizontal mirroring
  • Subject to bus conflicts: Yes (CNROM), but not all compatible boards have bus conflicts.

Banks

  • PPU $0000-$1FFF: 8 KB switchable CHR ROM bank

Registers

Bank select ($8000-$FFFF)

7  bit  0
---- ----
CCCC CCCC
|||| ||||
++++-++++- Select 8 KB CHR ROM bank for PPU $0000-$1FFF

CNROM only implements the lowest 2 bits, capping it at 32 KiB CHR. Other boards may implement 4 or more bits for larger CHR.

Notes

The game Cybernoid seems to behave very strangely. It uses unprepared system RAM, and it is as if it actually relies on bus conflicts (AND written value with value read from address)! Supposedly this bug manifests by CHR corruptions when the music changes.

The game Colorful Dragon (Unl) (Sachen) relies on having no bus conflicts; it will bank the wrong CHR if bus conflicts are emulated.

References