INES Mapper 068: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(clarify nametable registers - $C000 overrides the lower nametable and $D000 overrides the upper nametable, then mirroring gets done accordingly)
(→‎Registers: Good clarification, but I still find it worth mentioning that the lower and upper nametables always show up in these two respective areas of PPU address space)
Line 13: Line 13:
Map a 2 KiB CHR ROM bank into PPU $1800.
Map a 2 KiB CHR ROM bank into PPU $1800.
=== $C000-$CFFF: Nametable register 0 ===
=== $C000-$CFFF: Nametable register 0 ===
Map a 1 KiB CHR ROM bank in place of the lower nametable (CIRAM $000-$3FF).
Map a 1 KiB CHR ROM bank in place of the lower nametable (CIRAM $000-$3FF; PPU $2000-$23FF).
Only D6-D0 are used; D7 is ignored and treated as 1, so nametables must be in the last 128 KiB of CHR ROM.
Only D6-D0 are used; D7 is ignored and treated as 1, so nametables must be in the last 128 KiB of CHR ROM.
=== $D000-$DFFF: Nametable register 1 ===
=== $D000-$DFFF: Nametable register 1 ===
Map a 1 KiB CHR ROM bank in place of the upper nametable (CIRAM $400-$7FF).
Map a 1 KiB CHR ROM bank in place of the upper nametable (CIRAM $400-$7FF; PPU $2C00-$2FFF).
Only D6-D0 are used; D7 is ignored and treated as 1.
Only D6-D0 are used; D7 is ignored and treated as 1.
=== $E000-$EFFF: Mirroring ===
=== $E000-$EFFF: Mirroring ===

Revision as of 17:58, 27 February 2011

iNES Mapper 068 is a mapper used by After Burner 2 for Famicom. It has the unusual ability to map CHR ROM into the part of the PPU's address space used for nametables.

Registers

$8000-$8FFF: CHR bank at $0000

Map a 2 KiB CHR ROM bank into PPU $0000.

$9000-$9FFF: CHR bank at $0800

Map a 2 KiB CHR ROM bank into PPU $0800.

$A000-$AFFF: CHR bank at $1000

Map a 2 KiB CHR ROM bank into PPU $1000.

$B000-$BFFF: CHR bank at $1800

Map a 2 KiB CHR ROM bank into PPU $1800.

$C000-$CFFF: Nametable register 0

Map a 1 KiB CHR ROM bank in place of the lower nametable (CIRAM $000-$3FF; PPU $2000-$23FF). Only D6-D0 are used; D7 is ignored and treated as 1, so nametables must be in the last 128 KiB of CHR ROM.

$D000-$DFFF: Nametable register 1

Map a 1 KiB CHR ROM bank in place of the upper nametable (CIRAM $400-$7FF; PPU $2C00-$2FFF). Only D6-D0 are used; D7 is ignored and treated as 1.

$E000-$EFFF: Mirroring

7654 3210
   |    |
   |    +- Mirroring: 0 for vertical or 1 for horizontal
   +------ Chip select for PPU $2000-$2FFF (nametables):
           0 for CIRAM or 1 for CHR ROM

Mirroring works the same way in both CIRAM and CHR ROM modes.

$F000-$FFFF: PRG bank at $8000

PRG bank switching works much like iNES Mapper 002. Writes map a 16 KiB PRG bank into $8000-$BFFF, leaving $C000-$FFFF fixed to the last 16 KiB in the PRG ROM.

References

  • [362]mapper_docs.zip by Disch