NES 2.0 Mapper 274: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Created page with "201NES 2.0 Mapper 274 is used for ''90-in-1 Hwang Shinwei'' multicart. Its UNIF board name is '''BMC-80013-B'''. =Banks= * CPU $8000-$BFFF: Low...")
 
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Multicart mappers|201]]NES 2.0 Mapper 274 is used for ''90-in-1 Hwang Shinwei'' multicart. Its UNIF board name is '''BMC-80013-B'''.
[[Category:Multicart mappers|201]]'''NES 2.0 Mapper 274''' denotes the ''Cartridge Story'' series of multicarts from RCM Group. Its UNIF board name is '''BMC-80013-B'''.
* ''Cartridge Story'' (72-in-1)
* ''Cartridge Story II'' (80-in-1)
* ''Cartridge Story III'' (90-in-1, a.k.a. ''90-in-1 Hwang Shinwei'')
''Cartridge Story'' only contains a single main 2 MiB PRG-ROM chip; ''II'' and ''III'' both add an extra PRG-ROM chip.


=Banks=
=Banks=
* CPU $8000-$BFFF: Lower switchable 16 KiB PRG-ROM bank.
* CPU $8000-$BFFF: Switchable inner and outer PRG-ROM bank, main or extra PRG-ROM chip
* CPU $C000-$FFFF: Upper switchable 16 KiB PRG-ROM bank.
* CPU $C000-$FFFF: Fixed inner and switchable outer PRG-ROM, main PRG-ROM chip only
* PPU $0000-$1FFF: 8 KiB of CHR-RAM.
* PPU $0000-$1FFF: 8 KiB of CHR-RAM
 
There are two PRG-ROM chips. Either chip can be mapped into the lower PRG-ROM bank, determined by whether the outer bank number is written to the $A000-$BFFF range (chip #0) or $C000-$FFFF range (chip #1). The upper PRG-ROM bank always uses chip #0.


=Registers=
=Registers=
==Inner Bank and Mirroring ($8000-$9FFF, write)==
Mask: $E000
D~7654 3210
  ---------
  ...M BBBB
      | ++++- Select PRG A17..A14 if CPU A14=0
      +------ Select nametable mirroring
              0: Vertical
              1: Horizontal


==Inner Lower Bank and Mirroring ($8000-$9FFF)==
==Outer Bank and Chip Select ($A000-$FFFF, write)==
  Bit 7654 3210
  Mask: $E000
    ---------
    ...M BBBB
D~7654 3210  A~FEDC BA98 7654 3210
        | ++++- Select 16 KiB inner PRG-ROM bank at CPU $8000-$BFFF
  ---------    -------------------
        +------ Select nametable mirroring
  .OOO oooo    1C1. .... .... ....
                0: Vertical
    ||| ||||    +------------------ Select PRG-ROM Chip if CPU A14=0
                1: Horizontal
    ||| ||||                          0: Extra (default)
 
    ||| ||||                          1: Main
==Inner Upper Bank, Chip Select for Lower Bank and Common Outer Bank==
    ||| ++++- Select PRG A17..A14 if CPU A14=1
$A000-$BFFF: Select chip #0 for lower bank
    +++------ Select PRG A20..A18
$C000-$FFFF: Select chip #1 for lower bank
 
Bit 7654 3210
    ---------
    .OOO IIII
      ||| ++++- Select 16 KiB inner PRG-ROM bank at CPU $C000-$FFFF
      +++------ Select 256 KiB outer PRG-ROM bank at CPU $8000-$FFFF


=Notes=
Notes:
* If the ROM image is truncated to only contain the first chip's data, the 90-in-1 multicart becomes a 72-in-1 multicart.
* Since the extra PRG-ROM chip only has 16 KiB (Cartridge Story II)/64 KiB (Cartridge Story III), PRG A16-A20 are ineffective when C=1. Because this yields a PRG-ROM section of the NES 2.0 file that is not a power of two, emulators must mask them off explicitly.
* The main PRG-ROM chip is always selected when CPU A14=1.
* Because C is set to 0 upon reset, the cartridge will boot with the extra PRG-ROM chip mapped, if present.

Latest revision as of 09:37, 17 March 2020

NES 2.0 Mapper 274 denotes the Cartridge Story series of multicarts from RCM Group. Its UNIF board name is BMC-80013-B.

  • Cartridge Story (72-in-1)
  • Cartridge Story II (80-in-1)
  • Cartridge Story III (90-in-1, a.k.a. 90-in-1 Hwang Shinwei)

Cartridge Story only contains a single main 2 MiB PRG-ROM chip; II and III both add an extra PRG-ROM chip.

Banks

  • CPU $8000-$BFFF: Switchable inner and outer PRG-ROM bank, main or extra PRG-ROM chip
  • CPU $C000-$FFFF: Fixed inner and switchable outer PRG-ROM, main PRG-ROM chip only
  • PPU $0000-$1FFF: 8 KiB of CHR-RAM

Registers

Inner Bank and Mirroring ($8000-$9FFF, write)

Mask: $E000

D~7654 3210
  ---------
  ...M BBBB
     | ++++- Select PRG A17..A14 if CPU A14=0
     +------ Select nametable mirroring
             0: Vertical
             1: Horizontal

Outer Bank and Chip Select ($A000-$FFFF, write)

Mask: $E000

D~7654 3210  A~FEDC BA98 7654 3210
  ---------    -------------------
  .OOO oooo    1C1. .... .... ....
   ||| ||||     +------------------ Select PRG-ROM Chip if CPU A14=0
   ||| ||||                          0: Extra (default)
   ||| ||||                          1: Main
   ||| ++++- Select PRG A17..A14 if CPU A14=1
   +++------ Select PRG A20..A18

Notes:

  • Since the extra PRG-ROM chip only has 16 KiB (Cartridge Story II)/64 KiB (Cartridge Story III), PRG A16-A20 are ineffective when C=1. Because this yields a PRG-ROM section of the NES 2.0 file that is not a power of two, emulators must mask them off explicitly.
  • The main PRG-ROM chip is always selected when CPU A14=1.
  • Because C is set to 0 upon reset, the cartridge will boot with the extra PRG-ROM chip mapped, if present.