INES Mapper 052: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (→‎See also: just gives credits to FARID where it's due :))
(Add AB-134 info)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:iNES Mappers|052]][[Category:MMC3-like mappers|052]][[Category:Multicart mappers|052]]
{{DEFAULTSORT:052}}[[Category:iNES Mappers]][[Category:MMC3-like mappers]][[Category:Multicart mappers]]'''iNES Mapper 052''' denotes the '''Realtec 8213''' and similar [[MMC3]]-based multicart circuit boards.
==Outer Bank Register ($6000-$7FFF, write)==
D~[LTCc SBPp]
    |||| ||++-- PRG A18..A17
    |||| |+---- PRG/CHR A19
    |||| +----- PRG A17 mode: 0=from MMC3, 1=from p
    ||++------- CHR A18..A17
    |+--------- CHR A17 mode: 0=from MMC3, 1=from c
    +---------- 1=Lock Outer Bank register until next reset
Value on reset: $00
The MMC3's WRAM interface must be enabled and writeable in [[MMC3#PRG RAM protect ($A001-$BFFF, odd)|MMC3 register $A001]]. The Outer Bank Register overlaps any actual PRG RAM that may be present.


[[iNES Mapper 052]], like several other multicart mappers, supplements the [[MMC3]]'s RAM with a single register for switching between unmodified MMC3-compatible games.
==Mixed CHR ROM/CHR RAM variants==
Nestopia Plus! has defined '''Submapper 13''' to denote a PCB variant with 512 KiB of each PRG ROM and CHR ROM that can switch between regular CHR ROM and 8 KiB unbanked CHR RAM. CHR RAM is selected when PRG A17 and PRG A18 are both =1.


  Registers:
Nestopia Plus! further uses Submapper 13 to denote the ''(AB-128) Well 8-in-1'' multicart with 1 MiB of each PRG ROM and CHR ROM, which is incompatible to the above definition, and which is hereby reassigned to '''Submapper 14'''. Its actual PCB name is '''AB892''', and its Outer Bank Register has the following form:
  ---------------------------
 
    $6000-7FFF:  [WMCC SBPP]  Multicart reg
      P = PRG Block (bits 1,0)
          = PRG A18 and A17
      B = CHR+PRG Block Select bit (PRG and CHR bit 2)
          = CHR and PRG A19
      S = PRG Block size (0=256k  1=128k)
          = 0=PRG A17 comes from MMC3  1=A17 comes from this register
      C = CHR Block (bits 1,0)
          = CHR A18 and A17
      M = CHR Block size (0=256k  1=128k)
          = 0=CHR A17 comes from MMC3  1=A17 comes from this register
      W = 1=Disable multicart register and enable RAM
          0=allow further writes to multicart register
 
    $8000-FFFF:  Same as MMC3 for selected block
 
  This register can only be written to if PRG-RAM is enabled and writable (see $A001).
 
  PRG Setup:
  ---------------------------
 
    'S'   PRG-AND    PRG-OR
    ------------------------
      0      $1F    %BP0 0000
      1      $0F    %BPP 0000
 
  'B' and 'P' bits make a 3-bit value used as PRG-OR (left shift 4). When 'S' is clear, the low bit of that
  value is forced to 0.
 
  PRG swapping behaves just like a normal MMC3 within this selected block
 
  CHR Setup:
  ---------------------------
 
    'M'   CHR-AND    CHR-OR
    ------------------------
      0      $FF    %BC 0000 0000
      1      $7F    %BC C000 0000
 
  'B' and 'C' bits make a 3-bit value used as CHR-OR (left shift 7).  When 'M' is clear, the low bit of
  that value is forced to 0.
 
  CHR swapping behaves just like a normal MMC3 within this selected block
 
  Powerup and Reset:
  ---------------------------
 
  $6000 set to 0 on reset and powerup.


The multicart register here can be implemented using two ICs: a 74273 (8 bit latch with asynchronous clear) and a 74153 (used as two independent one-of-two multiplexers). The 74273's /CLEAR input should be connected to something like
D~[LTRc SBBp]
    |||| |||+-- PRG A18..A17
    |||| |++--- PRG/CHR A19..A18
    |||| +----- PRG A17 mode: 0=from MMC3, 1=from p
    |||+------- CHR A17
    ||+-------- 0=CHR-ROM, 1=CHR RAM
    |+--------- CHR A17 mode: 0=from MMC3, 1=from c
    +---------- 1=Lock Outer Bank register until next reset


  CPU M2 or CPU A0 --|>|--+-+-- /CLEAR
At least one cart (AB-134) re-uses this PCB but leaves the CHR RAM spot unpopulated, still using the combined bit for PRG/CHR A18, but rendering the "R" bit 5 meaningless. The correct NES 2.0 header for this would be submapper 14 but with zero CHR RAM.
                          | |
                          R C
                          | |
                        gnd gnd
* Diode: 1N914 or any other small signal diode
* Resistor: approximately 10kΩ
* Capacitor: approximately 1nF


== See also ==
== See also ==
* [http://nesdev.org/Mari7in1.txt "Mario Party" 7 in 1] by The Mad Dumper.
* [http://nesdev.org/Mari7in1.txt "Mario Party" 7 in 1] by The Mad Dumper.
* [http://forums.nesdev.org/viewtopic.php?f=9&t=10703 Forum thread] about mapper 052 by FARID
* [http://forums.nesdev.org/viewtopic.php?f=9&t=10703 Forum thread] about mapper 052 by FARID

Latest revision as of 18:15, 30 November 2023

iNES Mapper 052 denotes the Realtec 8213 and similar MMC3-based multicart circuit boards.

Outer Bank Register ($6000-$7FFF, write)

D~[LTCc SBPp]
   |||| ||++-- PRG A18..A17
   |||| |+---- PRG/CHR A19
   |||| +----- PRG A17 mode: 0=from MMC3, 1=from p
   ||++------- CHR A18..A17
   |+--------- CHR A17 mode: 0=from MMC3, 1=from c
   +---------- 1=Lock Outer Bank register until next reset
Value on reset: $00

The MMC3's WRAM interface must be enabled and writeable in MMC3 register $A001. The Outer Bank Register overlaps any actual PRG RAM that may be present.

Mixed CHR ROM/CHR RAM variants

Nestopia Plus! has defined Submapper 13 to denote a PCB variant with 512 KiB of each PRG ROM and CHR ROM that can switch between regular CHR ROM and 8 KiB unbanked CHR RAM. CHR RAM is selected when PRG A17 and PRG A18 are both =1.

Nestopia Plus! further uses Submapper 13 to denote the (AB-128) Well 8-in-1 multicart with 1 MiB of each PRG ROM and CHR ROM, which is incompatible to the above definition, and which is hereby reassigned to Submapper 14. Its actual PCB name is AB892, and its Outer Bank Register has the following form:

D~[LTRc SBBp]
   |||| |||+-- PRG A18..A17
   |||| |++--- PRG/CHR A19..A18
   |||| +----- PRG A17 mode: 0=from MMC3, 1=from p
   |||+------- CHR A17
   ||+-------- 0=CHR-ROM, 1=CHR RAM
   |+--------- CHR A17 mode: 0=from MMC3, 1=from c
   +---------- 1=Lock Outer Bank register until next reset

At least one cart (AB-134) re-uses this PCB but leaves the CHR RAM spot unpopulated, still using the combined bit for PRG/CHR A18, but rendering the "R" bit 5 meaningless. The correct NES 2.0 header for this would be submapper 14 but with zero CHR RAM.

See also