iNES Mapper 215 is used for later single-game as well as multicart releases from Sugar Softec. They use an MMC3 clone with a selectable scrambling pattern.
Mask: $F007 D~7654 3210 --------- MCS. BBBb ||| ++++- Select 16 KiB PRG-ROM bank at CPU ||| $8000-$BFFF and $C000-$FFFF ||+------- 0: Do not replace bit 0 (NROM-128) || 1: Replace bit 0 with CPU A14 (NROM-256) |+-------- 0: Do not replace PRG A17 and CHR A17 from the MMC3 (256 KiB outer bank) | 1: Replace PRG A17 and CHR A17 with $5001 bits 4 and 5, respectively (128 KiB outer bank) +--------- 0: Use PRG bank from MMC3; ignore bits 0-3/5 1: Ignore PRG bank from MMC3; apply bits 0-3/5 Power-up value: $00
Mask: $F007 D~7654 3210 --------- ..cp CCPP || ||++- Select 256 KiB Outer PRG-ROM bank (PRG A18/A19) || ++--- Select 256 KiB Outer CHR-ROM bank (CHR A18/A19) |+------ Select 128 KiB Outer PRG-ROM bank (PRG A17) if $5000 bit 6=1 +------- Select 128 KiB Outer CHR-ROM bank (CHR A17) if $5000 bit 6=1 Power-up value: $xF
Mask: $F007 D~7654 3210 --------- ..cp P.PP CCC. || +|++- Select 256 KiB Outer PRG-ROM bank (PRG A18-A20) || +++-- Select 256 KiB Outer CHR-ROM bank (CHR A18-A20) |+------ Select 128 KiB Outer PRG-ROM bank (PRG A17) if $5000 bit 6=1 +------- Select 128 KiB Outer CHR-ROM bank (CHR A17) if $5000 bit 6=1 Power-up value: $xF
Mask: $F007 D~7654 3210 --------- .... .MMM +++- Select MMC3 register address and index scrambling mode (0-7) Power-up value: $00
The scrambled addresses correspond to the real address as follows:
$5007 -------------address written----------- value 8000 8001 A000 A001 C000 C001 E000 E001 ----------------------------------------------- 0 8000 8001 A000 A001 C000 C001 E000 E001 1 A001 A000 8000 C000 8001 C001 E000 E001 2 8000 8001 A000 A001 C000 C001 E000 E001 3 C001 8000 8001 A000 A001 E001 E000 C000 4 A001 8001 8000 C000 A000 C001 E000 E001 5 8000 8001 A000 A001 C000 C001 E000 E001 6 8000 8001 A000 A001 C000 C001 E000 E001 7 8000 8001 A000 A001 C000 C001 E000 E001
The data that is written to the low three bits of register $8000 corresponds to the real data as follows:
$5007 -value written- value 0 1 2 3 4 5 6 7 ----------------------- 0 0 1 2 3 4 5 6 7 1 0 2 6 1 7 3 4 5 2 0 5 4 1 7 2 6 3 3 0 6 3 7 5 2 4 1 4 0 2 5 3 6 1 7 4 5 0 1 2 3 4 5 6 7 6 0 1 2 3 4 5 6 7 7 0 1 2 3 4 5 6 7
Bits 6 and 7 of register $8000 are kept as they are. The data written to $8001 and $A000-$FFFF is never scrambled. After unscrambling the address and the data written, these registers function the same as the MMC3's
Categories: Mappers using $4020-$5FFF, MMC3-like mappers, INES Mappers, Mappers with scanline IRQs, NES 2.0 mappers with submappers