INES Mapper 067

From NESdev Wiki
Revision as of 14:53, 23 April 2011 by Tepples (talk | contribs) (Text dump based on my understanding of Disch's doc; MOS conformance to come later)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

iNES Mapper 067 represents the Sunsoft-3 mapper, used in Fantasy Zone II (J).

Registers

CHR bank 0 ($8800)

The value written here selects a 2 KiB CHR ROM bank at PPU $0000-$7FFF.

CHR bank 1 ($9800)

The value written here selects a 2 KiB CHR ROM bank at PPU $0800-$08FF.

CHR bank 2 ($A800)

The value written here selects a 2 KiB CHR ROM bank at PPU $1000-$17FF.

CHR bank 3 ($B800)

The value written here selects a 2 KiB CHR ROM bank at PPU $1800-$18FF.

IRQ load ($C800, write twice)

Write the high then low byte of a 16-bit CPU cycle count, much like PPUADDR. This directly affects the current count, not a reload value.

IRQ enable ($D800)

7654 3210
   |
   +------ 0: Pause counter; 1: Count

While bit 4 is true, the 16-bit count decreases by 1 every CPU cycle. Whenever the count wraps from $0000 to $FFFF, the mapper asserts an IRQ and pauses itself. Writes also acknowledge IRQ and reset a latch such that the next $C800 write goes to the high byte of the count.

Mirroring ($E800)

7654 3210
       ||
	   ++- Nametable mirroring (0: vertical; 1: horizontal;
	       2: 1-screen from CIRAM $000; 3: 1-screen from CIRAM $400)

PRG bank ($F800)

The value written here selects a 16 KiB CHR ROM bank at CPU $8000-$BFFF. As in mapper 2, $C000-$FFFF is fixed to the last bank of PRG ROM.

References