INES Mapper 136: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Do not commit to which version is the earlier one.)
(Update link to PCB picture)
 
(3 intermediate revisions by the same user not shown)
Line 4: Line 4:
* ''蝶變'' (Diébiàn, "Incantation", original Taiwan release of ''Galactic Crusader'' with Chinese title screen, often incorrectly rendered as Japanese "Chou Hen") (TC-009)
* ''蝶變'' (Diébiàn, "Incantation", original Taiwan release of ''Galactic Crusader'' with Chinese title screen, often incorrectly rendered as Japanese "Chou Hen") (TC-009)
* ''四川麻將'' (Sìchuān Májiàng, "Mahjong Trap", original Taiwan release of ''Shisen Mahjong - Seifuku Hen'') (TC-010)
* ''四川麻將'' (Sìchuān Májiàng, "Mahjong Trap", original Taiwan release of ''Shisen Mahjong - Seifuku Hen'') (TC-010)
* ''Mahjong Companion'' (alternative version, more common version uses [[INES Mapper 139]] instead.
* ''Mahjong Companion'' (alternative version, more common version use mappers [[INES Mapper 079|79]] or [[INES Mapper 139|139]] instead.


==Banks==
==Banks==
Line 22: Line 22:
  Write $8000-$FFFF: Output := Register; written value is ignored.
  Write $8000-$FFFF: Output := Register; written value is ignored.


In Mapper 136, bits 0/1 of the 8 KiB CHR ROM bank number (CHR A13/A14) come from Output bits 0/1, and the 32 KiB PRG ROM bank number (PRG A15) comes from Output bit 4:
In Mapper 136, bits 0/2 of the 8 KiB CHR ROM bank number (CHR A13..A15) come from Output bits 0-2, and the 32 KiB PRG ROM bank number (PRG A15) comes from Output bit 4:
  8 KiB CHR ROM bank number := (Output &3);
  8 KiB CHR ROM bank number := (Output &7);
  32 KiB PRG ROM bank number := (Output >>4) &1;
  32 KiB PRG ROM bank number := (Output >>4) &1;
Sachen's original '''3011''' circuit board only supported CHR ROM switching. The connection to switch 32 KiB PRG ROM was obtained by [https://datomatic.no-intro.org/attachments%20-%20sources/Nintendo%20-%20Nintendo%20Entertainment%20System/20210330_144245_3138_pcb_back.jpg soldering an additional wire/resistor].


Games will check the lower four or six bits of $4100 for the correct value after several increment and inversion operations as a copy-protection measure.
Games will check the lower four or six bits of $4100 for the correct value after several increment and inversion operations as a copy-protection measure.

Latest revision as of 09:07, 16 February 2024

INES Mapper 136 is used to denote the Sachen 3011 board, used by four early releases from Joy Van/Sachen:

  • 未来小子 (Wèilái Xiǎozi, "Joy Van Kid", original Taiwan release of Metal Fighter µ with Chinese title screen) (TC-008)
  • 蝶變 (Diébiàn, "Incantation", original Taiwan release of Galactic Crusader with Chinese title screen, often incorrectly rendered as Japanese "Chou Hen") (TC-009)
  • 四川麻將 (Sìchuān Májiàng, "Mahjong Trap", original Taiwan release of Shisen Mahjong - Seifuku Hen) (TC-010)
  • Mahjong Companion (alternative version, more common version use mappers 79 or 139 instead.

Banks

  • CPU $8000-$FFFF: 32 KiB switchable PRG ROM bank (only used for Mahjong Companion)
  • PPU $0000-$1FFF: 8 KB switchable CHR ROM bank

Registers

Mapper 136 uses a custom IC (real number "JV001", fake marking "GS63030-A") serving as a latch, adder and inverter. There are five registers: Input (6 bits), Output (6 bits), Register (6 bits), Mode (1 bit) and Invert (1 bit).

Mask: $E103
Read $4100-$4103: [..RR RRRR]: Read Register. Bits 4-5 are inverted if Invert==1. Bits 6-7 are open bus.
Write $4100: When Mode==0: Bits 0-5 of Register := Input, bits 0-3 being inverted if Invert==1.
             When Mode==1: Bits 0-3 of Register incremented by one, bits 4-5 unaffected.
Write $4101: Invert := Written value bit 0.
Write $4102: Input := Written value bits 0-5.
Write $4103: Mode := Written value bit 0.
Write $8000-$FFFF: Output := Register; written value is ignored.

In Mapper 136, bits 0/2 of the 8 KiB CHR ROM bank number (CHR A13..A15) come from Output bits 0-2, and the 32 KiB PRG ROM bank number (PRG A15) comes from Output bit 4:

8 KiB CHR ROM bank number := (Output &7);
32 KiB PRG ROM bank number := (Output >>4) &1;

Sachen's original 3011 circuit board only supported CHR ROM switching. The connection to switch 32 KiB PRG ROM was obtained by soldering an additional wire/resistor.

Games will check the lower four or six bits of $4100 for the correct value after several increment and inversion operations as a copy-protection measure.

Similar Mappers

  • Mapper 136 is almost identical to INES Mapper 132 with only 32 KiB PRG-ROM except in the value read from $4100 due to Mapper 136 having four (28-pin JV001 ASIC) versus Mapper 132 having three adder bits (24-pin 05-00002-010 ASIC).
  • INES Mapper 147 expands CHR-ROM size to 128 KiB and additionally supports 128 KiB PRG-ROM, switched in 32 KiB amounts.
  • INES Mapper 172 is similar to Mapper 136, connecting the six CPU bits in reverse order due to the JV001 ASIC being mounted upside down.

See also