INES Mapper 043

From Nesdev wiki
Jump to: navigation, search

iNES Mapper 043 is used for two conversions of Super Mario Brothers 2 (Japanese) from Famicom Disk System to ROM cartridge:

  • According to FCEUX, supposedly one of Whirlwind Manu's more successful attempts (cartridge number LF36) at converting the game. The only dump of SMB2J that has actually been verified to come from an LF36-numbered cartridge uses INES Mapper 040.
  • A version named Mr. Mary 2 by Bit Corporation.

FCEUX emulates both under the same iNES mapper number, even though the lookup table for the switchable PRG bank register is different, causing Super Mario Brothers 2 to load the wrong data for World 5-1. The two variants can be distinguished by the fact that Super Mario Brothers 2 has CHR-ROM while Mr. Mary 2 does not.

Banks

Whirlwind Manu LF36 (variant)

  • CPU $5000-$5FFF: 4 KiB PRG-ROM bank, fixed to #16 or #17 depending on DIP switch setting (determines whether the title screen has the SMB2 logo or not)
  • CPU $6000-$7FFF: 8 KiB PRG-ROM bank, fixed to #2
  • CPU $8000-$9FFF: 8 KiB PRG-ROM bank, fixed to #1
  • CPU $A000-$BFFF: 8 KiB PRG-ROM bank, fixed to #0
  • CPU $C000-$DFFF: 8 KiB PRG-ROM bank, switchable
  • CPU $E000-$FFFF: 8 KiB PRG-ROM bank, fixed to #9
  • PPU $0000-$1FFF: unbanked 8 KiB CHR-ROM

Mr. Mary 2

  • CPU $5000-$5FFF: 4 KiB PRG-ROM bank, fixed to #16
  • CPU $6000-$7FFF: 8 KiB PRG-ROM bank, switchable to #2 or #0
  • CPU $8000-$9FFF: 8 KiB PRG-ROM bank, fixed to #1
  • CPU $A000-$BFFF: 8 KiB PRG-ROM bank, fixed to #0
  • CPU $C000-$DFFF: 8 KiB PRG-ROM bank, switchable
  • CPU $E000-$FFFF: 8 KiB PRG-ROM bank, switchable to #10/#9 or #8
  • PPU $0000-$1FFF: unbanked 8 KiB CHR-RAM

Registers

PRG Bank Select 1 ($4022)

Mask: probably $71FF

Bit 7654 3210
    ---------
    .... .CCC
          +++- Select 8 KiB PRG-ROM bank at CPU $C000-$DFFF.

The actual bank number for Super Mario Brothers 2 is:

Value  Bank#
------------
0      4
1      3
2      4
3      4
4      4
5      7
6      5
7      6

The actual bank number for Mr. Mary 2 is:

Value  Bank#
------------
0      4
1      3
2      5
3      3
4      6
5      3
6      7
7      3

PRG Bank Select 2 ($4120, Mr. Mary 2 only)

Mask: probably $71FF

Bit 7654 3210
    ---------
    .... ...I
            +- 0: CPU $6000-$7FFF to bank 2,
                  CPU $E000-$FFFF to bank 10 (128 KiB ROM image)/9 (80 KiB ROM image)
               1: CPU $6000-$7FFF to bank 0,
                  CPU $E000-$FFFF to bank 8

FCEUX' source code claims that the actual hardware switches $E000-$FFFF to bank 10, used with an original 128 KiB ROM image, and that CaH4e3's released iNES ROM image of the game removes repeated banks to yield an 80 KiB ROM image that needs to switch to bank 9 instead.

IRQ Control ($4122/$8122)

Mask: probably $F1FF

Bit 7654 3210
    ---------
    .... ...I
            +- 0: Acknowledge and disable IRQ, reset counter
               1: Enable IRQ

When enabled, the 12-bit IRQ counter increases on every M2 cycle until it overflows, upon which an IRQ is fired.