AtariAge Logo
  Have You Played Atari Today? 2600|5200|7800|Lynx|Jaguar|Forums|Store  



2600 101

A tutorial by Kirk Israel

So you want to be an Atari Programmer, make that 2600 sing, dance, do tricks for you? What are you, some kind of masochist?

In case you haven't heard, programming a VCS is not easy. It's a very quirky beast, it has very little memory or other resources to work with, and your programs has to hold the hand of the TIA television interface chip for (almost) every damn scanline... demanding a fairly detailed knowledge of what the TV's electron beam is doing as it draws the screen...and what it's doing (or at least for how long) when it's not drawing the screen. Not afraid? "You will will be."

So why do it? There are a number of reasons:
  • To connect in a fundamental way with the grandmaster of our misspent childhoods.
  • The challenge of it all. Like writing haiku while drunk and on the back of a charging rhino.
  • Actually, I hate challenges, but there's something cool about making a game out of such simple little pieces, kind of like Legos when they were all square, with maybe a few wheel pieces thrown in.
  • To interact with something you made on a real live TV.
  • The chicks.
  • Ok, I'm kidding about the chicks.
  • Why not program for other, more modern consoles? Despite (or because of) the difficulty of the 2600, there is a community and set of resources for it that I haven't seen for other systems you could potentially homebrew for. (YMMV)
  • Why not just make games for Windows, in VB? Or online, in Shockwave or Flash or Java? Yeah, go on, cry to mama you little wuss! But seriously: (successful) modern games are mulitmillion dollar productions done by large teams of people. Your program is likely to languish in shareware/freeware hell, ignored by millions, and competing for attention with thousands and thousands of other little games. Make a decent classic game, and you will get a lot of attention from the classic game collectors and their friends. You can even sell copies at shows like CVGE and PhillyClassic, and be duly admired in cash form. (If you work out the hourly rate for your programming efforts, you'd probably be better off flipping burgers, but that's not the point.)
But, "I am but a learner" myself right now. I'm writing this tutorial as I go along, with huge amounts of help from the fine friendly folk on the Stella mailing list- more on them later. I'll try not to make too many assumptions about what you know, but I'll probably be assuming a certain level of programming knowledge in my audience...if you've never written a single program in any computer language ever, the Atari probably isn't the best place to start.

Information Resources
These resources are your friends. Theoretically, if you went through all of the following, you might not need this tutorial! (I hope to make it worth your while anyway.)
  • The Stella mailing list. If you're serious about Atari programming, you should join this. This site has an archive going all the way back to October of 1996. More to the point, the people on the list seem pretty friendly to well meaning newbies. (Me being the case in point.) Check out the group's introduction for more details.
  • Garon Grainger's The Dig is an attempt to dig through the coal of the Stella list archive and bring out the diamonds. It has tons of resource links and code examples. (And has some way cool Atari Force graphics scattered about.) I can honestly say that I would probably not have had the gumption to tackle Atari projects without this site. BE WARNED, however: some of the code examples are known to be flakey, and not worthy rolemodels. Be sure to read the associated "msg" threads (links into the Stella Archive), and see what the follow up conversation says about the code.
  • If you're not familiar with 6502 Assembly Language (though it seems that many people who get into this hobby are, I'm not one of them) you should check out Assembly In One Step. (local mirror)
  • The infamous Stella Programmer's Guide. This is the closest thing we have to a bible. All about the TIA chip and the special ways to coax her magic from her. Here I have a local link to an excellent HTML conversion by B. Watson, the dig docs page has the original PDF, along with .txt and Word.
  • AtariAge has become a huge supporter of homebrew efforts. From putting up In Development pages, to running message board forums, to working with authors to get their games into hardware and working on real-live Ataris, to a great storefront, the site is a huge resource and I consider it THE online resource for Atari...heck, for almost all of classic gaming.
Next: The Development Environment

Introduction - The Development Environment - Into The Breach - My First Program -
Kernal Clink - The Joy of Sticks - Happy Face - PlayerBufferStuffer