NES 2.0 Mapper 290: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Created page with "NES 2.0 Mapper 290 is used for HP10xx/HP20xx multicarts. Their mapper is a predecessor to FK23C, both in its register layout, and the fact that several mul...")
 
m (defaultsort)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
NES 2.0 Mapper 290 is used for HP10xx/HP20xx multicarts. Their mapper is a predecessor to [[INES Mapper 176|FK23C]], both in its register layout, and the fact that
{{DEFAULTSORT:290}}[[Category:Multicart mappers]]NES 2.0 Mapper 290 is used for the ''Asder 20-in-1'' multicart. Its UNIF board name is '''BMC-NTD-03'''.
several multicarts exist in versions for either mapper. Its UNIF board name is '''BMC-HPxx'''.


=Registers=
==Address latch==
==DIP Switch ($5000, read)==
Mask: Unknown
7654 3210
---------
.... ..DD
        ++- DIP Switch Setting
==Mode Register ($5000, write)==
Mask: $5003
 
7654 3210
---------
L... .MMM
|    +++- Select banking mode
|          0: MMC3: 256 KiB PRG, 256 KiB CHR
|          1: MMC3: 256 KiB PRG, 128 KiB CHR
|          2: MMC3: 128 KiB PRG, 256 KiB CHR
|          3: MMC3: 128 KiB PRG, 128 KiB CHR
|          4: NROM-128: 16 KiB PRG (mirrored at $8000 and $C000), 8 KiB CHR
|          5: NROM-256: 32 KiB PRG, 8 KiB CHR
|          6: CNROM: 32 KiB PRG, 16 KiB CHR
|          7: CNROM: 32 KiB PRG, 32 KiB CHR
+--------- 1= Lock, do not respond to further writes in the $5xxx range
In MMC3 modes, the final PRG/CHR bank number is the result of masking the MMC3 bank register content according to the specified size (128 or 256 KiB) and OR'ing with
the opposite-masked content of the PRG ($5001) and CHR ($5002) Base registers. In the CNROM modes, the inner bank comes from the CNROM Latch (one bit only in 16 KiB CHR mode,
two bits in 32 KiB CHR mode) OR'ed with the opposite-masked content of the CHR ($5002) Base register.
 
==PRG Base Register ($5001, write)==
Mask: $5003
7654 3210
---------
..PP PPPP
  ++-++++- Select 16 KiB PRG Base
 
==CHR Base Register ($5002, write)==
Mask: $5003
7654 3210
---------
.PPP PPPP
  +++-++++- Select 8 KiB CHR Base
 
==CNROM Latch ($8000-$FFFF, write)==
  Mask: $8000
  Mask: $8000
   
   
  7654 3210
  $8000: A~[1PPP PMCC Sp.. .CCC]
---------
            ||| |||| ||    |||
.... ..LL
            ||| ||++-------+++- Select 8 KiB CHR-ROM bank at PPU $0000-$1FFF
        ++- Select 8 KiB Inner CHR Bank in CNROM modes
            ||| ||  |+-------- Select 16 KiB PRG-ROM bank at CPU $8000/$C000 if S=1
            ||| ||  +--------- Select PRG-ROM bank size, 0=32 KiB, 1=16 KiB
==MMC3-compatible registers ($8000-$FFFF, write)==
            ||| |+------------- Select nametable mirroring, 0=vertical, 1=horizontal
Mask: $E001
            +++-+-------------- Select 32 KiB PRG-ROM bank at CPU $8000
$8000, $8001, $A000, $A001, $C000, $C001, $E000, $E001: As normal [[MMC3]].


=Notes=
==Notes==
* The description of CNROM mode is based on the FCEUX source code. None of the available ROM images actually use it; instead, the games on those multicarts that originally were CNROM have all been modified to directly modify the CHR Base register ($5002).
* The game ''Benico'' on that multicart has graphical glitches during attract mode on real hardware.

Latest revision as of 06:40, 26 May 2020

NES 2.0 Mapper 290 is used for the Asder 20-in-1 multicart. Its UNIF board name is BMC-NTD-03.

Address latch

Mask: $8000

$8000: A~[1PPP PMCC Sp.. .CCC]
           ||| |||| ||    |||
           ||| ||++-------+++- Select 8 KiB CHR-ROM bank at PPU $0000-$1FFF
           ||| ||   |+-------- Select 16 KiB PRG-ROM bank at CPU $8000/$C000 if S=1
           ||| ||   +--------- Select PRG-ROM bank size, 0=32 KiB, 1=16 KiB
           ||| |+------------- Select nametable mirroring, 0=vertical, 1=horizontal 
           +++-+-------------- Select 32 KiB PRG-ROM bank at CPU $8000

Notes

  • The game Benico on that multicart has graphical glitches during attract mode on real hardware.