INES Mapper 015: Difference between revisions
m (→Variants: category tree maintenance) |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:iNES Mappers]] [[Category:Pirate multicarts]] | |||
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 [[iNES]] format assigns '''iNES Mapper 015''' as the mapper used in ''100-in-1 Contra Function 16'', the first pirate multicart to be emulated. | ||
Line 68: | Line 70: | ||
== Variants == | == Variants == | ||
[[ | Here are Disch's original notes: | ||
======================== | |||
= Mapper 015 = | |||
======================== | |||
Example Game: | |||
-------------------------- | |||
100-in-1 Contra Function 16 | |||
Notes: | |||
--------------------------- | |||
Possible bus conflicts??? | |||
Registers: | |||
--------------------------- | |||
$8000-FFFF: A~[.... .... .... ..OO] | |||
[pMPP PPPP] | |||
O = Mode | |||
p = Low bit of PRG page (not always used) | |||
P = High bits of PRG page | |||
M = Mirroring (0=Vert, 1=Horz) | |||
PRG Setup: | |||
--------------------------- | |||
Depending on the Mode used, the 'p' bit may not be used. In the chart below, "P" will indicate that only the | |||
'P' bits are used to form a 6-bit page number... whereas "Pp" will indicate the full 7-bit page number. | |||
$8000 $A000 $C000 $E000 | |||
+---------------+---------------+ | |||
Mode 0: | P | P OR 1 | | |||
+---------------+---------------+ | |||
Mode 1: | P | { -1} | | |||
+---------------+---------------+ | |||
Mode 2: | Pp | Pp | Pp | Pp | | |||
+---------------+---------------+ | |||
Mode 3: | P | P | | |||
+---------------+---------------+ | |||
Powerup: | |||
--------------------------- | |||
All regs reset to 0 on powerup. |
Revision as of 23:06, 13 November 2011
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.
Hardware
Variants
Here are Disch's original notes: ======================== = Mapper 015 = ======================== Example Game: -------------------------- 100-in-1 Contra Function 16 Notes: --------------------------- Possible bus conflicts??? Registers: --------------------------- $8000-FFFF: A~[.... .... .... ..OO] [pMPP PPPP] O = Mode p = Low bit of PRG page (not always used) P = High bits of PRG page M = Mirroring (0=Vert, 1=Horz) PRG Setup: --------------------------- Depending on the Mode used, the 'p' bit may not be used. In the chart below, "P" will indicate that only the 'P' bits are used to form a 6-bit page number... whereas "Pp" will indicate the full 7-bit page number. $8000 $A000 $C000 $E000 +---------------+---------------+ Mode 0: | P | P OR 1 | +---------------+---------------+ Mode 1: | P | { -1} | +---------------+---------------+ Mode 2: | Pp | Pp | Pp | Pp | +---------------+---------------+ Mode 3: | P | P | +---------------+---------------+ Powerup: --------------------------- All regs reset to 0 on powerup.