The Kenny McCormick Memorial
Atari 2600 Programming Page
Updated 11/3/97:
Minor corrections. Watch for OYSTRON coming soon!
Tools |
Games |
Homebrew |
Docs |
Links |
Misc |
Mail
The Atari 2600 is one of the simplest video game systems ever invented,
yet it is one of the most complicated for which to program. Even the simplest
games have required programmers to write tight code to fit in the 4K of
address space, fast code to account for many timing considerations, and
smart code to squeeze as much as possible out of the primitive TIA chip.
For this reason, very few new Atari 2600 games have come out despite the
availability of the Supercharger
and all of the development tools designed to work with it. Even the Vectrex
has had five new games released in the past two years. Hopefully, this
page will change all that.
Programming Tools
For DOS or Windows
-
StellaGraph 1.1 by Christopher James Pepin
- Makes the task of designing playfield graphics that much more bearable.
Visit the homepage.
Requires version 4 of the VB runtime libraries, see readme file.
-
Stella
version 0.7, by Bradford W. Mott, et al.
A faithful Atari emulator for many platforms. Originally developed for
Linux, eventually ported to DOS, OS/2, Power Mac, Unix/X-Windows, and
now Windows 95.
-
PC Atari
version 2.0b, by John Dullea.
.
Runs under DOS or Windows 95.
Invaluable for those developing on slow machines, especially now that
it's so much more compatible. This one even handles the Cosmic Ark
starfield effect, as well as Pitfall II.
-
DASM version 2.02 by Matt Dillon.
Zip file.
Compiles 6502 source code. Much of the code on this page is
in DASM format.
Use -f3 switch to compile standard .BIN files.
-
Makewav
version 3.1, by Bob Colbert.
Zip file.
Converts 2k, 4k, or 6k BIN files into WAV files that
can be played into the Supercharger.
-
DiStella
by Bob Colbert.
Zip file.
Disassembles BIN files. Includes cycle counts, too. Find out what makes
your favorite game tick.
For Amiga
For Macintosh
Nothing yet! But you can help if you have a Mac and a C compiler.
DiStella, Makewav, and DASM are all written in C. If you can build it,
we can use it.
For Linux
-
Linux VCS package, contains DASM, Makewav, and DiStella executables
for Linux. Executables ONLY, no source code or docs. Thanks to Greg
Troutman for compiling these for everyone.
Download the zipped file, and then visit the
pages for
Makewav,
and
DiStella.
Disassembled Games
- Combat Updated 2/26/97. Reverse-engineered
by Nick Bensema. One of the first public-released reverse-engineering
attempts. Compiles with DASM.
- Defender Updated 2/24/97. Far from even
close to coherent, but it does compile.
- Adventure From VGR,
almost every line of code is explained here. Strange format, hex numbers
have & and there are no equates. But still a smashing job. He used
these notes to write Indenture.
- Freeway Reverse-engineered by Bill Heineman,
Very complete. Compiles on an Apple II; it's that old. :-)
Home-Brewed Projects
If you have any programs you would like added to this list, please mail
me at nickb@primenet.com.
PLEASE remember
to do this because I usually won't put up anything unless I get explicit
permission to put it up.
These games are in formats which may not be
familiar to some users. Games in .BIN format can be run on emulators for
play on your computer of choice, or converted into .WAV files by a program
like Makewav. Both kinds of programs are available in the
tools section.
Games in .WAV format can be played on Atari systems equipped with Starpath
Superchargers. Some games take advantage of the Supercharger's memory
capabilities and are only available in .WAV format.
For your convenience, these games are now listed so that the newest
entries are listed first, for your convenience.
Keep an eye out for
OYSTRON by Piero Cavina - Currently up to version
2.9, and almost ready for release!
-
RESCUE by Greg Troutman - There's this space station, you're
supposed to dodge the asteroids so you can land and rescue
the guys. Here's an
off-site link to the game; it's updated quite often. I can't
keep up with the updates, frankly, but the link will always give
you the latest public version.
-
INV by Erik K Mooney - This project was intended to become
a more arcade-faithful version of Space Invaders. It has animated
invaders, and almost-functional shields and two-player modes. The
project is halted, for now, but released for the benefit of other
programmers. Everything you need is in thie
zip file
-
Stell-A-Sketch by Bob Colbert -
homepage
- another Bob Colbert production. Makes extensive use of the
Supercharger's RAM. The latest version allows use of driving
controllers, the joystick, or mice from the Atari ST or Amiga.
Wow.
- Tetris26 by Colin Hughes - 9-Jun-97 version, a tetris clone
made as a programming exercise. Uses a 20-column display for top line,
color playfield, blocks are slightly spaced, playfield is arcade-size
(10 blocks wide). Read the source code to see how he did it. Download the
zip file for everything you need. Freeware.
- Led Zeppelin Demo - version 0. As far as I know, this is the
first Atari 2600 demo with sound. It sucks, though, because I
haven't put in drums, and it doesn't follow proper VCS program flow; i.e.
it doesn't draw a screen. Look for updates this summer by me, or sooner
by other programmers. Source and binary are all available in this
zip file.
-
The Dark Mage by Greg Troutman -
The first text adventure for the Atari 2600. Text routines are based on
Stellar Track by Atari. The most current version of the program is
available as
zipped .WAVs
that work on your Supercharger, and now in an
8K .BIN
that works with emulators and on cartridges.
Also, check out the original 4k version:
zipped with source,
.BIN only. Note: The source code compiles
with DASM 2.12. Unfortunately, only 2.02 is available for DOS, so
far.
-
Okie Dokie by Bob Colbert -
homepage,
zipped archive,
believed to be the first home-brewed VCS game since Edtris. Based
loosely on games like Merlin and Lights-Out. The home page contains
the source code, cartridge information and other information regarding
this shining ray of hope to all VCS programmers.
Programming Documents
-
Stella Programmer's Manual
Detailed descriptions of most of the hardware of the Atari 2600.
-
Stella Manual in Word for Windows
Explains the Atari hardware with formatting and illustrations. If you
know where to find the version in PDF format, please let me know.
-
Supercharger Notes"
by Christopher Salomon, 16-Jun-97.
Notes concerning tape formats, Supercharger RAM, and bankswitching.
-
Sound Frequency and Waveform Guide
by Eckhard Stolberg, updated 22-Jun-97. This file contains, so far,
the most complete information available on the 2600's sound hardware.
This chart lists every distortion's approximate note value where
applicable, and contains some extra technical information. Also see
an earlier version done by Glenn Saunders in
April.
-
Guide to Cycle Counting
Updated 4/3/97.
My first programming document. The easy way to deal with a few of the
timing issues of the 6502 and TIA.
-
How to Draw a Playfield
Updated 3/2/97. Covers concepts of program flow on an Atari 2600, as well
as a complex look at a simple display routine. Compiles with DASM, so feel
free to experiment with it; filter all the lines that begin with ';' to get
a compact source listing.
-
VCS.H
- The one used in Dark Mage. The one I used to use sucks.
-
How to Program the 2600 in BASIC :-)
-
6502 information... an off-site link to a file on the Wiretap archive.
VCS Programming Links
-
Bob Colbert's Atari 2600 Homepage
Contains information and tools for the Starpath Supercharger, allowing
one to use it as an inexpensive development system. Also has some
hardware information, such as how to build a 2600 multicart, and how to
modify your Supercharger to run ALL of the 2k or 4k games available.
-
Dan
Boris' Atari tech page
Highlights of this page include Boris'
6502 Processor Page
which contains many files with information on the processor used in
the Atari 2600. These files are especially useful for those who have
no experience in 6502 assembly. Also, check out his section on 2600
development systems.
-
Stella Mailing
List Archives
contains all of the brilliant ponderings of contributors to the
programmers' mailing list administered by Glenn Saunders. Contains
much information that is too specific, outdated, or incomplete to be
included here. You may also
subscribe
to the list if you're interested in keeping up with current developments.
MIscellaneous
These links aren't entirely about VCS programming, but are
related in some way and are most likely of interest to VCS programmers.
- Vectrex Development Pages
The Vectrex shares much in common with the VCS, and is certainly just
as unique.
-
Cyberpunks Project Page updated 9/10/97
- The FAQ is now HTML-ized. Multimedia coming soon. Cyberpunks brought
us the Supercharger CD, and their latest project is a documentary about
the 2600.
-
Yoshi's NES Development page
- Just like this page but not quite as many files; there are even fewer
NES developers than there are VCS developers.
-
NEScript
- NEScript is intended to be a mid-level programming language for the
Nintendo Entertainment System. It is currently in the design stages,
and so far is very similar to C. The author hopes to have a compiler
out in about two months. Such a thing is highly improbable for the VCS,
so this is your best bet if you want to program a legacy video game
system without learning assembly language.
-
NES Software Development Information
- Not really an organized information repository, but the story about
how the author managed to create his own working home-brewed NES demo.
© 1997 Nick Bensema