INES Mapper 040: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
No edit summary
(Add submapper 1 for NTDEC 2752 PCB)
 
Line 5: Line 5:
* ''1990 Super Mario Bros. 4''
* ''1990 Super Mario Bros. 4''
Several other SMB2J conversions running on other mappers reuse the cartridge label from Whirlwind Manu and therefore misleadingly also show an LF36 cartridge code. Hey Sung's version can be distinguished from Whirlwind Manu's by the fact that Whirlwind Manu's does not allow selecting the one of eight starting worlds by holding the D-Pad while pressing START.
Several other SMB2J conversions running on other mappers reuse the cartridge label from Whirlwind Manu and therefore misleadingly also show an LF36 cartridge code. Hey Sung's version can be distinguished from Whirlwind Manu's by the fact that Whirlwind Manu's does not allow selecting the one of eight starting worlds by holding the D-Pad while pressing START.
'''Submapper 1''' denotes the NTDEC '''2752''' PCB, which is a multicart PCB that adds an outer bank register.


This description was produced from the source code of FCEUX and Nestopia.
This description was produced from the source code of FCEUX and Nestopia.
Line 14: Line 16:
     $8000:  Disable and acknowledge IRQ
     $8000:  Disable and acknowledge IRQ
     $A000:  Enable IRQ
     $A000:  Enable IRQ
    $C000:  Outer bank register (Submapper 1 only)
     $E000:  8 KiB bank mapped at $C000
     $E000:  8 KiB bank mapped at $C000
    
    
Line 28: Line 31:
The corresponding hardware is a [//forums.nesdev.org/viewtopic.php?p=217200#p217200 CD4020 functioning as a 13-bit counter], and if the software doesn't acknowledge the interrupt for another 4096 cycles it will self-acknowledge.
The corresponding hardware is a [//forums.nesdev.org/viewtopic.php?p=217200#p217200 CD4020 functioning as a 13-bit counter], and if the software doesn't acknowledge the interrupt for another 4096 cycles it will self-acknowledge.


==Outer bank register ($C000-$DFFF)==
A~[110. .... .ppN PCCM]
              ||| |||+- 0: Vertical mirroring
              ||| |||  1: Horizontal mirroring
              ||| |++-- CHR A14..A13
              ||| +- PRG A16 and mode
              |||    0: SMB2J mode
              |||    1: Regular NROM mode
              ||+--- NROM mode if P=1
              ||    0: NROM-128
              ||    1: NROM-256
              ++---- PRG A15..A14 if P=1
== See also ==
== See also ==
* [http://nesdev.org/40.txt SMB2j aka "The Lost Levels" Mapper #40 Info] by The Mad Dumper.
* [http://nesdev.org/40.txt SMB2j aka "The Lost Levels" Mapper #40 Info] by The Mad Dumper.

Latest revision as of 21:00, 16 August 2022

iNES Mapper 040 denotes the NTDEC 2722 PCB and imitations, used in several cartridge conversions of the Japanese version of Super Mario Bros. 2:

  • Super Mario Bros. 2 from Whirlwind Manu (cartridge code LF36)
  • Super Mario Bros. II+ from Hey Sung
  • 1990 Super Mario Bros. 4

Several other SMB2J conversions running on other mappers reuse the cartridge label from Whirlwind Manu and therefore misleadingly also show an LF36 cartridge code. Hey Sung's version can be distinguished from Whirlwind Manu's by the fact that Whirlwind Manu's does not allow selecting the one of eight starting worlds by holding the D-Pad while pressing START.

Submapper 1 denotes the NTDEC 2752 PCB, which is a multicart PCB that adds an outer bank register.

This description was produced from the source code of FCEUX and Nestopia.

 Registers:
 ---------------------------
 Range,Mask:   $8000-FFFF, $E000

   $8000:  Disable and acknowledge IRQ
   $A000:  Enable IRQ
   $C000:  Outer bank register (Submapper 1 only)
   $E000:  8 KiB bank mapped at $C000
 
 PRG Setup:
 ---------------------------
 
       $6000   $8000   $A000   $C000   $E000  
     +-------+-------+-------+-------+-------+
     | { 6 } | { 4 } | { 5 } | $E000 | { 7 } |
     +-------+-------+-------+-------+-------+

Like INES Mapper 050, this hardware produces an interrupt 4096 M2 cycles after the IRQ is enabled.

The corresponding hardware is a CD4020 functioning as a 13-bit counter, and if the software doesn't acknowledge the interrupt for another 4096 cycles it will self-acknowledge.

Outer bank register ($C000-$DFFF)

A~[110. .... .ppN PCCM]
              ||| |||+- 0: Vertical mirroring
              ||| |||   1: Horizontal mirroring
              ||| |++-- CHR A14..A13
              ||| +- PRG A16 and mode
              |||    0: SMB2J mode
              |||    1: Regular NROM mode
              ||+--- NROM mode if P=1
              ||     0: NROM-128
              ||     1: NROM-256
              ++---- PRG A15..A14 if P=1

See also