INES Mapper 071

From NESdev Wiki
Revision as of 17:20, 24 April 2015 by Rainwarrior (talk | contribs) (restoring useful commentary from removed disch notes)
Jump to navigationJump to search


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.

Example Games:

  • MiG 29 - Soviet Fighter
  • Fire Hawk
  • The Fantastic Adventures of Dizzy
  • Bee 52

Overview

  • PRG ROM size: 128 or 256 KiB
  • PRG ROM bank size: 16 KiB inner; ( 64 KiB outer in iNES Mapper 232 )
  • PRG RAM: None
  • CHR capacity: 8 KiB RAM
  • CHR bank size: Not bankswitched
  • Nametable mirroring: Hardwired H or V (most) or mapper controlled 1-screen (Fire Hawk)
  • Subject to bus conflicts: No

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.

Registers

Outer bank select ($8000-$BFFF) (Only on iNES Mapper 232)

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
---- ----
xxxB Bxxx
   | |
   +-+--- Select 64 KiB PRG ROM bank for CPU $8000-$FFFF

Mirroring ($8000-$9FFF)

This register is present only on Fire Hawk, which uses the BF9097 IC. A submapper has been allocated for this difference.

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

Bank select ($C000-$FFFF)

This register is present on all games: BF9093 (most common), BF9096, BF9097, and CCU. The number of bits available vary: 4 for the BF9093, 3 for the BF9097, and 2 for the BF9096.

7  bit  0
---- ----
xxxx PPPP
     ||||
     ++++- Select 16 KiB 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.

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.

See also