YAPC::NA 2014 • Orlando, FL

Programming the Atari 2600 "Video Computer System"

By Scott Walters (‎scrottie‎) from phoenix.pm
Date: Monday, 23 June 2014 16:00
Duration: 50 minutes
Target audience: Intermediate
Language: English

You can find more information on the speaker's site:


This talk drops virtually all abstraction and shows how to program the simple 8 bit processor and custom designed video hardware in the Atari 2600 "VCS". Users familiar with high level languages might find this an interesting introduction to how CPUs actually work.
Famous for its blocky graphics and simplistic games, the 2600 was the second programmable home video game system, introduced in 1977. Graphics are generated on the fly, pixel by pixel, at 60 frames per second by setting up various bits of hardware logic and orchestrating them using the CPU. Controlling logic to display graphics is part of the challenge and creative process of creating a 2600 game.
The 2600 demoscene and homebrew game scene are alive and well. Modern 2600 games push the hardware far beyond what was possible and benefit from original chip schematics, near perfect emulator/debuggers, documentation of graphics techniques, carts with active logic and RAM on them, and a fundamentally open source, collaborative development model.
We'll learn how to program the MOS Technologies 6502 processor (later used in the C=64, Apple ][, NES, and many other systems but fundamentally the same as modern CPUs), control the Atari TIA video hardware, and then we'll do some shaded realtime 3D graphics.

Update: Slides are available at https://gist.github.com/scrottie/ae628db55726670c54e8

Attended by: