Strange Loop

Making NES Games in Assembly

The Nintendo Entertainment System (NES) defined the look and feel of video games in the late 80's and early 90's. It was designed around the MOS Technologies 6502 CPU, a cheap microprocessor developed in 1975 and still manufactured today. The NES' impressive library of games was written using 6502 assembly language. Compared to assembly languages for modern processors, 6502 assembly is relatively simple, with only 53 possible instructions, one accumulator, two index registers, and a 256-byte stack. Combined with the NES' custom "Picture Processing Unit" (PPU) and highly optimized memory layout, these simple foundations allow for an incredibly diverse range of game experiences, and developers continually pushed the bounds of what the system was thought capable of until its commercial demise in 1995.

In this workshop, we will explore assembly development for the NES with a modern toolkit: - Understand how the NES hardware (console and cartridges) works - Create graphics tiles from scratch - Display backgrounds and sprites - Read from the controller(s) - Perform basic collision detection - Assemble our code into a playable .nes file

Kevin Zurawel

Kevin Zurawel


Kevin is a front-end developer at Braintree, where he works on tools that power merchants large and small. He is interested in programming music, making and analyzing games, and the intersections between code and the physical world. He has previously spoken on game development and computing history topics at ForwardJS, Abstractions, and Node.js Interactive North America.