INES Mapper 052: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Add AB-134 info)
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:iNES Mappers]][[Category:MMC3-like mappers]]
{{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.
  Here are Disch's original notes: 
==Outer Bank Register ($6000-$7FFF, write)==
  ========================
D~[LTCc SBPp]
  =  Mapper 052         =
    |||| ||++-- PRG A18..A17
  ========================
    |||| |+---- PRG/CHR A19
 
    |||| +----- PRG A17 mode: 0=from MMC3, 1=from p
  Example Game:
    ||++------- CHR A18..A17
  --------------------------
    |+--------- CHR A17 mode: 0=from MMC3, 1=from c
  Mario 7-in-1
    +---------- 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.
  Notes:
 
  ---------------------------
==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.
  Yet another MMC3 multicart. For info on MMC3, see mapper 004.
 
 
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:
 
 
  Registers:
D~[LTRc SBBp]
  ---------------------------
    |||| |||+-- PRG A18..A17
 
    |||| |++--- PRG/CHR A19..A18
    $6000-7FFF:  [.MHL SBPP]  Multicart reg
    |||| +----- PRG A17 mode: 0=from MMC3, 1=from p
        P = PRG Block (bits 0,1)
    |||+------- CHR A17
        B = CHR+PRG Block Select bit (PRG bit 2, CHR bit 1)
    ||+-------- 0=CHR-ROM, 1=CHR RAM
        S = PRG Block size (0=512k  1=256k)
    |+--------- CHR A17 mode: 0=from MMC3, 1=from c
        L = CHR Block low bit (bit 0)
    +---------- 1=Lock Outer Bank register until next reset
        H = CHR Block high bit (bit 2)
 
        M = CHR Block size (0=256k  1=128k)
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.
 
 
    $8000-FFFF:  Same as MMC3 for selected block
== See also ==
 
* [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
  $6000 can only be written to once ... and only if PRG-RAM is enabled and writable (see $A001). Once $6000
  has been written to, $6000-7FFF maps to PRG-RAM
 
 
 
  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    %HB 0000 0000
      1       $7F    %HB L000 0000
 
  'H', 'B' and 'L' 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.

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