PowerPak Menu: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(work in progress)
 
m (typo)
Line 1: Line 1:
The PowerPak boot ROM and menu system use its own simple mapper. The PowerPak menu is split into a series of modules that reside at $0400-$07FFF in the NES's built-in RAM and are loaded from the CF card. After booting, the module "I.MAP" is loaded and run.
The PowerPak boot ROM and menu system use its own simple mapper. The PowerPak menu is split into a series of modules that reside at $0400-$07FF in the NES's built-in RAM and are loaded from the CF card. After booting, the module "I.MAP" is loaded and run.


== Banks ==
== Banks ==

Revision as of 02:04, 10 July 2017

The PowerPak boot ROM and menu system use its own simple mapper. The PowerPak menu is split into a series of modules that reside at $0400-$07FF in the NES's built-in RAM and are loaded from the CF card. After booting, the module "I.MAP" is loaded and run.

Banks

  • PPU $0000-$1FFF: 8 KB switchable CHR RAM bank.
  • CPU $6000-$7FFF: 8 KB switchable PRG RAM bank, selects from the 512 KB "PRG ROM" space.
  • CPU $8000-$BFFF: 16 KB switchable PRG ROM bank, selects from boot ROM.
  • CPU $C000-$FFFF: 16 KB PRG ROM bank, fixed to the last bank of boot ROM.

Registers

FPGADATA ($5000)

The boot ROM writes $FF to this register. It tells the FPGA it is being reprogrammed.

FPGAPROGRAM ($5800)

7  bit  0
---- ----
DDDD DDDD
|||| ||||
++++-++++- Writes a byte of configuration to the FPGA.

MAPPERWR ($8000)

7  bit  0
---- ----
.... ..DD
       ||
       ++- Selects the bank of boot ROM that appears at $8000-$BFFF.

Banks 0, 1 and 2 contain the initial FPGA configuration. Bank 3 contains 8KB of font and then 8KB of system routines. As the last 16KB are also accessible via the fixed bank, the $8000-$BFFF area isn't useful for menu software.

PRGBANK ($4200)

7  bit  0
---- ----
WCDD DDDD
|||| ||||
||++-++++- Selects the bank of PRG RAM that appears in $6000-$7FFF.
|+-------- Enable CHR RAM writing if 1.
+--------- Selects from 32KB of WRAM instead of main PRG RAM.

CHRBANK ($4201)

7  bit  0
---- ----
..DD DDDD
  || ||||
  ++-++++- Selects the bank of CHR RAM used.