liveBook · Manning

ROM image

As explained in Classic Game Programming on the NES: Make your own retro video game

PRG ROM is read-only cartridge memory containing executable game program code.

Game ROM is read-only cartridge memory. PRG ROM holds executable game code, while separate ROM can hold the tile patterns used for backgrounds and sprites. section 1.5.2 section 16.2.1

On the NES, PRG ROM participates in several practical limits and techniques:

  • Early games commonly provided 16K or 32K of ROM for game code, alongside 8K for graphical patterns. section 16.2.1
  • The NES can access only 64K of memory at once, so larger games swap memory banks into that address space. section 16.2.1
  • A mapper selects which PRG ROM bank is active when the program writes to designated cartridge memory locations. section 16.2.1
Figure 16.1 Standard NES cartridge memory layout

Use the standard cartridge memory layout to distinguish PRG ROM for code from CHR ROM for graphical patterns. section 16.2.1

Figure 16.2 Example of expanded NES cartridge memory layout

Compare an expanded cartridge layout to see how mapper hardware makes additional code and pattern storage available. section 16.2.1

Expanded cartridges can support much larger and more complex games. Custom logic may also add sound channels or nonvolatile storage for saved progress. section 16.5

How Classic Game Programming on the NES: Make your own retro video game covers it

How deep it goes
Explains capacity limits and mapper-controlled bank switching, but defers specific mapper implementations to further reference material.
Examples
Uses 16K, 32K, and 64K memory figures, standard and expanded cartridge layouts, and mapper-selected memory banks.
What it assumes
Assumes basic familiarity with NES cartridges and memory addresses while explaining storage limits and bank switching explicitly.
What you can do after
Evaluate/understand how NES cartridges store code and extend addressable game memory through mapper hardware.
How it connects
Connects PRG ROM with NES memory, cartridge mappers, bank switching, CHR ROM, and executable game code.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Classic Game Programming on the NES: Make your own retro video game. The section links point to the parts of the book it draws on.