INES Mapper 059: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
mNo edit summary
(Add lock bit)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
[[Category:iNES Mappers|059]][[Category:Multicart mappers|059]]
[[Category:iNES Mappers|059]][[Category:Multicart mappers|059]]
iNES Mapper 59 is used for a multicart with the UNIF board name '''BMC-T3H53'''.
iNES Mapper 59 is used for a multicart with the UNIF board names '''BMC-T3H53''' and '''BMC-D1038'''.
==Address Latch ($8000-$FFFF, write)==
==Address Latch ($8000-$FFFF, write)==
  Mask: $8000
  Mask: $8000
Line 6: Line 6:
  A~FEDC BA98 7654 3210
  A~FEDC BA98 7654 3210
  ---------------------
  ---------------------
   1... ...D .PPP MCCC
   1... ..LD SPPp MCCC
          | ||| |+++- Select 8 KiB CHR-ROM bank at PPU $0000-$1FFF
          || |||| |+++- Select 8 KiB CHR-ROM bank at PPU $0000-$1FFF
          | ||| +---- Select nametable mirroring type
          || |||| +---- Select nametable mirroring type
          | |||        0: Vertical
          || ||||        0: Vertical
          | |||        1: Horizontal
          || ||||        1: Horizontal
          | +++------ Select 32 KiB PRG-ROM bank at CPU $8000-$FFFF
          || |+++------ Select 16 KiB PRG-ROM bank at CPU $8000-$BFFF/$C000-$FFFF
          +----------- Jumper Read Control
          || +--------- Select PRG A14 behavior
                        0: CPU $8000-$FFFF returns PRG-ROM content
          ||            0: Substitute p with CPU A14 (NROM-256, 32 KiB PRG-ROM)
                        1: CPU $8000-$FFFF returns Jumper/DIP switch value
          ||            1: Leave p unchanged (NROM-128, 16 KiB PRG-ROM)
          |+----------- Jumper Read Control
          |              0: CPU $8000-$FFFF returns PRG-ROM content
          |              1: CPU $8000-$FFFF returns Jumper/DIP switch value
          +------------ Lock bit
                        1: Ignore further writes to the latch until reset
 
==Jumper Value ($8000-$FFFF, read)==
==Jumper Value ($8000-$FFFF, read)==
  Mask: $8000
  Mask: $8000
Line 23: Line 29:
   |||| ||++- Current jumper value, selecting menu variants with different game counts
   |||| ||++- Current jumper value, selecting menu variants with different game counts
   ++++-++--- Open bus
   ++++-++--- Open bus
==Similar Mappers==
==Errata==
[[INES Mapper 060]] is almost identical to T3H53 right down to the Jumper Read Control, the only difference being that the PRG-ROM size can be either 16 or 32 KiB.
NESten's Mapper DLL v1.0 contained an incorrect implementation of T3H53 as iNES mapper 059 and UNIF mapper BMC-T3H53. The UNIF implementation was improved in NESten's Mapper DLL v1.2 while the iNES implementation was not, causing confusion about what kind of cartridge the unimproved mapper 59 was supposed to be. As Nintendulator's mapper DLL is based on NESten's mapper DLL, this was carried over to Nintendulator. Presumably as a result of this confusion, FCEUX and others put the correct implementation of T3H53 at [[INES Mapper 060]], displacing the "Reset-based NROM-128 4-in-1" in the process.

Latest revision as of 18:53, 14 April 2021

iNES Mapper 59 is used for a multicart with the UNIF board names BMC-T3H53 and BMC-D1038.

Address Latch ($8000-$FFFF, write)

Mask: $8000

A~FEDC BA98 7654 3210
---------------------
  1... ..LD SPPp MCCC
         || |||| |+++- Select 8 KiB CHR-ROM bank at PPU $0000-$1FFF
         || |||| +---- Select nametable mirroring type
         || ||||        0: Vertical
         || ||||        1: Horizontal
         || |+++------ Select 16 KiB PRG-ROM bank at CPU $8000-$BFFF/$C000-$FFFF
         || +--------- Select PRG A14 behavior
         ||             0: Substitute p with CPU A14 (NROM-256, 32 KiB PRG-ROM)
         ||             1: Leave p unchanged (NROM-128, 16 KiB PRG-ROM)
         |+----------- Jumper Read Control
         |              0: CPU $8000-$FFFF returns PRG-ROM content
         |              1: CPU $8000-$FFFF returns Jumper/DIP switch value
         +------------ Lock bit
                        1: Ignore further writes to the latch until reset

Jumper Value ($8000-$FFFF, read)

Mask: $8000

D~7654 3210
  ---------
  OOOO OOJJ
  |||| ||++- Current jumper value, selecting menu variants with different game counts
  ++++-++--- Open bus

Errata

NESten's Mapper DLL v1.0 contained an incorrect implementation of T3H53 as iNES mapper 059 and UNIF mapper BMC-T3H53. The UNIF implementation was improved in NESten's Mapper DLL v1.2 while the iNES implementation was not, causing confusion about what kind of cartridge the unimproved mapper 59 was supposed to be. As Nintendulator's mapper DLL is based on NESten's mapper DLL, this was carried over to Nintendulator. Presumably as a result of this confusion, FCEUX and others put the correct implementation of T3H53 at INES Mapper 060, displacing the "Reset-based NROM-128 4-in-1" in the process.