NES 2.0 Mapper 286

From NESdev Wiki
Jump to navigationJump to search

NES 2.0 Mapper 286 is used for Benshieng multicarts. Its UNIF mapper is BMC-BS-5. The hardware latches the address rather than the data bus bits.

Banks

  • CPU $8000-$9FFF: 8 KiB switchable PRG-ROM bank
  • CPU $A000-$BFFF: 8 KiB switchable PRG-ROM bank
  • CPU $C000-$DFFF: 8 KiB switchable PRG-ROM bank
  • CPU $E000-$FFFF: 8 KiB switchable PRG-ROM bank
  • PPU $0000-$07FF: 2 KiB switchable CHR-ROM bank
  • PPU $0800-$0FFF: 2 KiB switchable CHR-ROM bank
  • PPU $1000-$17FF: 2 KiB switchable CHR-ROM bank
  • PPU $1800-$1FFF: 2 KiB switchable CHR-ROM bank

Registers

CHR-ROM Select ($8000-$9FFF)

FEDC BA98 7654 3210
-------------------
100. RR.. .... BBBB
     ||        ++++- Select 8 KiB CHR-ROM bank number
     ||              in range selected by address bits 8-9
     ++------------- Select 8 KiB CHR-ROM bank
                     00: PPU $0000-$07FF
                     01: PPU $0800-$0FFF
                     10: PPU $1000-$17FF
                     11: PPU $1800-$1FFF

PRG-ROM Select ($A000-$BFFF)

The AND mask to which the PRG-ROM select responds is determined in bits 4-7 by a DIP switch.

FEDC BA98 7654 3210
-------------------
101. RR.. DDDD BBBB
     ||   |||| ++++- Select 8 KiB PRG-ROM bank number
     ||   ||||       in range selected by address bits 8-9
     ||   ++++------ AND mask from DIP switch
     ||              01: Setting #1
     ||              02: Setting #2
     ||              04: Setting #3
     ||              08: Setting #4
     ++------------- Select 8 KiB PRG-ROM bank
                     00: CPU $8000-$9FFF
                     01: CPU $A000-$BFFF
                     10: CPU $C000-$DFFF
                     11: CPU $E000-$FFFF

Notes

  • The initial PRG bank values are 0xF.
  • Mirroring is fixed to vertical.
  • The multicart menu code has a programming error: when pressing Up from the first position to move the selection to the last game, subsequent game selections launch the wrong game.