Prepare for some fun, the Raspberry Pi makes a perfect little emulator for the Atari 2600 games console, if you didn’t know it already the Atari 2600 is probably one the defining points in gaming console history, by the standards of today it may appear a little … erm under-specced however for reasons described below, I think this is actually an advantage.
The emulation is provided by a program called Stella and fortunately this is one of those instances, where you can use a package rather than downloading the source and compiling The lastest Raspian image has newer version of Stella than the older Debian Squeeze image.
Installation
Installation should be relatively smooth assuming you are running one of the Debian images.
sudo apt-get install stella
And you are done, unfortunately there are one or two small further steps to turn your Raspberry Pi into an Atari 2600 games consoles Note: you may expect to have to run startx to get a graphical desktop environment before you can run the emulator but this is definitely not the way to go, running a desktop takes up memory and CPU and is not needed.
Update
If you are using the new Raspian image, there will be no need to follow the steps to install sound tools, load sound module and add pi user to the Video group, all that will just works thanks to improvements in the OS.
Sound
In Debian squeeze the ALSA sound drivers are not installed by default so there is another install to run.
sudo apt-get install alsa-utils
Next you will have to load the sound module.
sudo modprobe snd_bcm2835
By default this should enable sound through your HDMI connection for more information on sound and how to switch sound output to the analog connector, play a wav file etc. there is a good article here.
Running the emulator
Now in theory you can run the emulator by simply typing stella
at the command prompt, remember there is no need to startx and start up a desktop, in fact for many programs like this that is likely to make them run slower or even not at all. Stella will happily set up an appropriate size display using the framebuffer. If you follow the previous link to find out more about the framebuffer here the third use mentioned is
Graphic programs avoiding the heavy overhead of the X Window System.and that is exactly what we are about here.
Unfortunately the program may return with an error about permissions, this is because unless you have done something about it before the pi user does not have permission to directly access the framebuffer. You can either run stella with sudo sudo stella
or you can add the pi user to the video group which will give permission to use the framebuffer (you will probably have to log back in after this to be able to run stella without sudo.)
sudo usermod -a -G video pi
Obtaining games
Now you probably need to read the documentation for Stella, by default however you are presented with a file chooser, all you need is some game roms, if you navigate to the .bin rom file and double click to load the game should start, you may of course need some information online about how to play the game or just a relatively old person nearby who will probably remember how to play it.
The rom files for just about every Atari game produce are available here at Atari Age, I believe in theory you should have possession of a real cartridge for any game you download (I actually possess about 40 cartridges and a console but I am one of those “old” people that would be handy to have nearby when working out how to play a game). If this bothers you, you can pick up cartridges from ebay, car-boot sales etc. etc. pretty cheap in most cases also.
Game play and teaching what is possible
Despite the age of these games there are many that are highly playable. I have managed to get modern teenagers playing some, verging on the addictive point, in the wild. Some games are even hard (try Gravitar for example). Games such a centipede, pheonix, defender(2), joust(wierd but fun) are very playable. When looking at old games on these type on emulators then anything that is fun to play has
More importantly imho, games like this can be coded yourself using something like pygame. Using simpler games as a reference it is possible for a novice to learn to produce a playable game.