INES Mapper 187: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Created page with "187187Category:Mappers with scanline IRQs iNES Mapper 187 is used for the 卡聖 (Kǎshèng) A98402 a...")
 
(Remove similar wording as mapper 121's.)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:MMC3-like mappers|187]][[Category:Mappers using $4020-$5FFF|187]][[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]])
 
Only King of Fighters '96 has 512 KiB of CHR-ROM; CHR A18 (the second half of CHR-ROM) is directly selected by PPU A12, regardless of what the MMC3 is set to do. This means that the "left" pattern table always uses the first and the "right" pattern table always uses the second 256 KiB half of CHR-ROM.


=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 27: Line 24:


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.
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 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 22:29, 29 December 2024

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)

Only King of Fighters '96 has 512 KiB of CHR-ROM; CHR A18 (the second half of CHR-ROM) is directly selected by PPU A12, regardless of what the MMC3 is set to do. This means that the "left" pattern table always uses the first and the "right" pattern table always uses the second 256 KiB half of CHR-ROM.

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.

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.