NINTENDO ENTERTAINMENT SYSTEM

Pure 6502 assembly—no BASIC, just the metal

Write code that runs on real hardware. Tier 1 beginning now.

CPU
Ricoh 2A03
Speed
1.79 MHz
RAM
2 KB
Released
1983

Learning Path

⚙️ 6502 Assembly (Phase 1)

The NES has no BASIC interpreter—you write assembly code that talks directly to the hardware. Master the iNES ROM format, PPU (Picture Processing Unit) initialization, VBlank timing, palette RAM, and interrupt vectors. Build working ROMs that run on FCEUX, Mesen, or real hardware via flash cart.

Tier 1 Complete • 32 lessons available

  • ✅ Tier 1: Complete Pong Game — iNES header, 6502 basics, PPU initialization, OAM sprites, controller input, ball physics, collision detection, scoring system, 2-player gameplay, APU sound effects, game states — Complete!
  • → 32 comprehensive lessons building a complete 60fps Pong game in 6502 assembly
Start Learning Assembly →

🎮 Advanced NES Programming

Master sprites, nametables, scrolling, CHR-ROM, mappers, and sound (APU). Learn advanced techniques like sprite multiplexing, raster effects, and bank switching. Build complete games that rival commercial releases from the 1980s.

Coming soon: Advanced phases with sprites and sound

In Development

What You'll Learn

PPU Programming

Master the Picture Processing Unit: tiles, sprites, nametables, and the famous scrolling techniques that defined a generation.

APU Sound

Program the Audio Processing Unit's five channels: two pulse waves, triangle, noise, and DMC for authentic 8-bit music.

Mapper Magic

Understand cartridge mappers and how they expanded the NES beyond its limits. Bank switching and advanced techniques.

Controller Input

Read the iconic NES controller. Implement responsive controls and special button combinations for your games.

8×8 Pixel Tiles: The Building Blocks

Every NES graphic is built from 8×8 pixel tiles stored in pattern tables

Combine these tiles to create characters, backgrounds, and entire worlds

NES Memory Map

$0000-$07FF RAM (2KB, mirrored)
$2000-$2007 PPU Registers
$4000-$4017 APU & I/O Registers
$4020-$FFFF Cartridge Space
$8000-$FFFF PRG-ROM

Ready to Program the NES?

Install ca65/ld65, boot your emulator, and write your first NES ROM. No BASIC interpreter, no frameworks—just you, the 6502, and direct hardware control. Build something that runs on real hardware.

Start Coding → View on GitHub