INES Mapper 187: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (defaultsort)
m (fix doubled "the")
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{DEFAULTSORT:187}}[[Category:MMC3-like mappers]][[Category:Mappers using $4020-$5FFF]][[Category:Mappers with scanline IRQs]]
{{DEFAULTSORT:187}}[[Category:MMC3-like mappers]][[Category:Mappers using $4020-$5FFF]][[Category:Mappers with scanline IRQs]]
iNES Mapper 187 is used for the 卡聖 (Kǎshèng) A98402 and similar boards, an [[MMC3]]-clone-bearing board with an NROM-like PRG-ROM register that can override the MMC3 clone's PRG-ROM bank. Used by:
iNES Mapper 187 is used for the 卡聖 (Kǎshèng) A98402 and similar boards, an [[MMC3]]-clone-bearing board with an NROM-like PRG-ROM register that can override the MMC3 clone's PRG-ROM bank, and supports 512 KiB of CHR-ROM. Used by:
* ''Street Fighter Zero 2'' (Kǎshèng/Hummer Team, not ''Street Fighter Zero 2 '97'')
* ''Street Fighter Zero 2'' (Kǎshèng/Hummer Team, not ''Street Fighter Zero 2 '97'')
* ''The King of Fighters '96'' (Kǎshèng/Hummer Team)
* ''The King of Fighters '96'' (Kǎshèng/Hummer Team)
* ''餓狼伝説 Special'' (''Garō Densetsu Special'', Kǎshèng re-release, originally released by 哥德 (Gouder) on [[INES Mapper 116]])


=Registers=
=Registers=
==NROM Override Register ($5000, $6000)==
==NROM Override Register ($5000)==
  Mask: Unknown; FCEUX basically uses $FFFF
  Mask: $F001
   
   
  D~7654 3210
  D~7654 3210
   ---------
   ---------
   MSN. BBBb
   M.NB BBb.
   ||++++- Select 16 KiB PRG-ROM bank at CPU
   | |+-+++-- Select 16 KiB PRG-ROM bank at CPU
   |||        $8000-$BFFF and $C000-$FFFF
   | |        $8000-$BFFF and $C000-$FFFF
   ||+------- 0: Do not replace bit 0 (NROM-128)
   | +------- 0: Do not replace bit 1 (NROM-128)
   ||        1: Replace bit 0 with CPU A14 (NROM-256)
   |         1: Replace bit 1 with CPU A14 (NROM-256)
  |+-------- 0: Do not shift BBBb to the right by one bit
   +--------- 0: Use PRG bank from MMC3; ignore $5000 bits 1-4/5
  |          1: Shift BBBb to the right by one bit (*)
               1: Ignore PRG bank from MMC3; apply $5000 bits 1-4/5
   +--------- 0: Use PRG bank from MMC3; ignore $6000 bits 0-3/5
               1: Ignore PRG bank from MMC3; apply $6000 bits 0-3/5
 
(*) This seems to be more of a heuristic by [https://github.com/asfdfdfd/fceux/blob/master/src/boards/187.cpp FCEUX] to differentiate two different boards rather than actual hardware behavior.


==Protection Read ($5000-$5FFF)==
==Protection Read ($5000-$5FFF)==
Line 38: Line 33:
               1: CHR A18=PPU A12
               1: CHR A18=PPU A12


Basically, either sprites or background tiles will come from the the second 256 KiB of CHR-ROM. Note that setting bit 7 will still also activate the MMC3 clone's CHR A12 inversion.
Basically, either sprites or background tiles will come from the second 256 KiB of CHR-ROM. Note that setting bit 7 will still also activate the MMC3 clone's CHR A12 inversion.


==MMC3-compatible registers ($8000-$FFFF)==
==MMC3-compatible registers ($8000-$FFFF)==

Latest revision as of 07:38, 9 January 2022

iNES Mapper 187 is used for the 卡聖 (Kǎshèng) A98402 and similar boards, an MMC3-clone-bearing board with an NROM-like PRG-ROM register that can override the MMC3 clone's PRG-ROM bank, and supports 512 KiB of CHR-ROM. Used by:

  • Street Fighter Zero 2 (Kǎshèng/Hummer Team, not Street Fighter Zero 2 '97)
  • The King of Fighters '96 (Kǎshèng/Hummer Team)

Registers

NROM Override Register ($5000)

Mask: $F001

D~7654 3210
  ---------
  M.NB BBb.
  | |+-+++-- Select 16 KiB PRG-ROM bank at CPU
  | |        $8000-$BFFF and $C000-$FFFF
  | +------- 0: Do not replace bit 1 (NROM-128)
  |          1: Replace bit 1 with CPU A14 (NROM-256)
  +--------- 0: Use PRG bank from MMC3; ignore $5000 bits 1-4/5
             1: Ignore PRG bank from MMC3; apply $5000 bits 1-4/5

Protection Read ($5000-$5FFF)

Mask: Unknown

The actual values that are returned are unknown; The King of Fighters '96 reads from here and only expects bit 7 of the value being returned to be set.

CHR A18 Control ($8000-$9FFF, even)

Mask: $E001

D~7654 3210
  ---------
  M... ....
  +--------- Select CHR A18 Mode
              0: CHR A18=inverted PPU A12
              1: CHR A18=PPU A12

Basically, either sprites or background tiles will come from the second 256 KiB of CHR-ROM. Note that setting bit 7 will still also activate the MMC3 clone's CHR A12 inversion.

MMC3-compatible registers ($8000-$FFFF)

Mask: $E001, see MMC3.

Errata

Similar Mappers

  • iNES Mappers 115 and 123 have similar NROM override registers, with Mapper 123's bits arranged a bit differently.
  • iNES Mapper 121 has the same CHR A18 behavior, drops the NROM override register, and adds more complex protection.