INES Mapper 071: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (→‎Banks: It is now beautiful.)
No edit summary
Line 1: Line 1:
[[Category:iNES Mappers]]
'''iNES Mapper 071''' is assigned to games developed by Codemasters and published by Camerica.
'''iNES Mapper 071''' is assigned to games developed by Codemasters and published by Camerica.
It's largely a clone of [[UNROM]], and Camerica games were initially emulated under [[iNES Mapper 002]] before 071 was assigned.
It's largely a clone of [[UNROM]], and Camerica games were initially emulated under [[iNES Mapper 002]] before 071 was assigned.
Line 69: Line 71:
== References ==
== References ==
*[http://kevtris.org/mappers/camerica/index.html Camerica Mappers by Kevin Horton]
*[http://kevtris.org/mappers/camerica/index.html Camerica Mappers by Kevin Horton]
  Here are Disch's original notes: 
  ========================
  =  Mapper 071          =
  ========================
 
 
  Example Games:
  --------------------------
  MiG 29 - Soviet Fighter
  Fire Hawk
  The Fantastic Adventures of Dizzy
  Bee 52
 
 
  Notes:
  --------------------------
  This mapper covers several Camerica/Codemasters boards.  One in paticular that needs to be noted is the board
  used by Fire Hawk -- which has mapper controlled 1-screen mirroring.  On other boards, mirroring is
  hardwired!  This is yet another one of those terrific mapper number incompatibilities.
 
  Some of these games are EXTREMELY DIFFICULT to emulate.  Not because the mapper is complicated (it's actually
  very simple), but because the games are picky about timing and use some seldom used aspects of the NES.
 
  In paticular:
  - Bee 52 uses the sprite overflow flag ($2002.5)
  - MiG 29 uses DMC IRQs, and is VERY PICKY about their timing.  If your DMC IRQ timing isn't spot on (or at
  least really freaking close), this game will glitch like hell.
 
 
  This mapper also involves a custom lockout defeat circuit which is mostly unimportant for emulation purposes.
  Details will not be mentioned here, but are outlined in Kevtris' Camerica Mappers documentation.
 
  Fire Hawk does some strange timing code when changing the mirroring mode.  It is unknown whether or not any
  special timing is required.
 
 
  Registers:
  --------------------------
 
    $8000-9FFF:  [...M ....]  Mirroring (for Fire Hawk only!)
      0 = 1ScA
      1 = 1ScB
 
    $C000-FFFF:  PRG Select (16k @ $8000)
 
 
  PRG Setup:
  --------------------------
 
        $8000  $A000  $C000  $E000 
      +---------------+---------------+
      |    $C000    |    { -1}    |
      +---------------+---------------+

Revision as of 23:34, 13 November 2011


iNES Mapper 071 is assigned to games developed by Codemasters and published by Camerica. It's largely a clone of UNROM, and Camerica games were initially emulated under iNES Mapper 002 before 071 was assigned.

Overview

  • PRG ROM size: 128 or 256 KB
  • PRG ROM bank size: 16 KB inner
  • PRG RAM: None
  • CHR capacity: 8 KB RAM
  • CHR bank size: Not bankswitched
  • Nametable mirroring: Hardwired H or V (most) or mapper controlled 1-screen (Fire Hawk)
  • Subject to bus conflicts: ???

Banks

  • $8000-$BFFF: Switchable
  • $C000-$FFFF: Fixed to last bank
  • $8000-$FFFF: In the "Quattro" games, A16 and A17 are controlled by a separate register, allowing 64 KiB super-banks.

Solder pad config

To do

Registers

Outer bank select ($8000-$BFFF)

This register is present only on the Quattro carts, which use the BF9096 IC, and on the CCU in the Aladdin adapter (per KH)

7  bit  0
---- ----
xxBB xxxx
  ||
  ++----- Select 64 KB PRG ROM bank for CPU $8000-$FFFF

Mirroring ($8000-$9FFF)

This register is present only on Fire Hawk, which uses the BF9097 IC.

7  bit  0
---- ----
xxxM xxxx
   |
   +----- Select 1 KB CIRAM bank for PPU $2000-$2FFF

Bank select ($C000-$FFFF)

This register is present on all games: BF9093 (most common), BF9096, BF9097, and CCU. On BF9096, only the low two bits are implemented. On BF9097, only the low three bits are implemented.

7  bit  0
---- ----
xxxx PPPP
     ||||
     ++++- Select 16 KB PRG ROM bank for CPU $8000-$BFFF

CIC stun control ($E000-$FFFF)

This register is present on all games. A0 controls a latch going to the CIC stun circuit.

Pinout

                    BF9093
                    BF9096   BF9097
             ,-v-.
        +5V -|   |- CPU A14  CPU A14
NES /ROMSEL -|   |- A13      A13
    PRG /CE -|   |- PRG A15  PRG A15
    PRG A14 -|   |- PRG A16  CIRAM A10
         M2 -|   |- GND      PRG A16
         A0 -|   |- R/W      GND
         D0 -|   |- PRG A17  R/W
         D1 -|   |- CIC      CIC
         D2 -|   |- D4       D4
        GND -|   |- D3       D3
             `---'

References

 Here are Disch's original notes:  
 ========================
 =  Mapper 071          =
 ========================
 
 
 Example Games:
 --------------------------
 MiG 29 - Soviet Fighter
 Fire Hawk
 The Fantastic Adventures of Dizzy
 Bee 52
 
 
 Notes:
 --------------------------
 This mapper covers several Camerica/Codemasters boards.  One in paticular that needs to be noted is the board
 used by Fire Hawk -- which has mapper controlled 1-screen mirroring.  On other boards, mirroring is
 hardwired!  This is yet another one of those terrific mapper number incompatibilities.
 
 Some of these games are EXTREMELY DIFFICULT to emulate.  Not because the mapper is complicated (it's actually
 very simple), but because the games are picky about timing and use some seldom used aspects of the NES.
 
 In paticular:
 - Bee 52 uses the sprite overflow flag ($2002.5)
 - MiG 29 uses DMC IRQs, and is VERY PICKY about their timing.  If your DMC IRQ timing isn't spot on (or at
 least really freaking close), this game will glitch like hell.
 
 
 This mapper also involves a custom lockout defeat circuit which is mostly unimportant for emulation purposes.
 Details will not be mentioned here, but are outlined in Kevtris' Camerica Mappers documentation.
 
 Fire Hawk does some strange timing code when changing the mirroring mode.  It is unknown whether or not any
 special timing is required.
 
 
 Registers:
 --------------------------
 
   $8000-9FFF:  [...M ....]  Mirroring (for Fire Hawk only!)
      0 = 1ScA
      1 = 1ScB
 
   $C000-FFFF:  PRG Select (16k @ $8000)
 
 
 PRG Setup:
 --------------------------
 
       $8000   $A000   $C000   $E000  
     +---------------+---------------+
     |     $C000     |     { -1}     |
     +---------------+---------------+