INES Mapper 018

From NESdev Wiki
Revision as of 01:03, 22 April 2015 by Myask (talk | contribs) (Has nonstandard sound hardware? Goes in category.)
Jump to navigationJump to search

iNES Mapper 018 represents the Jaleco SS88006 mapper used for Magic John (Japanese version of Totally Rad) and a couple other games.

This mapper appears to be connected only to A12-A14, A0-A1, and D0-D3, so the PRG bank and CHR bank numbers are split over two adjacent mapper numbers. Bits 0-3 are in the lower address of a pair (e.g. $xxx0 or $xxx2), and bits 4-7 are in the next higher address.

$8000-1: PRG $8000
3210 3210
|||| ||||
++++-++++- Select 8192 byte PRG ROM bank in $8000-$9FFF

$8002-3: PRG $A000
$9000-1: PRG $C000
(PRG $E000 is fixed to the last bank)

$A000-1: CHR $0000
3210 3210
|||| ||||
++++-++++- Select 1024 byte CHR ROM bank in $0000-$03FF

$A002-3: CHR $0400
$B000-1: CHR $0800
$B002-3: CHR $0C00
$C000-1: CHR $1000
$C002-3: CHR $1400
$D000-1: CHR $1800
$D002-3: CHR $1C00

The IRQ counter is a 16-bit down counter. Port $F001 controls how far the borrow propagates: If all counting bits wrap from $0 to $F, it doesn't modify the fixed bits before it but instead triggers an IRQ. Writes to $F000 or $F001 acknowledge the IRQ.

7654 3210  $F001: IRQ control
     ||||
     |||+- Enable (0: pause; 1: count)
     +++-- 0: Count down in bits 15-0 and hold no bits constant
           1: Count down in bits 11-0 and hold bits 15-12 constant
           2-3: Count down in bits 7-0 and hold bits 15-8 constant
           4-7: Count down in bits 3-0 and hold bits 15-4 constant

Alternate interpretation:

7654 3210  $F001: IRQ control
     ||||
     |||+- Enable (0: pause; 1: count)
     ||+-- Hold bits 15-12 constant
     |+--- Hold bits 15-8 constant
     +---- Hold bits 15-4 constant

This counter uses a reload value. All bits are reloaded, even the ones held constant.

  • $E000: Set bits 3-0 of counter
  • $E001: Set bits 7-4 of counter
  • $E002: Set bits 11-8 of counter
  • $E003: Set bits 15-12 of counter

Some games also have a µPD7756C ADPCM sound IC. If so,

  • $F003: Start playing sound specified by lower 4 bits.

See also