INES Mapper 215: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
NewRisingSun (talk | contribs) |
NewRisingSun (talk | contribs) (Simplified and added submappers.) |
||
Line 1: | Line 1: | ||
[[Category:INES Mappers|215]][[Category:MMC3-like mappers|215]][[Category:Mappers using $4020-$5FFF|215]][[Category:Mappers with scanline IRQs]] | [[Category:INES Mappers|215]][[Category:MMC3-like mappers|215]][[Category:Mappers using $4020-$5FFF|215]][[Category:Mappers with scanline IRQs|215]][[Category:NES 2.0 mappers with submappers|215]] | ||
iNES Mapper 215 | 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. | ||
* ''' | * '''Submapper 0''', UNIF board name '''UNL-8237''': | ||
** ''Earthworm Jim 2'' | ** ''Earthworm Jim 2'' | ||
** ''Mortal Kombat 3'' (SuperGame, not ''Extra 60'', not to be confused by similarly-named games from other developers) | ** ''Mortal Kombat 3'' (SuperGame, not ''Extra 60'', not to be confused by similarly-named games from other developers) | ||
** ''Mortal Kombat 3 Extra 60'' (both existing ROM images are just extracts of the 2-in-1 multicart containig this game) | |||
** ''Pocahontas Part 2'' | ** ''Pocahontas Part 2'' | ||
** ''2-in-1: Aladdin, EarthWorm Jim 2'' | ** ''2-in-1: Aladdin, EarthWorm Jim 2'' | ||
** ''2-in-1: EarthWorm Jim 2, Boogerman'' | ** ''2-in-1: EarthWorm Jim 2, Boogerman'' | ||
** ''2-in-1: Mortal Kombat 3 Extra 60, The Super Shinobi'' | |||
** ''3-in-1: Boogerman, Adventure Island 3, Double Dragon 3'' | ** ''3-in-1: Boogerman, Adventure Island 3, Double Dragon 3'' | ||
** ''5-in-1: Aladdin, EarthWorm Jim 2, Garo Densetsu Special, Silkworm, Contra Force'' | ** ''5-in-1: Aladdin, EarthWorm Jim 2, Garo Densetsu Special, Silkworm, Contra Force'' | ||
** ''6-in-1: EarthWorm Jim 2, Mortal Kombat 3, Double Dragon 3, Contra 3, The Jungle Book, Turtles Tournament Fighters'' | ** ''6-in-1: EarthWorm Jim 2, Mortal Kombat 3, Double Dragon 3, Contra 3, The Jungle Book, Turtles Tournament Fighters'' | ||
* ''' | * '''Submapper 1''', UNIF board name '''UNL-8237A''': | ||
** ''9-in-1: The Lion King, EarthWorm Jim 2, Aladdin, Boogerman, Somari, Turtles Tournament Fighters, Mortal Kombat 3, Captain Tsubasa 2, Taito Basketball'' | ** ''9-in-1: The Lion King, EarthWorm Jim 2, Aladdin, Boogerman, Somari, Turtles Tournament Fighters, Mortal Kombat 3, Captain Tsubasa 2, Taito Basketball'' | ||
=Registers= | =Registers= | ||
==NROM Override/Mode Register ($5000 | ==NROM Override/Mode Register ($5000)== | ||
Mask: $F007 | Mask: $F007 | ||
D~7654 3210 | D~7654 3210 | ||
Line 36: | Line 26: | ||
||+------- 0: Do not replace bit 0 (NROM-128) | ||+------- 0: Do not replace bit 0 (NROM-128) | ||
|| 1: Replace bit 0 with CPU A14 (NROM-256) | || 1: Replace bit 0 with CPU A14 (NROM-256) | ||
|+-------- 0: Do not replace PRG A14 and CHR A14 from the MMC3 | |+-------- 0: Do not replace PRG A14 and CHR A14 from the MMC3 (256 KiB outer bank) | ||
| 1: Replace PRG A14 and CHR A14 with $5001 bits 4 and 5, respectively ( | | 1: Replace PRG A14 and CHR A14 with $5001 bits 4 and 5, respectively (128 KiB outer bank) | ||
+--------- 0: Use PRG bank from MMC3; ignore | +--------- 0: Use PRG bank from MMC3; ignore bits 0-3/5 | ||
1: Ignore PRG bank from MMC3; apply | 1: Ignore PRG bank from MMC3; apply bits 0-3/5 | ||
Power-up value: $00 | Power-up value: $00 | ||
==Outer Bank Register ($5001 | ==Outer Bank Register ($5001) - Submapper 0 (UNL-8237)== | ||
Mask: $F007 | Mask: $F007 | ||
Line 56: | Line 46: | ||
Power-up value: $xF | Power-up value: $xF | ||
==Outer Bank Register ($5001 | ==Outer Bank Register ($5001) - Submapper 1 (UNL-8237A)== | ||
Mask: $F007 | Mask: $F007 | ||
Line 70: | Line 60: | ||
Power-up value: $xF | Power-up value: $xF | ||
==Scrambling Pattern Register ($5007 | ==Scrambling Pattern Register ($5007)== | ||
Mask: $F007 | Mask: $F007 | ||
Line 78: | Line 68: | ||
+++- Select MMC3 register address and index scrambling mode (0-7) | +++- Select MMC3 register address and index scrambling mode (0-7) | ||
Power-up value: | Power-up value: $00 | ||
==MMC3-compatible registers ($8000-$FFFF, write-only)== | ==MMC3-compatible registers ($8000-$FFFF, write-only)== | ||
The scrambled addresses correspond to the real address as follows: | |||
$5007 -------------address written----------- | $5007 -------------address written----------- | ||
value 8000 8001 A000 A001 C000 C001 E000 E001 | value 8000 8001 A000 A001 C000 C001 E000 E001 | ||
Line 107: | Line 77: | ||
0 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 | 1 A001 A000 8000 C000 8001 C001 E000 E001 | ||
2 | 2 8000 8001 A000 A001 C000 C001 E000 E001 | ||
3 C001 8000 8001 A000 A001 E001 E000 C000 | 3 C001 8000 8001 A000 A001 E001 E000 C000 | ||
4 A001 8001 8000 C001 A000 C000 E000 E001 | 4 A001 8001 8000 C001 A000 C000 E000 E001 | ||
5 | 5 8000 8001 A000 A001 C000 C001 E000 E001 | ||
6 | 6 8000 8001 A000 A001 C000 C001 E000 E001 | ||
7 | 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: | The data that is written to the low three bits of register $8000 corresponds to the real data as follows: | ||
Line 121: | Line 90: | ||
0 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 | 1 0 2 6 1 7 3 4 5 | ||
2 | 2 0 5 4 1 7 2 6 3 | ||
3 0 6 3 7 5 2 4 1 | 3 0 6 3 7 5 2 4 1 | ||
4 0 2 5 3 6 1 7 4 | 4 0 2 5 3 6 1 7 4 | ||
5 | 5 0 1 2 3 4 5 6 7 | ||
6 | 6 0 1 2 3 4 5 6 7 | ||
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 | |||
=Note= | =Note= | ||
* Games with only 256 KiB of CHR-ROM still use 512 KiB chips; the other 256 KiB usually contain leftover data from another game. | * Games with only 256 KiB of CHR-ROM still use 512 KiB chips; the other 256 KiB usually contain leftover data from another game. | ||
* The Outer Bank Register is reset to its power-up value if a Reset has been detected via an interruption of the M2 signal. This makes it difficult to dump these cartridges using a Kazzo device. | * The Outer Bank Register is reset to its power-up value if a Reset has been detected via an interruption of the M2 signal. This makes it difficult to dump these cartridges using a Kazzo device. | ||
* ''Boogerman'' ([[INES Mapper 114]] Submapper 1) was originally assigned by CaH4e3 to Mapper 215; he later reassigned '''UNL-8237''' to Mapper 215 instead. | |||
* Some multicarts may have alternative outer bank registers in the $6xxx range; since they all contain compatibility code that writes to the $5xxx range, they are assigned to Mapper 215 as well. | |||
=Similar Mappers= | =Similar Mappers= | ||
* [[INES Mapper 114]] resembles '''Subtype 1''' but with a different scrambling pattern. | * [[INES Mapper 114]] resembles '''Subtype 1''' but with a different scrambling pattern. | ||
* [[NES 2.0 Mapper 258]] has everything from '''Subtype 2''' but adds readable protection registers in the $5000-$5007 range. | * [[NES 2.0 Mapper 258]] has everything from '''Subtype 2''' but adds readable protection registers in the $5000-$5007 range. |
Revision as of 10:55, 6 July 2018
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.
- Submapper 0, UNIF board name UNL-8237:
- Earthworm Jim 2
- Mortal Kombat 3 (SuperGame, not Extra 60, not to be confused by similarly-named games from other developers)
- Mortal Kombat 3 Extra 60 (both existing ROM images are just extracts of the 2-in-1 multicart containig this game)
- Pocahontas Part 2
- 2-in-1: Aladdin, EarthWorm Jim 2
- 2-in-1: EarthWorm Jim 2, Boogerman
- 2-in-1: Mortal Kombat 3 Extra 60, The Super Shinobi
- 3-in-1: Boogerman, Adventure Island 3, Double Dragon 3
- 5-in-1: Aladdin, EarthWorm Jim 2, Garo Densetsu Special, Silkworm, Contra Force
- 6-in-1: EarthWorm Jim 2, Mortal Kombat 3, Double Dragon 3, Contra 3, The Jungle Book, Turtles Tournament Fighters
- Submapper 1, UNIF board name UNL-8237A:
- 9-in-1: The Lion King, EarthWorm Jim 2, Aladdin, Boogerman, Somari, Turtles Tournament Fighters, Mortal Kombat 3, Captain Tsubasa 2, Taito Basketball
Registers
NROM Override/Mode Register ($5000)
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 A14 and CHR A14 from the MMC3 (256 KiB outer bank) | 1: Replace PRG A14 and CHR A14 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
Outer Bank Register ($5001) - Submapper 0 (UNL-8237)
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
Outer Bank Register ($5001) - Submapper 1 (UNL-8237A)
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
Scrambling Pattern Register ($5007)
Mask: $F007 D~7654 3210 --------- .... .MMM +++- Select MMC3 register address and index scrambling mode (0-7) Power-up value: $00
MMC3-compatible registers ($8000-$FFFF, write-only)
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 C001 A000 C000 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
Note
- Games with only 256 KiB of CHR-ROM still use 512 KiB chips; the other 256 KiB usually contain leftover data from another game.
- The Outer Bank Register is reset to its power-up value if a Reset has been detected via an interruption of the M2 signal. This makes it difficult to dump these cartridges using a Kazzo device.
- Boogerman (INES Mapper 114 Submapper 1) was originally assigned by CaH4e3 to Mapper 215; he later reassigned UNL-8237 to Mapper 215 instead.
- Some multicarts may have alternative outer bank registers in the $6xxx range; since they all contain compatibility code that writes to the $5xxx range, they are assigned to Mapper 215 as well.
Similar Mappers
- INES Mapper 114 resembles Subtype 1 but with a different scrambling pattern.
- NES 2.0 Mapper 258 has everything from Subtype 2 but adds readable protection registers in the $5000-$5007 range.