INES Mapper 173: Difference between revisions
NewRisingSun (talk | contribs) mNo edit summary |
NewRisingSun (talk | contribs) (Incorporate Mapper 132 and ET-02 correction.) |
||
Line 2: | Line 2: | ||
* ''Puzzle'' (ET-01) | * ''Puzzle'' (ET-01) | ||
* ''小瑪琍'' (Xiǎo Mǎlí) (Nei-Hu and | * ''小瑪琍'' (Xiǎo Mǎlí) (Nei-Hu and Idea-Tek releases, with identical cartridge shell and label) (ET-02) | ||
* ''F-15 City War'' (ET-03) | * ''F-15 City War'' (ET-03) | ||
* ''撲克精靈'' (Poker Jīnglíng) (ET-04) | * ''撲克精靈'' (Poker Jīnglíng) (ET-04) | ||
Line 11: | Line 11: | ||
==Registers== | ==Registers== | ||
Mapper 173 uses a custom IC ( | Mapper 173 uses a custom IC (real number 05-00002-010, fake marking "ITC20V8-10LP", falsely suggesting a particular type of programmable logic) serving as a latch, adder and inverter. There are five registers: Input (4 bits), Output (4 bits), Register (4 bits), Mode (1 bit) and Invert (1 bit). | ||
Mask: $E103 | Mask: $E103 | ||
Line 28: | Line 28: | ||
==Errata== | ==Errata== | ||
* ''麻将方块 (Mahjong Block'') (TXC re-release, headerless CRC32 0ACFC3CD) is commonly set to mapper 173, but since it expects Output bit 1 to select CHR A14, it actually uses [[INES Mapper | * ''麻将方块 (Mahjong Block'') (TXC re-release, headerless CRC32 0ACFC3CD) is commonly set to mapper 173, but since it expects Output bit 1 to select CHR A14, it actually uses [[INES Mapper 132]]. | ||
* ''撲克精靈 (Poker Jīnglíng)'' writes the actual 8 KiB bank number to $8000 to copy Register into Output, making it potentially [[CNROM]]-compatible. It will not run as Mapper 3 on emulators that emulate bus conflicts (such as FCEUX) though, nor will it run on an actual Nintendo CNROM board, for the same reason. | * ''撲克精靈 (Poker Jīnglíng)'' writes the actual 8 KiB bank number to $8000 to copy Register into Output, making it potentially [[CNROM]]-compatible. It will not run as Mapper 3 on emulators that emulate bus conflicts (such as FCEUX) though, nor will it run on an actual Nintendo CNROM board, for the same reason. | ||
* ''Rad Racket - Deluxe Tennis II'' (TXC release, MGC-011) uses a [[INES Mapper 136]] board but sets/clears Invert for 8 KiB CHR-ROM banks 0 and 1/2 and 3, making it compatible with Mapper 173 as well. | * ''Rad Racket - Deluxe Tennis II'' (TXC release, MGC-011) uses a [[INES Mapper 136]] board but sets/clears Invert for 8 KiB CHR-ROM banks 0 and 1/2 and 3, making it compatible with Mapper 173 as well. | ||
Line 34: | Line 34: | ||
==Similar Mappers== | ==Similar Mappers== | ||
* INES Mapper 173 is similar to [[INES Mapper 132]] with only 32 KiB PRG-ROM except that Mapper 132 connects CHR A14 to Output bit 1 rather than the inverse of the Invert bit. | |||
==See also== | ==See also== | ||
http://forums.nesdev.org/viewtopic.php?f=3&t=15961&start=15#p210297 | [http://forums.nesdev.org/viewtopic.php?f=3&t=15961&start=15#p210297 PCB image] |
Revision as of 21:49, 8 February 2018
INES Mapper 173 is used by the original Idea-Tek releases of several of their games:
- Puzzle (ET-01)
- 小瑪琍 (Xiǎo Mǎlí) (Nei-Hu and Idea-Tek releases, with identical cartridge shell and label) (ET-02)
- F-15 City War (ET-03)
- 撲克精靈 (Poker Jīnglíng) (ET-04)
- 戰國四川省 (Zhànguó Sìchuān Shěng) (ET-05), developed by Computer & Entertainment
Banks
- PPU $0000-$1FFF: 8 KB switchable CHR ROM bank
Registers
Mapper 173 uses a custom IC (real number 05-00002-010, fake marking "ITC20V8-10LP", falsely suggesting a particular type of programmable logic) serving as a latch, adder and inverter. There are five registers: Input (4 bits), Output (4 bits), Register (4 bits), Mode (1 bit) and Invert (1 bit).
Mask: $E103 Read $4100-$4103: [.... RRRR]: Read Register. Bit 3 is inverted if Invert==1. Bits 4-7 are open bus. Write $4100: When Mode==0: Bits 0-3 of Register := Input, bits 0-2 being inverted if Invert==1. When Mode==1: Bits 0-2 of Register incremented by one, bit 3 unaffected. Write $4101: Invert := Written value bit 0. Write $4102: Input := Written value bits 0-3. Write $4103: Mode := Written value bit 0. Write $8000-$FFFF: Output := Register; written value is ignored.
In Mapper 173, bit 0 of the 8 KiB CHR ROM bank number (CHR A13) comes from Output bit 0, while bit 1 of the 8 KiB CHR ROM bank number (CHR A14) is the inverted value of the Invert register:
8 KiB CHR-ROM bank number := (Output &1) | (~Invert <<1);
Games therefore set Invert (writing $FF or $01 to $4101) to choose CHR banks 0 and 1, and clear Invert (writing $00 to $4101) to choose CHR banks 2 and 3. 小瑪琍 (Xiǎo Mǎlí) uses this for copy-protection purposes, having 32 KiB of CHR-ROM with the first 16 KiB empty, always clearing Invert and writing $0E/$0C/$08/$06/$04/$02/$00 to Input and expecting CHR A14 to remain 1. Games will also check the lower nibble 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 mapper 173, but since it expects Output bit 1 to select CHR A14, it actually uses INES Mapper 132.
- 撲克精靈 (Poker Jīnglíng) writes the actual 8 KiB bank number to $8000 to copy Register into Output, making it potentially CNROM-compatible. It will not run as Mapper 3 on emulators that emulate bus conflicts (such as FCEUX) though, nor will it run on an actual Nintendo CNROM board, for the same reason.
- Rad Racket - Deluxe Tennis II (TXC release, MGC-011) uses a INES Mapper 136 board but sets/clears Invert for 8 KiB CHR-ROM banks 0 and 1/2 and 3, making it compatible with Mapper 173 as well.
- 戰國四川省 (Zhànguó Sìchuān Shěng, original version of AVE's Tiles of Fate) is set to Mapper 132 in GoodNES 3.23b. That ROM image is actually a mapper hack with the PRG-ROM code unmodified but the CHR-ROM banks rearranged to work as Mapper 132; the correct mapper is INES Mapper 173.
Similar Mappers
- INES Mapper 173 is similar to INES Mapper 132 with only 32 KiB PRG-ROM except that Mapper 132 connects CHR A14 to Output bit 1 rather than the inverse of the Invert bit.