NES 2.0 Mapper 380: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
No edit summary
(S bit works the opposite way from mapper 227.)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{DEFAULTSORT:380}}[[Category:Multicart mappers]][[Category:Mappers with CHR RAM]]
{{DEFAULTSORT:380}}[[Category:Multicart mappers]][[Category:Mappers with CHR RAM]]
'''NES 2.0 Mapper 380''' denotes the '''970630C''' circuit board, used on a 512 KiB multicart having 42 to 80,000 listed NROM and UNROM games.
'''NES 2.0 Mapper 380''' denotes the '''970630C''' (submapper 0) and '''KN-35A''' (submapper 1) multicart circuit board mounting 256-512 KiB of PRG-ROM plus 8 KiB of unbanked CHR-RAM.


==Outer Bank register ($8000-$FFFF, write)==
==Address Latch ($8000-$FFFF, write)==
  Mask: $8000
  [A~1... ..Om CRQP PpMS]
          || |||| |||+-0: PRG A14=CPU A14
A~FEDC BA98 7654 3210
           || |||| |||  1: PRG A14=p
  -------------------
           || |||| ||+- 0: Vertical mirroring
  1... ..UD .bbb bbMV
           || |||| ||  1: Horizontal mirroring
          +|--||| |||+- UV  PRG banking mode
           || |+++-++-- PRG A18..A14
           | ||| |||   10: NROM-256
          || +-------- 0: CHR-RAM writeable
           | ||| |||   11: NROM-128
          ||          1: CHR-RAM write-protected
           | ||| |||  0x: UNROM-like
           |+---------- '''Submapper 0''':
           ||| ||+-- 0: Vertical, 1: Horizontal Mirroring
          |            0: PRG A3..A0=CPU A3..A0
           | +++-++--- PRG A14..A18.
          |            1: PRG A3..A0=Solder pad 3-0
           |            PRG A14 replaced with CPU A14 in NROM-256 mode.
           |            '''Submapper 1''':
           |            PRG A14..A16 replaced with 7 if CPU A14=1 in UNROM-like mode.
          |            0: PRG A17=Q if CPU A14=1
           +----------- 0: PRG-ROM enabled
           |            1: PRG A17=1 if CPU A14=1 (UOROM)
                        1: PRG-ROM disabled, reading from $8000-$FFFF returns solder pad value
           +----------- 0: When CPU A14=1: PRG A16..14=111 (UNROM)
There is no UNROM-like data latch; all games modified to use the address latch.
                        1: When CPU A14=1: PRG A16..14=PPp
==Solder Pad ($8000-$FFFF, read)==
Power-on value: 0
Mask: $8000
D~7654 3210
  ---------
  .... VVVV
        ++++- Solder pad value


Only active when the address latch's A8 was previously set to 1. There are sixteen different menus with basically the same games but a different amount of repeats.
Effective meaning:
Bit 9  Bit 8  Bit 0  Meaning
$200s  $100s  $001s
  (O)    (m)    (S)
  0      0      ?    Switchable inner 16 KiB bank PPp at CPU $8000-$BFFF, fixed inner bank #7 at CPU $C000-$FFFF (UNROM)
  0      1      ?    Switchable inner 16 KiB bank QPPp at CPU $8000-$BFFF, fixed inner bank #15 at CPU $C000-$FFFF (UOROM, submapper 1 only)
  1      ?      0    Switchable 32 KiB inner bank PP at CPU $8000-$FFFF (NROM-256)
  1      ?      1    Switchable 16 KiB inner bank PPp at CPU $8000-$BFFF, mirrored at CPU $C000-$FFFF (NROM-128)
 
* When the ''m'' bit is set, PRG A3-A0 are replaced with the values of four solder pads, which when the menu code reads particular ROM locations effectively selects one of up to 16 menus with different game counts (submapper 0 only).
* Because all bits are cleared on reset, CPU $8000-$BFFF is set to 16 KiB bank #0, and $C000-$FFFF is set to 16 KiB bank #7 on reset.
 
==Similar mappers==
* [[INES Mapper 227]] and [[INES Mapper 242]] are incompatible variants with similar functionality.

Latest revision as of 19:43, 19 November 2021

NES 2.0 Mapper 380 denotes the 970630C (submapper 0) and KN-35A (submapper 1) multicart circuit board mounting 256-512 KiB of PRG-ROM plus 8 KiB of unbanked CHR-RAM.

Address Latch ($8000-$FFFF, write)

[A~1... ..Om CRQP PpMS]
          || |||| |||+-0: PRG A14=CPU A14
          || |||| |||  1: PRG A14=p
          || |||| ||+- 0: Vertical mirroring
          || |||| ||   1: Horizontal mirroring
          || |+++-++-- PRG A18..A14
          || +-------- 0: CHR-RAM writeable
          ||           1: CHR-RAM write-protected
          |+---------- Submapper 0:
          |            0: PRG A3..A0=CPU A3..A0
          |            1: PRG A3..A0=Solder pad 3-0
          |            Submapper 1:
          |            0: PRG A17=Q if CPU A14=1
          |            1: PRG A17=1 if CPU A14=1 (UOROM)
          +----------- 0: When CPU A14=1: PRG A16..14=111 (UNROM)
                       1: When CPU A14=1: PRG A16..14=PPp
Power-on value: 0

Effective meaning:

Bit 9   Bit 8   Bit 0   Meaning
$200s   $100s   $001s
 (O)     (m)     (S)
  0       0       ?     Switchable inner 16 KiB bank PPp at CPU $8000-$BFFF, fixed inner bank #7 at CPU $C000-$FFFF (UNROM)
  0       1       ?     Switchable inner 16 KiB bank QPPp at CPU $8000-$BFFF, fixed inner bank #15 at CPU $C000-$FFFF (UOROM, submapper 1 only)
  1       ?       0     Switchable 32 KiB inner bank PP at CPU $8000-$FFFF (NROM-256)
  1       ?       1     Switchable 16 KiB inner bank PPp at CPU $8000-$BFFF, mirrored at CPU $C000-$FFFF (NROM-128)
  • When the m bit is set, PRG A3-A0 are replaced with the values of four solder pads, which when the menu code reads particular ROM locations effectively selects one of up to 16 menus with different game counts (submapper 0 only).
  • Because all bits are cleared on reset, CPU $8000-$BFFF is set to 16 KiB bank #0, and $C000-$FFFF is set to 16 KiB bank #7 on reset.

Similar mappers