Fred Quimby of the Stella Atari 2600 VCS homebrew game development community has written a BASIC compiler for the Atari VCS. Yes, you read that correctly -- it lets normal mortals write games for the Atari we all played to bits before we finally poured orange juice into the console by accident when we were XYZ years old. You know, this thing:
You do need a few other tools to assemble your game, but they are all freely available, and then you can play it on the free Stella emulator software and potentially even burn it to a real Atari cart.
I posted a double-dog dare of sorts recently on the Stella mailing list describing how this might be done. I'm not sure if I got Fred's ball rolling, though, or if he was already quietly plugging away at it.
Edit: there is now a home page for the latest information about Fred's "Batari BASIC".Fred's announcement and a link to download the actual .zip file are behind the cut. You need a Windows PC to use the compiler, although I'm sure it wouldn't be a big deal to port it to something else.
Date: Thu, 7 Jul 2005 06:05:42 -0400
From: Fred Quimby <c9r@hotmail.com>
Reply-To: stella@stella.biglist.com
To: stella@stella.biglist.com
Subject: [stella] Atari 2600 BASIC compiler
Parts/Attachments:
1 Shown 53 lines Text
2 117 KB Application
----------------------------------------
I'm probably going to get a mix of praise and criticism for this. Anyway,
I've written a BASIC compiler for the Atari 2600. Yes, you read that right.
This is not a joke!
Of course there is no "print" statement, string operations or arrays... But
I've managed to abstract some of the harder things to simple BASIC keywords
and functions.
Also, it doesn't generate binaries directly, instead it converts them to an
assembly file in DASM syntax, then invokes DASM to make a binary. It comes
with a canned kernel with two players, two missiles, and asymmetric
playfield and a 6-digit score, but there's no reason why one must use this
kernel - in fact it is possible for a somewhat-experienced programmer to
make it work with almost any kernel.
It is my hope that folks will use this BASIC as a stepping stone to serious
2600/6502 programming, much like we all did in the past on our C-64's,
Apples or Atari 8-bits. Since it generates meaningful assemblies instead of
binaries, I think this is likely, or at least I remain hopeful.
The included kernel uses a bitmapped 32x12 playfield and has easy to use
scrolling routines too, which could be used to make a car racing game or
something of that sort. Calling the display kernel is not automatic - you
must use the drawscreen function.
Also, the compiler generates pretty efficient code, or at least I think so.
As long as you're not using too many of the playfield scrolling routines, I
think (I hope) it's unlikely that you will exceed the time alloted for
overscan/vblank. The compiler also inserts conditional compilation flags to
prevent player graphics from wrapping page boundaries and can also be
configured to automatically use branches instead of jumps where the target
is near.
Also, I haven't abstracted out all 2600 intricacies - you still have direct
access to any TIA register and can include inline assembly. In fact you
must use TIA regs for some things, like colors and sound, but you access
them just like any other variable.
To learn more, read the README file or ask me questions, or tell me I'm
crazy or something since I have been critical about this very thing in the
past...
Please try it out and tell me what you all think!
Download Fred's Atari 2600 BASIC Compiler Here
Tags: atari, games, geek