INES Mapper 091

From NESdev Wiki
Revision as of 21:52, 23 January 2019 by NewRisingSun (talk | contribs) (Add submapper (http://forums.nesdev.com/viewtopic.php?f=9&t=15240&p=231790#p231790))
Jump to navigationJump to search

iNES Mapper 091 was used by the original release of Super Fighter III from an unknown publisher, but is more commonly known by a clone board from J.Y. Company.

INES Mapper 091 submapper table
Submapper # Board Games
0 JY830623C Street Fighter 3, Mortal Kombat II, Dragon Ball Z 2, Mario & Sonic 2
0 YY840238C 1995 Super HIK 4-in-1 (JY-016), 1995 Super HiK 4-in-1 (JY-017)
1 EJ-006-1 Super Fighter III

Submapper 0 has a PA12-based IRQ counter and hard-wired mirroring; submapper 1 an M2-based IRQ counter and selectable mirroring.

Banks

  • CPU $8000-$9FFF: 8 KiB switchable PRG-ROM bank
  • CPU $A000-$BFFF: 8 KiB switchable PRG-ROM bank
  • CPU $C000-$FFFF: 16 KiB PRG-ROM bank, hard-wired to last bank
  • PPU $0000-$07FF: 2 KiB switchable CHR-ROM bank
  • PPU $0800-$0FFF: 2 KiB switchable CHR-ROM bank
  • PPU $1000-$17FF: 2 KiB switchable CHR-ROM bank
  • PPU $1800-$1FFF: 2 KiB switchable CHR-ROM bank

Registers

CHR-ROM Bank Select ($6000-$6003, write)

Mask: $F003/$F007 (submapper 0/1)

  • $6000: Select 2 KiB CHR-ROM bank at PPU $0000-$07FF
  • $6001: Select 2 KiB CHR-ROM bank at PPU $0800-$0FFF
  • $6002: Select 2 KiB CHR-ROM bank at PPU $1000-$17FF
  • $6003: Select 2 KiB CHR-ROM bank at PPU $1800-$1FFF

Nametable Mirroring Select ($6004-$6005, write, submapper 1 only)

Mask: $F007

  • $6004: Select horizontal mirroring, value ignored
  • $6005: Select vertical mirroring, value ignored

IRQ Counter Register ($6006-$6007, write, submapper 1 only)

Mask: $F007

  • $6006: Set IRQ Counter LSB
  • $6007: Set IRQ Counter MSB

PRG-ROM Bank Select ($7000-$7001, write)

Mask: $F003/$F007 (submapper 0/1)

  • $7000: Select 8 KiB PRG-ROM bank at CPU $8000-$9FFF
  • $7001: Select 8 KiB PRG-ROM bank at CPU $A000-$BFFF

IRQ Stop/Acknowledge ($7006, write)

Mask: $F003 (submapper 0)/$F007 (submapper 1)

Value is ignored..

IRQ Start/Reset ($7007, write)

Mask: $F003/$F007 (submapper 0/1)

Value is ignored.

Outer Bank register ($8000-$9FFF, write, submapper 0 only)

Mask: unknown

A~FEDC BA98 7654 3210
  -------------------
  .... .... .... .PPC
                  ||+- Select outer 512 KiB CHR-ROM bank (CHR A19)
                  ++-- Select outer 128 KiB PRG-ROM bank (PRG A17-A18)

Notes

  • Submapper 0: the IRQ counter is a binary counter clocked by PPU A12, and simply counts a fixed number of 64 unfiltered rises of PPU A12.
  • Submapper 1: the IRQ counter is a binary counter clocked by the M2 signal with a factor of 5/4, meaning counting down by five every fourth M2 cycle.
  • Submapper 1's Super Fighter III runs a hardware test when resetting with Select+Start+B pressed. The test exists in J.Y. Company's hacked versions as well, but was not adjusted for the simpler hardware and thus will fail some tests.
  • The commonly available ROM image of Super Fighter III is a mapper hack for INES Mapper 197.