Skip to content
Game 1 128 Units

Dash

A fast-paced side-scrolling runner teaching PPU graphics, sprite management, and NMI-driven game loops.

Coming Soon

Dash is currently in development. Check back soon!


What You’ll Build

Side-scrolling runner. The world rushes past. Obstacles appear. React or crash. Every frame counts.

Guide your character through an ever-accelerating world of obstacles. Jump, slide, and dodge your way to survival. The NES PPU renders the scrolling world while your code keeps the player alive.

Why This Game?

Dash is your first NES game — and it teaches everything you need to know about the hardware. The PPU draws the background. Sprites draw the player and obstacles. The NMI interrupt drives the game loop. Controller input keeps you in control.

  • Set up the PPU and understand tile graphics
  • Manage hardware sprites for the player and obstacles
  • Build an NMI-driven game loop that runs at 60fps
  • Read controller input for responsive controls
  • Implement collision detection between sprites and background
  • Create a scrolling world that gets faster over time

By the end, you’ll understand how the NES draws every frame.

Skills You’ll Master

  • PPU graphics — tiles, palettes, nametables
  • Sprite management — OAM, positioning, animation
  • NMI handling — vblank-driven game loop
  • Controller input — reading the joypad
  • Scrolling — hardware scroll registers
  • Collision detection — sprite vs background

Prerequisites

This is Game 1. No prerequisites — just enthusiasm and a willingness to learn 6502 assembly.

You’ll need an assembler (ca65), a linker (ld65), and an emulator (Mesen or FCEUX).

Time Investment

128 units at 60-90 minutes each. Roughly 128-192 hours total, spread across 8 phases.

Unit Roadmap

16 of 128 units available
Phase 2

Phase 2

Expand mechanics and variety

Units 17–32 ~16-24 hours Coming Soon
Unit 17 · Unit 18 · Unit 19 · Unit 20 · Unit 21 · Unit 22 · Unit 23 · Unit 24 · Unit 25 · Unit 26 · Unit 27 · Unit 28 · Unit 29 · Unit 30 · Unit 31 · Unit 32
Phase 3

Phase 3

Content and level design

Units 33–48 ~16-24 hours Coming Soon
Unit 33 · Unit 34 · Unit 35 · Unit 36 · Unit 37 · Unit 38 · Unit 39 · Unit 40 · Unit 41 · Unit 42 · Unit 43 · Unit 44 · Unit 45 · Unit 46 · Unit 47 · Unit 48
Phase 4

Phase 4

Visual polish and effects

Units 49–64 ~16-24 hours Coming Soon
Unit 49 · Unit 50 · Unit 51 · Unit 52 · Unit 53 · Unit 54 · Unit 55 · Unit 56 · Unit 57 · Unit 58 · Unit 59 · Unit 60 · Unit 61 · Unit 62 · Unit 63 · Unit 64
Phase 5

Phase 5

Audio and music

Units 65–80 ~16-24 hours Coming Soon
Unit 65 · Unit 66 · Unit 67 · Unit 68 · Unit 69 · Unit 70 · Unit 71 · Unit 72 · Unit 73 · Unit 74 · Unit 75 · Unit 76 · Unit 77 · Unit 78 · Unit 79 · Unit 80
Phase 6

Phase 6

Advanced features

Units 81–96 ~16-24 hours Coming Soon
Unit 81 · Unit 82 · Unit 83 · Unit 84 · Unit 85 · Unit 86 · Unit 87 · Unit 88 · Unit 89 · Unit 90 · Unit 91 · Unit 92 · Unit 93 · Unit 94 · Unit 95 · Unit 96
Phase 7

Phase 7

Optimisation and testing

Units 97–112 ~16-24 hours Coming Soon
Unit 97 · Unit 98 · Unit 99 · Unit 100 · Unit 101 · Unit 102 · Unit 103 · Unit 104 · Unit 105 · Unit 106 · Unit 107 · Unit 108 · Unit 109 · Unit 110 · Unit 111 · Unit 112
Phase 8

Phase 8

Final polish and distribution

Units 113–128 ~16-24 hours Coming Soon
Unit 113 · Unit 114 · Unit 115 · Unit 116 · Unit 117 · Unit 118 · Unit 119 · Unit 120 · Unit 121 · Unit 122 · Unit 123 · Unit 124 · Unit 125 · Unit 126 · Unit 127 · Unit 128