NES 2.0 Mapper 391

From NESdev Wiki
Jump to navigationJump to search

NES 2.0 Mapper 391 denotes the MMC3-based BS-110 PCB. It is a variation of INES Mapper 052 that adds support for GNROM-like PRG bankswitching. Note that the UNIF MAPR BMC-BS-110 is incorrectly-named and refers to NES 2.0 Mapper 444 instead.

Outer Bank Register ($6000-$7FFF, write)

Mask: $E000

A~FEDC BA98 7654 3210  D~7654 3210
  -------------------    ---------
  011. ...C .... ....    LcGC pNPP
          |              |||| ||++- PRG A17..A18
          |              |||| |+--- NROM mode type if G=1
          |              |||| |      0=NROM-128
          |              |||| |      1=NROM-256
          |              |||| +---- Outer PRG bank size
          |              ||||        0=256 KiB (PRG A17 from MMC3)
          |              ||||        1=128 KiB (PRG A17 from outer bank register)
          |              |||+------ CHR A17
          |              ||+------- PRG banking mode
          |              ||          0=MMC3 PRG banking mode
          |              ||          1=GNROM-like PRG banking mode
          |              |+-------- Outer CHR bank size
          |              |           0=256 KiB (CHR A17 from MMC3)           |
          |              |           1=128 KiB (CHR A17 from outer bank register)
          |              +--------- 1=Lock outer bank register
          +------------------------ CHR A18

GNROM mode means that:

  • the MMC3's CPU A14 input is held low, so MMC3 registers 6 and 7 apply to both $8000/$A000 and $C000/$E000,
  • in NROM-256 mode, PRG A14 is additionally replaced with CPU A14.

As it uses the MMC3 clones's WRAM interface, writing to the outer bank register requires enabling and not write-protecting WRAM in the MMC's $A001 register.

MMC3-compatible registers ($8000-$FFFF)

Mask: $E001

See MMC3.