NES 2.0 Mapper 289

From Nesdev wiki
Jump to: navigation, search

NES 2.0 Mapper 289 is used for at least two multicarts designated in UNIF as BMC-60311C. They use 8 KiB of CHR-RAM instead of CHR-ROM.

Mode Register ($6000), write

Mask: probably $E001

7654 3210
---------
.... MLPP
     ||++- PRG Banking Mode
     ||     0: NROM-128: Same inner/outer 16 KiB bank at CPU $8000-$BFFF and $C000-$FFFF
     ||     1: NROM-256: 32 kiB bank at CPU $8000-$FFFF (Selected inner/outer bank SHR 1)
     ||     2: UNROM: Inner/outer bank at CPU $8000-BFFF, fixed inner bank 7 within outer bank at $C000-$FFFF
     ||     3: Unknown, not used by existing ROM images
     |+--- Disable latch at CPU $8000-$FFFF
     |      0: Latch enabled, provides inner 16 KiB bank
     |      1: Latch disabled, inner 16 KiB bank fixed at 0
     +---- Select nametable mirroring type
            0: Vertical
            1: Horizontal

The combined inner/outer bank is simply the inner bank, selected by the latch at $8000-$FFFF (or 0 if the latch is disabled) ORed with the outer bank selected by $6001, without any bit shifting.

Outer Bank Register ($6000), write

Mask: probably $E001

7654 3210
---------
PPPP PPPP
++++-++++- Select 16 KiB outer PRG-ROM bank

Inner Bank Register ($8000-$FFFF), write

Mask: $8000

7654 3210
---------
.... .PPP
      +++- Select 16 KiB inneer PRG-ROM bank