INES Mapper 154

From NESdev Wiki
Revision as of 00:26, 14 June 2012 by Lidnariq (talk | contribs) (Add comment about niggling doubt)
Jump to navigationJump to search

Looking at bootgod's db, it looks like the M bit

  • might be subject to bus conflicts and
  • might be present in both $8000 and $8001 registers,

but I can't be certain from the pictures.

 Here are Disch's original notes:  
 ========================
 =  Mapper 154          =
 ========================
 
 Example Game:
 --------------------------
 Devil Man
 
 
 
 Registers:
 ---------------------------
 
 Range,Mask:   $8000-FFFF, $8001
 
 
   $8000:  [.M.. .AAA]
     M = Mirroring
        0 = 1ScA
        1 = 1ScB
     A = Address for use with $8001
 
 
   $8001:  [DDDD DDDD]
     Data port:
       R:0 ->  CHR reg 0
       R:1 ->  CHR reg 1
       R:2 ->  CHR reg 2
       R:3 ->  CHR reg 3
       R:4 ->  CHR reg 4
       R:5 ->  CHR reg 5
       R:6 ->  PRG reg 0  (8k @ $8000)
       R:7 ->  PRG reg 1  (8k @ $A000)
 
 
 
 CHR Setup:
 ---------------------------
 
       $0000   $0400   $0800   $0C00   $1000   $1400   $1800   $1C00 
     +---------------+---------------+-------+-------+-------+-------+
     |     <R:0>     |     <R:1>     |  R:2  |  R:3  |  R:4  |  R:5  |
     +---------------+---------------+-------+-------+-------+-------+
 
 R:0,R:1  select CHR from the first 64k block.  R:2-R:5 select CHR from the second 64k block.
 
 Therefore, you must effectively AND the written values to R:0,R:1 with $3F, and OR the written values to
 R:2-R:5 with $40.
 
 
 PRG Setup:
 ---------------------------
 
       $8000   $A000   $C000   $E000  
     +-------+-------+-------+-------+
     |  R:6  |  R:7  | { -2} | { -1} |
     +-------+-------+-------+-------+