Systems · Lessons available
Nintendo Entertainment System
Build NES games through 6502 assembly, from the first cartridge image to programs that coordinate input, graphics and sound.
This track explores a console workflow: prepare a cartridge image on the host, then run it on the target. Tiles, sprites and display timing make the relationship between asset data and the visible game particularly clear.
Choose a language
Each route has its own guided sequence. You can begin without completing another language track or Foundations. Use shared explanations when they help with the program you are building.
Counts reflect authored lesson pages. They do not mean every planned game is finished or every example has been checked on original hardware. Each track shows its available material and planned projects.
Prepare the right configuration
Follow the lesson’s region, cartridge mapper and memory configuration. The standard cartridge lessons load the .nes file you build; they do not require a separate desktop or BASIC environment. Assembly is the language of this track, not the only language that can produce NES software.
The system setup guide introduces the development tools. Check the chosen language’s setup instructions before installing anything. The Setup Guide explains host and target, source and built output; the ROMs guide covers firmware and system files.
Explore the machine and its games
The Vault provides fuller explanations and historical context. These articles are optional reading alongside the lessons.
Nintendo Entertainment System
The console, cartridges and hardware.
Read the article →Picture Processing Unit
How the console turns tile and sprite data into a display.
Read the article →Audio Processing Unit
The sound channels available to NES programs.
Read the article →NESdev
A community and technical resource for NES development.
Read the article →Follow a question further
The Craft develops game-design explanations; its current Maths for Games and Game Feel pages are outlines. The Pattern Library offers techniques to adapt, with their machine and language requirements.
Explore other systems to compare how a familiar idea changes with the language, memory layout or hardware. For additions to the site, read What’s New. The contribution guide explains how to help.