INES Mapper 091

From Nesdev wiki
Jump to: navigation, search
 Here are Disch's original notes:  
 ========================
 =  Mapper 091          =
 ========================
 
 
 Example Games:
 --------------------------
 Street Fighter III
 Super Mario & Sonic 2
 
 
 Notes:
 ---------------------------
 Regs exist at $6000-7FFF, so this mapper has no SRAM.
 
 
 Registers:
 ---------------------------
 
 Range,Mask:   $6000-7FFF, $7003
 
   $6000-6003:  CHR Regs
   $7000-7001:  [.... PPPP]  PRG Regs
 
   $7002 [.... ....]  IRQ Stop
   $7003 [.... ....]  IRQ Start
 
 
 
 CHR Setup:
 ---------------------------
 
       $0000   $0400   $0800   $0C00   $1000   $1400   $1800   $1C00 
     +---------------+---------------+---------------+---------------+
     |     $6000     |     $6001     |     $6002     |     $6003     |
     +---------------+---------------+---------------+---------------+
 
 PRG Setup:
 ---------------------------
 
       $8000   $A000   $C000   $E000  
     +-------+-------+-------+-------+
     | $7000 | $7001 | { -2} | { -1} |
     +-------+-------+-------+-------+
 
 
 IRQs:
 ---------------------------
 
 IRQs on this mapper seem to behave exactly like MMC3 -- except it's fixed so that it will only fire after 8
 scanlines.  This is easily emulatable by using MMC3 logic.
 
 Write to $7002/$7003 can translate directly to write(s) to the following MMC3 registers:
 
 on $7002 write:
    a) write to $E000
 
 on $7003 write:
    a) write $07 to $C000
    b) write to $C001
    c) write to $E001
 
 
 For details on MMC3 IRQ operation, see mapper 4

It seems likely that this IRQ is actually implemented using a simple binary counter clocked by PPU A12, and it doesn't count 8 scanlines, but instead counts 64 rises of PPU A12.

See also