Nintendo NES-001 User Guide - Page 38
D.4 MMC3, Address
View all Nintendo NES-001 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 38 highlights
• Bit 7 - Set to 1 to reset register. $C000-$DFFF Register 2: $E000-$FFFF • Bits 0-3 - VROM bank number to load into PPU $1000. If bit 4 of register 0 is set, this will be 4 KB banks n and (n + 1) where n is the value of bits 0-3, otherwise it is ignored. • Bit 4 - 256 KB selection register 1. Stores the high bit of 256 KB PRGROM selection in 1024 KB cartridges. • Bit 7 - Set to 1 to reset register. Register 3: • Bits 0-3 - PRG-ROM bank number to load into memory. If bit 3 of register 0 is clear, swaps 32 KB at $8000, otherwise swaps a 16 KB bank at either $8000 or $C000 based on bit 2 of register 0. • Bit 7 - Set to 1 to reset register. On reset, the first PRG-ROM bank is loaded into $8000 and the last PRG-ROM bank is loaded into $C000. Values are written to the registers in MMC1, one bit at a time until five bits have been written. By writing a value with bit 7 set, this buffering can be reset, causing the next write to be to bit 0 of the register. The buffering is also reset by writing to a different register. 256 KB swapping is not currently supported by the implementation of MMC1 in NES#. D.4 MMC3 Address $8000 $8001 $A000 $A001 $C000 $C001 $E000 $E001 Data • Bits 0-2 - Command number: • 0 - Swap two 1 KB VROM banks at PPU $0000. • 1 - Swap two 1 KB VROM banks at PPU $0800. • 2 - Swap one 1 KB VROM bank at PPU $1000. • 3 - Swap one 1 KB VROM bank at PPU $1400. • 4 - Swap one 1 KB VROM bank at PPU $1800. • 5 - Swap one 1 KB VROM bank at PPU $1C00. • 6 - Swap PRG-ROM bank at either $8000 or $A000 based on bit 6. • 7 - Swap PRG-ROM bank at either $A000 or $C000 based on bit 6. • Bit 6 - If 0, enables swapping at $8000 and $A000, otherwise enables swapping at $A000 and $C000. • Bit 7 - If 1, causes addresses for commands 0-5 to be the exclusive-or of the address stated and $1000. Executes the command specified by $8000, using this as the page number. • Bit 1 - Selects mirroring between horizontal (0) and vertical (1). • Bit 7 - Set to enable save RAM at $6000-$7FFF. IRQ Counter Register used to countdown to an IRQ. IRQ Latch Register used to store a temporary value to be copied to the IRQ Counter Register later. IRQ Control Register 0 used to disable IRQ generation and copy the IRQ Latch Register to the IRQ Counter Register. IRQ Control Register 1 used to enable IRQ generation. On cartridges with VROM, the first 8 KB bank is swapped into PPU $0000 on reset. 38