NROM
| Company | Nintendo, others |
| Boards | NROM, HROM*, RROM, RTROM, SROM, STROM |
| PRG ROM capacity | 16K or 32K |
| PRG ROM window | n/a |
| PRG RAM capacity | 2K or 4K in Family BASIC only |
| PRG RAM window | n/a |
| CHR capacity | 8K |
| CHR window | n/a |
| Nametable arrangement | Fixed H or V, controlled by solder pads (*V only) |
| Bus conflicts | Yes |
| IRQ | No |
| Audio | No |
| iNES mappers | 000 |
The generic designation NROM refers to the Nintendo cartridge boards NES-NROM-128, NES-NROM-256, their HVC counterparts, and clone boards. The iNES format assigns mapper 0 to NROM.
The suffixes 128 and 256 refer to kilobits by Nintendo's own designation; not kilobytes (as is the case with UNROM 512, for example).
Although mapper 0 does not have any submappers, other fields in the NES 2.0 header may be used to specify the following:
- (Battery-backed) PRG-RAM size, for Family BASIC
- PRG-ROM size in exponent-multiplier form, for Galaxian
Banks
- CPU $6000-$7FFF: Unbanked PRG-RAM, mirrored as necessary to fill entire 8 KiB window, write protectable with an external switch. (Family BASIC only)
- CPU $8000-$BFFF: First 16 KiB of PRG-ROM.
- CPU $C000-$FFFF: Last 16 KiB of PRG-ROM (NROM-256) or mirror of $8000-$BFFF (NROM-128).
- PPU $0000-$1FFF: 8 KiB CHR-ROM.
All banks are fixed.
Solder pad config
- Vertical arrangement ("Horizontal mirroring") : 'H' disconnected, 'V' connected.
- Horizontal arrangement ("Vertical mirroring") : 'H' connected, 'V' disconnected.
Registers
None. This normally has no mapping capabilities whatsoever, so the presence of bus conflicts are irrelevant.
Nevertheless, tile animation can be done by swapping between pattern tables $0000 and $1000, using PPUCTRL bits 4-3 as a "poor man's CNROM".
Variants
These board variants do not affect emulation:
- RROM and SROM use different CHR-ROM pinouts.
- RTROM and STROM split the PRG-ROM into two 8KiB ROMs.
- HROM is an early variant without the solder pads - only the horizontal arrangement ("vertical mirroring") is available, as if the 'H' pad were selected.
A few cartridges require NES 2.0 features to accurately specify:
- Family BASIC contains 2KiB PRG-RAM (or 4KiB PRG-RAM for V3) accessible at $6000-$7FFF and decoded with a 74HC20, that is backed with 2 AA batteries. The cartridge is equipped with a back up switch that, when enabled, disables all access to PRG-RAM in order to prevent possible data corruption when the Famicom is turned on or off. Most emulators will map 8KiB of PRG-RAM to to $6000-$7FFF if the battery flag is set (for iNES compatibility) - the NES 2.0 PRG-RAM size field should be used to denote the exact size.
- Galaxian uses a smaller 8KiB PRG-ROM chip. iNES dumps of this game are therefore all overdumps. NES 2.0 is capable of specifying this size using the exponent-multiplier form.
Some unlicensed games and modern homebrew programs use mapper 0 with 8KiB of CHR-RAM, which would not be supported on official NROM PCBs without rewiring (BNROM may be a better option for reproduction boards). Most emulators will do the right thing with mapper 0 + CHR-RAM, however.
NROM-368 is a recent invention that allows addressing more PRG-ROM without bankswitching.