The third installment in our Summer of Scheme series...
Functionally Old - Toward an Atari 2600 Emulator in Chez Scheme
Emulators aren’t just for playing video games from your childhood, but also a great way to understand how those old games and systems worked. Emulators also do not have to be written in C or C++, no matter what Stack Overflow says. In this talk, we will break down the experience of using Chez Scheme to implement an emulator for the 6502 processor, famously used in the Atari 2600, NES, Commodore 64, Bender from Futurama, and The Terminator. We will go through how Scheme helps shape the design of the system and how it really feels to use the language, both the good (like macros) and the bad (like library availability). We will also discuss future designs for integrating the 6502 into a larger system emulator, like the Atari 2600, and the challenges that poses.
Chris Frisz is a software engineer at Cisco who likes programming with parentheses and has a head full of video game trivia. He has worked on the Chez Scheme compiler, making it run in places that you wouldn’t expect. Chris also spent a long time working on a Clojure project to add tail call optimization to the language (which he presented at Clojure/Conj 2012), but he’s feeling much better now.