NES 2.0 Mapper 289: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (defaultsort)
(Apply Krzysiobal's findings)
Line 1: Line 1:
{{DEFAULTSORT:289}}[[Category:Multicart mappers]]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.
{{DEFAULTSORT:289}}[[Category:Multicart mappers]][[Category:Mappers with CHR RAM]]'''NES 2.0 Mapper 289''' is used for at least three multicarts designated in UNIF as '''BMC-60311C'''.
 
==Mode Register ($6000), write==
==Mode Register ($6000), write==
  Mask: probably $E001
  Mask: $E001
   
   
  7654 3210
  7654 3210
Line 8: Line 7:
  .... MLPP
  .... MLPP
       ||++- PRG Banking Mode
       ||++- PRG Banking Mode
       ||    0: NROM-128: Same inner/outer 16 KiB bank at CPU $8000-$BFFF and $C000-$FFFF
       ||    0: NROM-128: PRG A14-A16 from Outer Bank Register
       ||    1: NROM-256: 32 kiB bank at CPU $8000-$FFFF (Selected inner/outer bank SHR 1)
       ||    1: NROM-256: PRG A15-A16 from Outer Bank Register, PRG A14=CPU A14
       ||    2: UNROM: Inner/outer bank at CPU $8000-BFFF, fixed inner bank 7 within outer bank at $C000-$FFFF
       ||    2: UNROM: PRG A14-A16 from Data Latch when CPU A14=0, and 111b when CPU A14=1
       ||    3: Unknown, not used by existing ROM images
       ||    3: PRG A14-16=1 regardless of CPU A14
       |+--- Disable latch at CPU $8000-$FFFF
       |+--- Protect CHR-RAM
       |      0: Latch enabled, provides inner 16 KiB bank
       |      0: CHR-RAM writable
       |      1: Latch disabled, inner 16 KiB bank fixed at 0
       |      1: CHR-RAM write-protected
       +---- Select nametable mirroring type
       +---- Select nametable mirroring type
             0: Vertical
             0: Vertical
             1: Horizontal
             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==
==Outer Bank Register ($6000), write==
  Mask: probably $E001
  Mask: $E001
   
   
  7654 3210
  7654 3210
  ---------
  ---------
  PPPP PPPP
  .QQQ QPPp
++++-++++- Select 16 KiB outer PRG-ROM bank
  ||| |||+- PRG A14 in NROM-128 PRG Banking Mode
  ||| |++-- PRG A16..15 in NROM-128/-256 Banking Modes
  +++-+---- PRG A20..A17


==Inner Bank Register ($8000-$FFFF), write==
==Data Latch ($8000-$FFFF), write==
  Mask: $8000
  Mask: $8000
   
   
Line 35: Line 34:
  ---------
  ---------
  .... .PPP
  .... .PPP
       +++- Select 16 KiB inneer PRG-ROM bank
       +++- PRG A16..14 in UNROM PRG Banking Mode when CPU A14=0

Revision as of 07:24, 28 May 2021

NES 2.0 Mapper 289 is used for at least three multicarts designated in UNIF as BMC-60311C.

Mode Register ($6000), write

Mask: $E001

7654 3210
---------
.... MLPP
     ||++- PRG Banking Mode
     ||     0: NROM-128: PRG A14-A16 from Outer Bank Register
     ||     1: NROM-256: PRG A15-A16 from Outer Bank Register, PRG A14=CPU A14
     ||     2: UNROM: PRG A14-A16 from Data Latch when CPU A14=0, and 111b when CPU A14=1
     ||     3: PRG A14-16=1 regardless of CPU A14
     |+--- Protect CHR-RAM
     |      0: CHR-RAM writable
     |      1: CHR-RAM write-protected
     +---- Select nametable mirroring type
            0: Vertical
            1: Horizontal

Outer Bank Register ($6000), write

Mask: $E001

7654 3210
---------
.QQQ QPPp
 ||| |||+- PRG A14 in NROM-128 PRG Banking Mode
 ||| |++-- PRG A16..15 in NROM-128/-256 Banking Modes
 +++-+---- PRG A20..A17

Data Latch ($8000-$FFFF), write

Mask: $8000

7654 3210
---------
.... .PPP
      +++- PRG A16..14 in UNROM PRG Banking Mode when CPU A14=0