Zepper wrote:
2. No, you must describe the mapper much like Disch' style, and assign a number to it. Other than that, I'm stuck.
Code:
========================
= Mapper CTC-04 =
========================
Example Games:
--------------------------
Gradius 2 (pirate version)
Notes:
--------------------------
This mapper is another pirate VRC2b, this time with PRG RAM and IRQs.
A mapper number hasn't been assigned to this particular board yet.
Registers:
---------------------------
Range,Mask: $7000-EFFF, $F003
$7000-$7003: [.... ....] Reset IRQ counter
$8000-$8003: [...P PPPP] Same as VRC2b (PRG select 0)
$9000-$9003: [.... ...M] Same as VRC2b (mirroring)
$A000-$A003: [...P PPPP] Same as VRC2b (PRG select 1)
$B000-$E003: [.... CCCC] Same as VRC2b (CHR select)
PRG-RAM:
---------------------------
This mapper has 2kB of PRG RAM mapped to $6000-$67FF, and mirrored at
$6800-$6FFF.
It is currently unknown if the VRC2 microwire interface at $6000 affects the
RAM.
IRQ behavior:
---------------------------
The IRQ is controlled by the highest bit of a 4096-CPU-cycle counter. The
counter is always running, and there is no way to stop it. It can only be reset
to 0 by writing to $7000.
The IRQ is asserted when the counter reaches 2048. The IRQ is cleared when the
counter reaches 0, either by wrapping around (from 4095 to 0) or by writing to
$7000.
ROM patch:
---------------------------
This mapper patches the topmost 2kB of the PRG ROM by redirecting all reads in
the $F800-$FFFF range to a 2kB EPROM. For most emulators, this can be ignored.
For MAME developers, the Gradius 2 ROM underneath the patch is identical to the
official version.
Any questions?