INES Mapper 243: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(incorporate information from nestopia source and Санчез.)
(→‎Register Data ($4101, read/write): call out that all registers can be fully read and written. fix typo in R4)
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:iNES Mappers|243]][[Category:Mappers using $4020-$5FFF|243]]
{{DEFAULTSORT:243}}[[Category:iNES Mappers]][[Category:Mappers using $4020-$5FFF]]
[[iNES Mapper 243]] describes Sachen's [[Sachen 74LS374N pinout|“74LS374N” mapper IC]], which in no way resembles its namesake.
'''iNES Mapper 243''' denotes the Sachen '''SA-020A''' circuit board. Using an eight-register ASIC with a fake "[[Sachen 74LS374N pinout|74LS374N]]" marking, it supports up to 128 KiB PRG-ROM, and 128 KiB of CHR-ROM. It is used for only one game, ''美女拳 - Honey Peach'' (SA-006).


Unfortunately, it seems that there are several different ways this board was wired. Submappers may need to be allocated.
=Banks=
* CPU $8000-$FFFF: switchable 32 KiB PRG-ROM bank
* PPU $0000-$1FFF: switchable 8 KiB CHR-ROM bank
* Nametable mirroring: switchable H/V/Vertically-flipped L/One-screen


The IC, as described by Санчез, and also as exists in GoodNES, does not have any games with more than 64KiB PRG, so it's unclear why Nestopia or Санчез specify three bits for PRG banking.
=Registers=
 
==Register Index ($4100, write)==
  Example Games:
  Mask: $C101
  --------------------------
  Honey
  Poker III 5-in-1
 
  Registers:
  ---------------------------
  Range,Mask:  $4100-7FFF, $4101
 
    $4100:  [.... .AAA]  Address for use with $4101
 
  Variant one (Nestopia "374b", also what Санчез specified) :
    $4101:  Data port
      R:2 -> [.... ...B] High bit of CHR reg AND ALSO sets PRG reg to B.
      R:4 -> [.... ...C]  Middle bit of CHR reg
      R:5 -> [.... .PPP]  PRG reg  (32k @ $8000)
      R:6 -> [.... ..DE]  Low bits of CHR reg
      R:7 -> [.... .MM.]  Mirroring
          %00 = Horz
          %01 = Vert
          %10 = L-shaped; see below
          %11 = 1ScA
   
   
    Nestopia asserts that both addresses are readable and return the inverted value of AAA, or possibly with the LSB not inverted.
D~7654 3210
 
   ---------
   Variant two (Nestopia "374a") :
  .... .RRR
    $4101:  Data port
        +++- Select register number (Rx)
      R:0 -> [.... ....]  Writes reset CHR bank to 3 and PRG bank to 0
      R:2 -> [.... ...B]  High bit of CHR reg
      R:4 -> [.... ...E]  Low bit of CHR reg
      R:5 -> [.... ...P]  PRG reg  (32k @ $8000)
      R:6 -> [.... ..CD]  Middle bits of CHR reg
      R:7 -> [.... ...M]  Mirroring
            0 = Horz
            1 = Vert
 
  Mirroring:
  --------------------------- 
  Mirroring mode %10 is not quite 1ScB:
    [  NTA  ][  NTB  ]
    [  NTB  ][  NTB  ]
 
  CHR Setup:
  --------------------------- 
  8k CHR page @ $0000 is selected according to some permutation of the BCDE bits.


Reference: Санчез ( http://cah4e3.shedevr.org.ru/%5Blst%5D-sachen-mappers.txt ), [https://github.com/rdanbrook/nestopia/blob/master/source/core/board/NstBoardSachen74x374.cpp Nestopia's source]
==Register Data ($4101, read/write)==
Mask: $C101
D~7654 3210
  ---------
  .... .RRR
        +++- Register data
D~7654 3210
  ---------
  .... ...A  R2: CHR A13
  .... ...B  R4: CHR A14
  .... ..PP  R5: PRG A16..A15
  .... ..DC  R6: CHR A16..A15
  ...  .MM.  R7: Nametable mirroring
              0: S0-S0-S0-S1 (lower right unique, or vertically-flipped L)
              1: Horizontal
              2: Vertical
              3: Single-screen, page 1
Registers 0, 1, and 3 have no external effect. All three bits in all eight registers are fully implemented and can be read from and written to.
 
=Errata=
The '''SA-150''' PCB, denoted by [[INES Mapper 150]], connects the same ASIC differently, changing the meaning of the CHR-bank-related register bits.
 
=See also=
* [https://www.flickr.com/photos/153392699@N08/sets/72157682682439086 Box, Cart, and PCB picture of ''Honey Peach'']

Latest revision as of 19:21, 14 December 2019

iNES Mapper 243 denotes the Sachen SA-020A circuit board. Using an eight-register ASIC with a fake "74LS374N" marking, it supports up to 128 KiB PRG-ROM, and 128 KiB of CHR-ROM. It is used for only one game, 美女拳 - Honey Peach (SA-006).

Banks

  • CPU $8000-$FFFF: switchable 32 KiB PRG-ROM bank
  • PPU $0000-$1FFF: switchable 8 KiB CHR-ROM bank
  • Nametable mirroring: switchable H/V/Vertically-flipped L/One-screen

Registers

Register Index ($4100, write)

Mask: $C101

D~7654 3210
  ---------
  .... .RRR
        +++- Select register number (Rx)

Register Data ($4101, read/write)

Mask: $C101

D~7654 3210
  ---------
  .... .RRR
        +++- Register data

D~7654 3210
  ---------
  .... ...A  R2: CHR A13
  .... ...B  R4: CHR A14
  .... ..PP  R5: PRG A16..A15
  .... ..DC  R6: CHR A16..A15
  ...  .MM.  R7: Nametable mirroring
              0: S0-S0-S0-S1 (lower right unique, or vertically-flipped L)
              1: Horizontal
              2: Vertical
              3: Single-screen, page 1

Registers 0, 1, and 3 have no external effect. All three bits in all eight registers are fully implemented and can be read from and written to.

Errata

The SA-150 PCB, denoted by INES Mapper 150, connects the same ASIC differently, changing the meaning of the CHR-bank-related register bits.

See also