Making NES Games in Assembly

When Nintendo released the Nintendo Entertainment System (NES) in the US in 1985, it quickly dominated the home video game market. Production of the NES ended in 1995, but it continues to be a popular platform, with several successful Kickstarter campaigns to fund the development of new NES games. Games for the NES are programmed in assembly, an extremely low-level programming language that gives the developer full control over the underlying hardware, but requires knowledge of how that hardware works. This means that learning assembly gives you insight into how computers in general interpret and execute programs, which can be applied to programming challenges in any other language.

In this workshop we will explore assembly development for the NES in a modern context, using emulators to run the games that we will develop. By the end of the workshop, you'll be able to draw graphics to the screen and handle input from the controller, and you'll have plenty of resources to continue learning on your own.


The software that we will be using is all cost-free and cross-platform, please have the following three programs installed - cc65, Nintaco, and NES Screen Tool.

About Kevin Zurawel

Kevin Zurawel has been an NES fan since he first played "Super Mario Bros." in 1989. He learned to program out of a love of video games, and ended up with a career as a front-end developer turned engineering manager. He has previously spoken on computing history and game development topics at conferences like Abstractions, Node.js Interactive, ForwardJS, and Strange Loop.

← Back to speakers