INES Mapper 243: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(ew ew ew)
(I confused myself. fix that. Also, FCEUmm is probably the relevant source of information, not Nestopia.)
Line 2: Line 2:
[[iNES Mapper 243]] describes Sachen's [[Sachen 74LS374N pinout|“74LS374N” mapper IC]], which in no way resembles its namesake.
[[iNES Mapper 243]] describes Sachen's [[Sachen 74LS374N pinout|“74LS374N” mapper IC]], which in no way resembles its namesake.


Unfortunately, it seems that there are several different ways this board was wired. Submappers may need to be allocated.
The IC as described by Санчез, and as images in GoodNES, does not have any games with more than 64KiB PRG, so it's unclear why Санчез specifies three bits for PRG banking.
 
The IC, as described by Санчез, and as images 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.
    
    
   Example Games:
   Example Games:
Line 15: Line 13:
   Mask: $E101
   Mask: $E101
    
    
  Both variants-
     $4100:  [.... .AAA]  Address for use with $4101
     $4100:  [.... .AAA]  Address for use with $4101
    
    
   Variant one (Nestopia calls "374b" and refiles to [[iNES Mapper 150]], but what Санчез specified) :
   Variant one (Nestopia calls "374b", FCEUmm calls S74LS374N, both meaning [[iNES Mapper 150]], but what Санчез specified for m243) :
     $4101:  Data port
     $4101:  Write only- Data port
       R:2 -> [.... ...B]  High bit of CHR reg AND ALSO sets PRG reg to B.
       R:2 -> [.... ...B]  High bit of CHR reg AND ALSO sets PRG reg to B.
       R:4 -> [.... ...C]  Middle bit of CHR reg
       R:4 -> [.... ...C]  Middle bit of CHR reg
Line 28: Line 27:
           %10 = L-shaped; see below
           %10 = L-shaped; see below
           %11 = 1ScA
           %11 = 1ScA
    $4100 reads: [.... .aaa]
    Nestopia asserts that both addresses are readable and return the inverted value of AAA, possibly XORed with some some unique ID.
              aaa = ~AAA XOR (counter & 1)  - where counter toggles on every reset
    
    
   Variant two (Nestopia calls "374a" and leaves as mapper 243, what Nocash specified) :
   Variant two (Nestopia calls "374a", FCEUmm calls S74LS374NA, Nocash's specification, all meaning m243) :
     $4101:  Data port
     $4101:  Data port
       R:0 -> [.... ....]  Writes reset CHR bank to 3 and PRG bank to 0
       R:0 -> [.... ....]  Writes reset CHR bank to 3 and PRG bank to 0
Line 50: Line 49:
   CHR Setup:
   CHR Setup:
   ---------------------------   
   ---------------------------   
   8k CHR page @ $0000 is selected according to some permutation of the BCDE bits.
   8k CHR page @ $0000 is selected according to the BCDE bits.


Of all the images marked as mapper 243 in GoodNES 3.1.4, Nestopia's database leaves ONLY ''Poker III (Sachen) [!]'' and ''Poker III (Sachen) [a1].nes'' as variant 374a, and refiles the rest as variant 374b.
Of all the images marked as mapper 243 in GoodNES 3.1.4, Nestopia's database leaves ONLY ''Poker III (Sachen) [!]'' and ''Poker III (Sachen) [a1].nes'' as variant 374a, and refiles the rest as variant 374b (m150).


There are two different dumps of "Poker III" in GoodNES, both marked with [!]. This has caused some confusion. There is no difference in the PRG of these two images! The only difference seems to be the different interpretation of CHR order. Given that Санчез described the pinout, and so presumably actually figured out which pin connected to which pin on the ROMs, it seems not unlikely that all of GoodNES (and No-intro)'s "authoritative" dumps may be wrong.
There are two different dumps of "Poker III" in GoodNES, both marked with [!]. This has caused some confusion. There is no difference in the PRG of these two images! The only difference seems to be the different interpretation of CHR order. Given that Санчез described the pinout, and so presumably actually figured out which pin connected to which pin on the ROMs, it seems likely that his interpretation is the true one.


This still doesn't address the difference in mirroring behavior. Nocash says that no game ever wrote anything other than $05 to the register anyway.
This still doesn't address the difference in mirroring behavior. Nocash says that no game ever wrote anything other than $05 to the register anyway.


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], [http://nocash.emubase.de/everynes.htm#mapper243sachenpokerprg32kvrom8k Nocash]
Given the above, it seems that mapper 243 should possibly be deprecated, and all existing dumps either discarded or refiled to mapper 150.
 
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], [http://nocash.emubase.de/everynes.htm#mapper243sachenpokerprg32kvrom8k Nocash], [http://sourceforge.net/p/fceumm/code/HEAD/tree/src/boards/sachen.c FCEUmm source]

Revision as of 06:48, 17 May 2014

iNES Mapper 243 describes Sachen's “74LS374N” mapper IC, which in no way resembles its namesake.

The IC as described by Санчез, and as images in GoodNES, does not have any games with more than 64KiB PRG, so it's unclear why Санчез specifies three bits for PRG banking.

 Example Games:
 --------------------------
 Honey
 Poker III 5-in-1
 
 Registers:
 ---------------------------
 Mask: $E101
 
 Both variants-
   $4100:  [.... .AAA]   Address for use with $4101
 
 Variant one (Nestopia calls "374b", FCEUmm calls S74LS374N, both meaning iNES Mapper 150, but what Санчез specified for m243) :
   $4101:   Write only- 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
   $4100 reads: [.... .aaa]
             aaa = ~AAA XOR (counter & 1)   - where counter toggles on every reset
 
  Variant two (Nestopia calls "374a", FCEUmm calls S74LS374NA, Nocash's specification, all meaning m243) :
   $4101:   Data port
      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 the BCDE bits.

Of all the images marked as mapper 243 in GoodNES 3.1.4, Nestopia's database leaves ONLY Poker III (Sachen) [!] and Poker III (Sachen) [a1].nes as variant 374a, and refiles the rest as variant 374b (m150).

There are two different dumps of "Poker III" in GoodNES, both marked with [!]. This has caused some confusion. There is no difference in the PRG of these two images! The only difference seems to be the different interpretation of CHR order. Given that Санчез described the pinout, and so presumably actually figured out which pin connected to which pin on the ROMs, it seems likely that his interpretation is the true one.

This still doesn't address the difference in mirroring behavior. Nocash says that no game ever wrote anything other than $05 to the register anyway.

Given the above, it seems that mapper 243 should possibly be deprecated, and all existing dumps either discarded or refiled to mapper 150.

Reference: Санчез, Nestopia's source, Nocash, FCEUmm source