The Atari 2600 VCS is one of my favorite classic game machines. One of my first emulator projects was writing an MSDOS port of a 2600 emulator. While writing the emulator I learned a lot about how the 2600 works. This page will be a compilation of things I have learned about the 2600 and links to information on the net.
Kevin is a classic video game tech guru, especially for the 2600. His page is going to have a lot of tech info on the 2600 as well as other systems. Check it out!
This is probably one of the best 2600 programming pages I have found.
This is an archive of all the messages from the Stella Programming Mailing List. This is currently one of the best places to discuss 2600 programming and the archive contains a lot a good information and source code.
This is a nice orginized archive or 2600 source code that has been posted to the Stella mailling list.
Virtual VCS is an MSDOS port of the x2600 VCX emulator (now known as Virtual 2600) which was written by Alex Hornby. This was the first emulation project I worked on and I was quite proud of the results. I have stopped further development on it since it has been superceeded by other much better 2600 emulators, and because I have moved onto other projects. I am leaving the source and binary here for educational purposes.
Virtual VCS and X2600 are distributed under the terms of the GNU Public Licence.
Click here to download version 0.60 of Virtual VCS.
Click here to download version 0.60 of Virtual VCS source code.
Due to the flood of good Atari 2600 emulators in the past few months I will not be doing any future development on VVCS. I am very glad to have provided the first non-commercial Atari 2600 emulator for MSDOS and to have given a boost to some of the later 2600 authors, who's emulators a superior to mine. I did some work on an MSDOS port of Alex Hornby's new V2600 source code. V2600 is a combination of Alex's original x2600 code, the fixes and improvements I made in Virtual VCS, as well as some more improvements made by Alex himself. Alex has recently released an MSDOS binary of V2600 that works pretty good. I have done some further work on it, and have gotten sound working. A new version of the MSDOS binary should be released in the near future.
For information on the 6507 microprocessor goto by 6502 Processor page.
Stella Programming Guide: The official Atari 2600 (Stella) programming manual from Atari in plain text format.
Adobe Acrobat Format (offsite link)
Combat: This is the source code for Atari's Combat cartridge that came from one of the 2600 programming documents. It has been extensively commented by Nick Bensema.
Adventure: Fully annotated source code for Atari's Adventure cartridge.
Color Demo: This is the source code for the Color Demo program from the MagiCard manual. It is in the correct format to be compiled by as65.
DASM.ZIP: This is a new 6502 cross assembler for MSDOS. It supports pretty much any feature you could want in an assembler including macros, and the ability to produce raw-binary files. Thanks to Bob Colbert for porting this assembler from the Amiga.
2600gfx.zip: These programs allow you to extract graphics from Atari 2600 binary files into a text file, then turn the text file back into a binary. You can use these programs to put your own graphics into 2600 games.
distella.zip: This is an excellent Atari 2600 cartridge disassembler. I creates re-assembleable code, puts in register labels, and automatically separates data from code.
There are a couple of different ways of loading your code into the 2600 to run it. I use a custom built RAM cart with a battery backup, and a PIA card that goes into a slot in my PC to read carts and to write to my RAM cart. Here are some links to pages with different development system ideas:
One of the easiest ways of doing 2600 development is to simply run you code on an emulator. There are a number of emulators currently available for MSDOS and Windows. For development work I recommend PC Atari by John Dullea. I do not recommend the Activision Action Pack for doing development work. It is tedious to use, and there are some features of the 2600 (like the select and reset switches) that it does not emulate.
Here are some links to good 2600 emulators:
Virtual 2600:
A 2600 emulator for Unix. The page has full source code as well as Linux binaries. This is the emulator that my Virtual VCS is based on. It is currently running MUCH faster the VVCS. V2600 has not been updated for many months so it may no longer be under development.
The following are schematics that I have traced out by hand. I cannot guarantee that these schematics are accurate, or that they are the same for all versions of a piece of equipment.
These where all draw with Orcad, exported to a DXF file, imported into Corel Photopaint, then exported as a GIF.
alt.atari.2600.programming - This is a fairly new group so it may not be on the news serve you use yet.