INES Mapper 136: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(make a stub with a minimal set of information)
 
No edit summary
Line 1: Line 1:
{{DEFAULTSORT:136}}[[Category:iNES Mappers]][[Category:CNROM-like mappers]]
INES Mapper 136 is used by three original (pre-Sachen) releases from Joy Van, and some TXC games:


Extremely similar to m{{mapper|36}}, but CHR instead of PRG.
* ''未来小子'' (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 Block) (TXC re-release) (MGC-008)


For now, see [https://forums.nesdev.org/viewtopic.php?f=3&t=15961&p=196182#p196182]
==Banks==
* PPU $0000-$1FFF: 8 KB switchable CHR ROM bank
 
==Registers==
Mapper 136 uses a custom IC (marked "JV001") serving as a latch, adder and inverter. There are five registers: Input (4 bits), Output (6 bits), Register (6 bits), Mode (1 bit) and Invert (1 bit).
 
Mask: $E103
Read $4100-$4103: [..RR RRRR]: Read internal register. Bits 3-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-2 being inverted if Invert==1.
              When Mode==1: Bits 0-2 of Register incremented by one, bits 3-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/1 of the 8 KiB CHR ROM bank number (CHR A13/A14) come from Output bits 0/1:
8 KiB CHR-ROM bank number := (Output &3);
 
Games will check the lower six bits of $4100 for the correct value after several increment and inversion operations, again as a copy-protection measure.
 
==Errata==
* ''麻将方块 (Mahjong Block)'' (TXC re-release, headerless CRC32 0ACFC3CD) is commonly set to [[INES Mapper 173]], but since it expects Output bit 1 to select CHR A14, it actually uses INES Mapper 136. Note that the original ''Super Mega'' release of the game uses [[INES Mapper 172]].
 
==Similar Mappers==
The custom IC was first analyzed for [[INES Mapper 036]]. [[INES Mapper 173]] is similar to Mapper 136 except that CHR A14 used the inverted Invert register instead.

Revision as of 07:08, 24 December 2017

INES Mapper 136 is used by three original (pre-Sachen) releases from Joy Van, and some TXC games:

  • 未来小子 (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 Block) (TXC re-release) (MGC-008)

Banks

  • PPU $0000-$1FFF: 8 KB switchable CHR ROM bank

Registers

Mapper 136 uses a custom IC (marked "JV001") serving as a latch, adder and inverter. There are five registers: Input (4 bits), Output (6 bits), Register (6 bits), Mode (1 bit) and Invert (1 bit).

Mask: $E103
Read $4100-$4103: [..RR RRRR]: Read internal register. Bits 3-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-2 being inverted if Invert==1.
             When Mode==1: Bits 0-2 of Register incremented by one, bits 3-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/1 of the 8 KiB CHR ROM bank number (CHR A13/A14) come from Output bits 0/1:

8 KiB CHR-ROM bank number := (Output &3);

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

Errata

  • 麻将方块 (Mahjong Block) (TXC re-release, headerless CRC32 0ACFC3CD) is commonly set to INES Mapper 173, but since it expects Output bit 1 to select CHR A14, it actually uses INES Mapper 136. Note that the original Super Mega release of the game uses INES Mapper 172.

Similar Mappers

The custom IC was first analyzed for INES Mapper 036. INES Mapper 173 is similar to Mapper 136 except that CHR A14 used the inverted Invert register instead.