INES Mapper 114: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (MMC3 Registers at end)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
[[Category:MMC3-like mappers|114]][[Category:Mappers with scanline IRQs|114]][[Category:NES 2.0 mappers with submappers|114]]
iNES Mapper 114 is used for an [[MMC3]]-clone-bearing board with scrambled register addresses and indices, a 256 KiB outer CHR-ROM bank register,
iNES Mapper 114 is used for an [[MMC3]]-clone-bearing board with scrambled register addresses and indices, a 256 KiB outer CHR-ROM bank register,
and an NROM-like PRG-ROM register that can override the MMC3 clone's PRG-ROM bank.
and an NROM-like PRG-ROM register that can override the MMC3 clone's PRG-ROM bank.
* ''Aladdin'' (SuperGame, not ''Super Aladdin'', and not to be confused with ''Aladdin'' from J.Y. Company)
 
* ''The Lion King'' (SuperGame)
* '''Submapper 0''':
* ''Pocohontos'' (Hosenkan, not to be confused with ''Pocahontas Part 2'' from SuperGame)
** ''Aladdin'' (SuperGame, not ''Super Aladdin'', and not to be confused with ''Aladdin'' from J.Y. Company)
* ''Super Donkey Kong'' (Hosenkan)
** ''The Lion King'' (SuperGame)
** ''Pocohontos'' (Hosenkan, not to be confused with ''Pocahontas Part 2'' from SuperGame)
** ''Super Donkey Kong'' (Hosenkan)
* '''Submapper 1''' (different scrambling pattern):
** ''Boogerman'' (SuperGame, not to be confused with ''Boogerman II'' by Rex Soft)


=Registers=
=Registers=
Line 27: Line 32:
   .... ...+- Select 256 KiB CHR-ROM bank at PPU $0000-$1FFF
   .... ...+- Select 256 KiB CHR-ROM bank at PPU $0000-$1FFF


=Notes=
==MMC3-compatible registers ($8000-$FFFF)==
* Unlike many similar mappers, the $600x registers are not connected to the MMC3 clone's WRAM interface and thus function regardless of whether WRAM is enabled or not.
===Submapper 0===
* IRQ behavior resembles that of the MMC3A, i.e. a latch value of zero disables the IRQ, on which ''Aladdin'' depends.
* Previous descriptions of Mapper 114/182 claim that a write to address $C001 is equivalent to writing both to an MMC3's $C000 and $C001 registers, and that writing to $A001 has no effect. A comparison of ''Aladdin'' (Mapper 114) and the ''Super Aladdin'' (Mapper 4, by the same developer) however indicates a one-to-one mapping, provided that MMC3A-like IRQ behavior is enforced.
 
==MMC3-compatible registers==
  Address written  MMC3 register meant
  Address written  MMC3 register meant
  ---------------  -------------------
  ---------------  -------------------
Line 53: Line 54:
  5                    7
  5                    7
  6                    2
  6                    2
7                    4
===Submapper 1===
Address written  MMC3 register meant
---------------  -------------------
$8000            $A001
$8001            $8001
$A000            $8000
$A001            $C001
$C000            $A000
$C001            $C000
$E000            $E000
$E001            $E001
$8000 index written  MMC3 register meant
-------------------  -------------------
0                    0
1                    2
2                    5
3                    3
4                    6
5                    1
6                    7
  7                    4
  7                    4
Bits 6 and 7 of the value written to $8000 are unchanged. See [[MMC3]] for further details.
=Notes=
* Unlike many similar mappers, the $600x registers are not connected to the MMC3 clone's WRAM interface and thus function regardless of whether WRAM is enabled or not.
* IRQ behavior resembles that of the MMC3A, i.e. a latch value of zero disables the IRQ, on which ''Aladdin'' depends.
* Previous descriptions of Mapper 114/182 claim that a write to address $C001 is equivalent to writing both to an MMC3's $C000 and $C001 registers, and that writing to $A001 has no effect. A comparison of ''Aladdin'' (Mapper 114) and the ''Super Aladdin'' (Mapper 4, by the same developer) however indicates a one-to-one mapping, provided that MMC3A-like IRQ behavior is enforced.


=Similar Mappers=
=Similar Mappers=
* [[INES Mapper 115]] has the same $6000 and $6001 registers, but does not scramble MMC3 register addresses and indices. Also, Mapper 115's IRQ behavior resembles that of the MMC3C, i.e. a latch value of zero causes an IRQ on every scanline, on which the Chinese version of ''幽☆遊☆白書 Final'' (Yuu Yuu Hakusho Final) depends.
* [[INES Mapper 123]] moves the $6000 register to $5800 while rearranging its bits and drops the outer CHR-ROM bank register at $6001 as well as register address scrambling while retaining index register scrambling (using the same pattern).
* [[INES Mapper 182]] is a duplicate of Mapper 114. In fact, FCEUX explicitly reassigns Hosenkan's Mapper 182 ROMs to Mapper 114. Because Hosenkan's games make no use of the $6000-$6001 registers, other than writing zero to both of them on startup, some implementations (such as the EverDrive N8's) do not emulate the $600x registers.
* [[INES Mapper 182]] is a duplicate of Mapper 114. In fact, FCEUX explicitly reassigns Hosenkan's Mapper 182 ROMs to Mapper 114. Because Hosenkan's games make no use of the $6000-$6001 registers, other than writing zero to both of them on startup, some implementations (such as the EverDrive N8's) do not emulate the $600x registers.
* [[INES Mapper 115]] has the same $6000 and $6001 registers, but does not scramble MMC3 register addresses and indices. Also, Mapper 115's IRQ behavior resembles that of the MMC3C, i.e. a latch value of zero causes an IRQ on every scanline, on which the Chinese version of ''幽☆遊☆白書 Final'' (Yuu Yuu Hakusho Final) depends.
* [[INES Mapper 215]] extends and moves $6000/$6001 to $5000/$5001, and makes the MMC3 register address and index scrambling pattern selectable via $5007.
* [[INES Mapper 215]] extends and moves $6000/$6001 to $5000/$5001, and makes the MMC3 register address and index scrambling pattern selectable via $5007.

Latest revision as of 18:39, 10 May 2019

iNES Mapper 114 is used for an MMC3-clone-bearing board with scrambled register addresses and indices, a 256 KiB outer CHR-ROM bank register, and an NROM-like PRG-ROM register that can override the MMC3 clone's PRG-ROM bank.

  • Submapper 0:
    • Aladdin (SuperGame, not Super Aladdin, and not to be confused with Aladdin from J.Y. Company)
    • The Lion King (SuperGame)
    • Pocohontos (Hosenkan, not to be confused with Pocahontas Part 2 from SuperGame)
    • Super Donkey Kong (Hosenkan)
  • Submapper 1 (different scrambling pattern):
    • Boogerman (SuperGame, not to be confused with Boogerman II by Rex Soft)

Registers

NROM Override Register ($6000)

Mask: Probably $E001

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

Outer CHR-ROM Bank Register ($6001)

Mask: Probably $E001

D~7654 3210
  ---------
  .... ...+- Select 256 KiB CHR-ROM bank at PPU $0000-$1FFF

MMC3-compatible registers ($8000-$FFFF)

Submapper 0

Address written   MMC3 register meant
---------------   -------------------
$8000             $A001
$8001             $A000
$A000             $8000
$A001             $C000
$C000             $8001
$C001             $C001
$E000             $E000
$E001             $E001
$8000 index written   MMC3 register meant
-------------------   -------------------
0                     0
1                     3
2                     1
3                     5
4                     6
5                     7
6                     2
7                     4

Submapper 1

Address written   MMC3 register meant
---------------   -------------------
$8000             $A001
$8001             $8001
$A000             $8000
$A001             $C001
$C000             $A000
$C001             $C000
$E000             $E000
$E001             $E001
$8000 index written   MMC3 register meant
-------------------   -------------------
0                     0
1                     2
2                     5
3                     3
4                     6
5                     1
6                     7
7                     4

Bits 6 and 7 of the value written to $8000 are unchanged. See MMC3 for further details.

Notes

  • Unlike many similar mappers, the $600x registers are not connected to the MMC3 clone's WRAM interface and thus function regardless of whether WRAM is enabled or not.
  • IRQ behavior resembles that of the MMC3A, i.e. a latch value of zero disables the IRQ, on which Aladdin depends.
  • Previous descriptions of Mapper 114/182 claim that a write to address $C001 is equivalent to writing both to an MMC3's $C000 and $C001 registers, and that writing to $A001 has no effect. A comparison of Aladdin (Mapper 114) and the Super Aladdin (Mapper 4, by the same developer) however indicates a one-to-one mapping, provided that MMC3A-like IRQ behavior is enforced.

Similar Mappers

  • INES Mapper 115 has the same $6000 and $6001 registers, but does not scramble MMC3 register addresses and indices. Also, Mapper 115's IRQ behavior resembles that of the MMC3C, i.e. a latch value of zero causes an IRQ on every scanline, on which the Chinese version of 幽☆遊☆白書 Final (Yuu Yuu Hakusho Final) depends.
  • INES Mapper 123 moves the $6000 register to $5800 while rearranging its bits and drops the outer CHR-ROM bank register at $6001 as well as register address scrambling while retaining index register scrambling (using the same pattern).
  • INES Mapper 182 is a duplicate of Mapper 114. In fact, FCEUX explicitly reassigns Hosenkan's Mapper 182 ROMs to Mapper 114. Because Hosenkan's games make no use of the $6000-$6001 registers, other than writing zero to both of them on startup, some implementations (such as the EverDrive N8's) do not emulate the $600x registers.
  • INES Mapper 215 extends and moves $6000/$6001 to $5000/$5001, and makes the MMC3 register address and index scrambling pattern selectable via $5007.