Game Development Community

Retro GID Possibility

by Jay Barnson · in Game Design and Creative Issues · 07/08/2005 (10:17 am) · 17 replies

Now you can program games for the ORIGINAL Atari 2600 (also dubbed the "Atari VCS") system - in BASIC.

You can even burn them onto a cartridge if you have the hardware. And the hardware to run it on - those systems are getting scarce!

Or you can just use an emulator.

www.livejournal.com/users/boutell/273044.html

A while ago Tom Bampton was talking about the possibility of doing a retro GID. Here's something that would make it relatively easy to do a game for retro hardware. Since we get the advantage of modern-day tools (in this case, a modern BASIC compiler and assembler), we could probably do better than the guys who gave us PAC-MAN and E.T. for the Atari (those of you who remember can smile about it today).

Just a thought :)

About the author

Jay has been a mainstream and indie game developer for a... uh, long time. His professional start came in 1994 developing titles for the then-unknown and upcoming Sony Playstation. He runs Rampant Games and blogs at Tales of the Rampant Coyote.


#1
07/08/2005 (11:45 am)
Hmmm ... a friend of mine has an Atari 2600 he's not using ... I wonder ... :)

Very interesting idea...

The cogs are starting to turn :)
#2
07/15/2005 (4:26 pm)
So, the cogs turned, spoke to my friend about pinching his 2600. As soon as I can find the time to modify a cartridge, its game on ;-) That said, perhaps I should do something with an emulator first so once i have modified the cartridge we have something to put on it...

T.
#3
07/16/2005 (3:58 pm)
I played with it a little bit last night, but I wasn't able to get things to work :(

I'll play with it some more later.
#4
07/16/2005 (4:12 pm)
Will be interested to know how that goes. Maybe its about time for another challenge :)
#5
07/16/2005 (7:03 pm)
You love taunting me, don't you? :)
#6
07/17/2005 (7:29 am)
Well, yes, taunting you is fun. I was actually thinking of both of us this time. I dont know what form the challenge will/should/etc take, just merely pointing out that there is much potential for there to be one ;-)
#7
07/17/2005 (8:12 am)
I was looking at the example code for one game - with the basic compiler, ASSUMING I can get it set up right, it looks like a game of the quality of the original Atari cartridges could be whipped out in far less than a day.
#8
07/17/2005 (9:09 am)
I was looking at the example code for one game - with the basic compiler, ASSUMING I can get it set up right, it looks like a game of the quality of the original Atari cartridges could be whipped out in far less than a day.

EDIT: Version 0.2a is out. I *CAN* get this version to work. It's pretty impressive!

This is highly amusing (from the FAQ):

Quote:
Q: Why can't I do 10 print "hello world" : goto 10

A: The 2600 is not designed for text. It has no character set, and its graphics capabilities are very
limited. Furthermore, Batari Basic is intended for making graphical games, not text games.

Q: Why doesn't Batari Basic support (some BASIC construct, function, etc)

A: Probably because it is pretty much impossible to do on the 2600.

Q: Why BASIC? Why not C, Perl, PHP, Awk, Iambic Pentameter, or whatnot?

A: Basic is easy to learn and easy to compile, "everybody knows Basic" and it well-suited for the
limitations of the 2600. Remember, the Atari 2600 has 128 bytes of RAM. Not Megabytes, or Kilobytes.
BYTES. In other words, it has 0.000125 MB of RAM.

It also can address only 4 kilobytes of ROM. Not Megabytes, 4k, or 4096 bytes.

Q: How can you do anything with 4k of ROM and 128 bytes of RAM?

A: You just have to be creative and/or masochistic.
#9
07/17/2005 (9:57 am)
Hahahaha.

I've just spent the time between my last post and this researching. I havent really looked that much at the BASIC thing yet, but I have been reading up on programming for it in asm. It seems particularly masochistic and evil, I can definately see the reason why those FAQ entries are there. Now that I have a better understanding of how to code for it in asm, I'll probably have a look at the BASIC thing.

However, programming under such harsh restrictions is seriously fun, so I think I might forgo basic and jump straight to asm. You can do a hell of a lot with 4K of ROM and 128 bytes of RAM, the main things that concern me are having to manage the TV output, the rather limiting graphical capabilities and the incredibly harsh timing requirements. Still, that's what makes it fun.

T.
#10
07/17/2005 (10:02 am)
I just played around with it for a couple of hours (instead of working on the REAL game, which I shoulda been doing, but oh, well!)

This isn't really supposed to be anything, I'm just playing around with the registers and controls. Man, this takes me back:
download.rampantgames.com/images/jbatari1.jpg
#11
07/17/2005 (11:04 am)
Cool! :) Just out of interest, how big is the binary ? Im just wondering how much can be crammed into the 4K of available ROM space.

T.
#12
07/17/2005 (11:44 am)
I have the Atari collection for Windows and it comes with the actual BASIC program, so I get to do this any time I want, not to mention playing a ton of retro games (arcade and home versions of Crystal Castles, yay!). You should check it out if you want to play with the possibility of hacking a retro game! It's kind of tricky though.

- Ronixus
#13
07/17/2005 (7:14 pm)
@Christopher:
You tried that BASIC cartridge that was available for the Atari? It's extremely limited. If I remember correctly, you were limited to moving a colored square around the screen and play noises. That was it. But what do you expect in 128 bytes? :)

What we're talking about is a compiler that compiles BASIC source code down to assembly language, ready to be assembled into a cartridge ROM. You could (if you had the hardware) burn your own cartridge for use in a good ol' fashioned Atari VCS system.

Very cool, in a way that only geeks could understand.

@ Tom:
The BASIC compiler has a 1K "kernel" that can be rewritten or discarded as you want - otherwise, you are stuck within the remaining 3K. The BASIC compiler doesn't yet give you the ability to do bank-swapping or any other neat tricks. If you stick with assembly, you have the 4K, but you can use bank-swapping and other tricks to get as much as 64k out of it (which I understand was done ONCE, for a single, extremely rare cart.)
#14
07/18/2005 (12:24 am)
Inspired by Jay (as always!), I downloaded the tools and had a crack at it. I started at 8pm and finished a few minutes ago, with a short break in the middle, so that's about 5 hours. Wow, was it really? Sheesh... felt like two hours.

www.wahoo.com/misc/bouncy/screen5.png
www.wahoo.com/misc/bouncy/index.html

P.S. I made the bouncy guy a ghost so that this could be my GID entry for this week. :)
#15
07/18/2005 (9:31 am)
Awesome work, Steve! A game-in-five-hours! And a retro game for antique hardware to boot! That's awesome!
#16
07/18/2005 (10:03 am)
Jay,

Thanks ... i knew about the bank switching etc, was just curious what the BASIC compiler's output was like. Pretty good by the sounds of it. The 1k kernel I guess is kind of expected, and if you were doing asm then you'd still have a similar sized overhead, maybe a bit less, due to the annoying TV stuff.

Steve,

Sweet! Send me an entry for it and ill stick it on the site :)

T.
#17
11/05/2005 (11:09 pm)
Wow.. I didn't know.. felt alone in the other forum, heres my stuff. same, about a day:

207.36.229.126/Run1.wmv