Home
entries friends calendar user info Goode Trouble Previous Previous Next Next
Maldrobe Warfunctions - Must-read for vintage video gaming fans
A Secret Weapon In Many Ways
boutell
[info]boutell
Add to Memories
Tell a Friend
Must-read for vintage video gaming fans
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: , ,

Comments
nothings From: [info]nothings Date: July 7th, 2005 08:07 pm (UTC) (Link)

how soon we forget

boutell From: [info]boutell Date: July 7th, 2005 08:38 pm (UTC) (Link)

Re: how soon we forget

The kinder, gentler response: I haven't forgotten. But the original "BASIC Programming" cart was a cute toy that couldn't do much (though it was amazing that anything like that could actually run on the 2600 itself, of course). Fred Quimby has written a practical BASIC compiler for the PC which outputs native code for actual 2600 games.

The uebergeeky, you're-wrong-I'm-right response: The "BASIC Programming" cart was an interpreter. A bytecode interpreter, I guess. Not a compiler. Phbbt!

Still want to write a real 2600 game the old skool way, of course.
nothings From: [info]nothings Date: July 7th, 2005 09:35 pm (UTC) (Link)

Re: how soon we forget

of course I was teasing.

If you want to be ubergeeky, your compiler/interpreter thing is totally irrelevant (at least in the context of your original post, where you talk about the joy of being able to develop 2600 apps using BASIC): what's important is that this compiler doesn't run on the 2600, but externally, and thus you can make a whole cartridge from it. (If that cartridge were an interpreter with embedded byte-code, that would be just as good, possibly better since it might be able to handle larger programs.)
toastyman From: [info]toastyman Date: July 8th, 2005 02:21 am (UTC) (Link)
You appear to have been officially Slashdotted.

Congrats!
boutell From: [info]boutell Date: July 8th, 2005 04:24 am (UTC) (Link)
Whee! I submitted the story earlier today. I can tell they used my submission because they linked to my journal, but that's the only mention of me and they rewrote the story. Odd, but not really an issue, since Fred Quimby deserves all the credit anyway.
5 comments or Leave a comment
profile
Tom Boutell
User: [info]boutell
Name: Tom Boutell
Website: Goode Trouble
calendar
Back September 2008
123456
78910111213
14151617181920
21222324252627
282930
page summary
tags