INES Mapper 015
The iNES format assigns iNES Mapper 015 as the mapper used in 100-in-1 Contra Function 16, the first pirate multicart to be emulated.
The mapper allows multiple NROM or BNROM games plus one UNROM game to be used with very little modification. A few games originally released on a CNROM compatible board (such as two variants of Tetris) showed up on the cart; these were ripped to NROM by tossing out all 8 KB CHR banks except the one used for gameplay.
Overview
- PRG ROM size: Up to 512 KB
- PRG ROM bank size: 8 KB, 16 KB, or 32 KB
- PRG RAM: 8 KB
- CHR capacity: 8 KB RAM
- CHR bank size: None
- Nametable mirroring: Controlled by mapper
- Subject to bus conflicts: Unknown
Banks
There is one switchable bank. How this is mapped into depends on the current bank mode (see Registers below).
Bank mode 0 ( 32K )
- CPU $8000-$BFFF: Bank B
- CPU $C000-$FFFF: Bank (B OR 1)
If bit 0 of B equals 1, then bank modes 1 and 2 are identical.
Bank mode 1 ( 128K )
- CPU $8000-$BFFF: Switchable 16 KB bank B
- CPU $C000-$DFFF: Fixed to last bank in the cart
This mode uses the same configuration as UNROM.
Bank mode 2 ( 8K )
- CPU $8000-$9FFF: Sub-bank b of 16 KB PRG ROM bank B
- CPU $A000-$FFFF: Mirrors of $8000-$9FFF
Bank mode 3 ( 16K )
- CPU $8000-$BFFF: 16 KB bank B
- CPU $C000-$FFFF: Mirror of $8000-$BFFF
Registers
Control ($8000-$FFFF)
This is a 10-bit register. The upper 2 bits of the value are set from address lines A1-A0.
15 bit 8 7 bit 0 Address bus ---- ---- ---- ---- 1xxx xxxx xxxx xxSS | || | ++- Select PRG ROM bank mode | 0: 32K; 1: 128K (UNROM style); 2: 8K; 3: 16K +------------------- Always 1 7 bit 0 Data bus ---- ---- bMBB BBBB |||| |||| ||++-++++- Select 16 KB PRG ROM bank |+-------- Select nametable mirroring mode (0=vertical; 1=horizontal) +--------- Select 8 KB half of 16 KB PRG ROM bank (should be 0 except in bank mode 0)
The result when b=1 outside of bank mode 0 is not specified.
Power-up state: bank mode 2, bank 0, mirroring not specified.