Atari 2600 Game Development
gjb6676 writes "An article over at ExtremeTech is covering recent game development projects on the Atari 2600. The amount of cartridge space they have to work with is a sobering thought:
'A two-word file in Word 2002, for example, requires 20 Kbytes. "That's 20 Kbytes, five times the amount of (ROM) space developers had to work with in the 2600.'"
Check out, for example, the homebrew projects at Atari Age.
I think that says more about Word 2002 than it does about the 2600.
20KB of data for a 2 word document? thats insane. .TXT is best!
My potato gun was confiscated by the United Nations. They said I wasn't allowed to have weapons of mash destruction.
So this means you could fit exactly 1 whole empty OO.o file on a 2600 cartridge.... Great!
Why not start porting some of the 2600 games to the X-Box? I'm still waiting for Custer's Revenge 2!
The trick is to exploit Moore's Law, and avoid Gates. Then technology becomes a Good Thing.
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
I know that some games were larger than the 256 bytes that were standard, by use of 'bank switching', so telling the readers that it is all they have to work with is misleading.
It allowed the system to extend its usable life of the platform after developers got familiar with how to work with it.
Can't fit much pr0n in 4K.
Trolling is a art,
Defender 2 'the revenge'
space invaders 'EXTREME'
Atari Football 2003
Night Driver with Infrared Goggles
and Combat: Gulf War
I am the lord of the pun. Dance Knave!
Imagine that, programmers having to write efficient code for a change. These days, a "hello world" program won't even fit on a floppy after the required libraries have been compiled in...
as long as they code "duck pond" and put it in a cartridge so I can play it in my old Intellivision with the Atari adapter, I'll be happy...
mmmm, duck pond.. now with new color graphics!
http://www.babysmasher.com
http://www.openingbands.com
Ahh, but I seem to remember that developers used to do something called 'bank switching' in the carts.
They had more than 1 memory chip in there and they could switch to another chip.
Was it Activision that started using that trick? I remember that they had the shweetest games. A friend of mine got the first "extra memory" game, although I don't recall what it was. The one with chopper flying down the river, maybe?
And it was cool the first time I heard my Atari talking to me...(not imagined, really!)
We paid a buck a byte, and we liked it! None of them fancy schmancy kilobytes, and most definately not 20 of em! With 20 of em, we could've written programs to launch people to the moon, and get em back safely again! And still had room to fit the bible in too! Heck, we could've done that in 10! You kids these days and your fancy megabytes, and gigabytes... I bet you've never had to walk to and from school up hill in both directions, either.
From the article:
:(
According to Chris Larkin, developer of the Atari 2600 card game Kablamo!, each developer typically came up with a proprietary method of bank switching to increase the ROM size to an average of 32 Kbytes of code.
My 2600 died... All I've got left are the pong paddles (wheel things...) and some cartriges.
'A two-word file in Word 2002, for example, requires 20 Kbytes. "That's 20 Kbytes, five times the amount of (ROM) space developers had to work with in the 2600.'
Initially, games were 4KB. But there were also 8KB games (I believe on a single ROM, but I may be wrong) and with an extra chip in the cartridge to handle addressing games of 16KB could be squeezed in.
For instance, Solaris, which was the best gane ever. http://skintigh.tripod.com/atari/solaris.html
Less related: there were cartridges that I assume had 64 4KB roms. The first was a menu to select which of the games to play. I also assume this was done without permission of the copyright holders. Then there were tape drives...
...it also depends on how long the words are.
The bloat for a Word document is no doubt completely justified by its ability to host a virus capable of bring the Internet to its knees.
The 4K Atari cartridge ROM is only capable of enabling you to play a silly game on your television.
Well, if they didn't append your medical records to every Word file, it really wouldn't be that bad. :)
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
You just need to do it right, as shown here.
I see two angles here.
1. the number of programmers has exponentially ballooned since the early 80s, leading to a larger number of less godlike programmers, AND programmers have become more reliant on fat libraries and limitless resources, so coding something this small would bend my brain for sure.
2. game content has changed dramatically. q bert was weird. space invaders was weird. pac man was weird. (yes, sports games did exist, but they weren't mainstream then). games today are less weird. it's either a first person shootemup, sports, or a linear fiction w/some combat.
Focusing on #2, I'd like to see if there really is some creative game writing locked away in some programmer's brain out there, or if we've become a nation of UnReal, GTO, Final Fantasy, and Madden XFL clones.
I don't mean to put down these fine games, I enjoy many console games. What I'm trying to get at is the utter weirdness of what people come up with when severly limited by resources. Facsimile and simulation are out the window, so you really have to dig deep for a good game.
We'll see, I'm very interested in the outcome. Maybe the winners of the IOCCC should check this out.
https://www.accountkiller.com/removal-requested
* 2D paddle motion
* horizontal or vertical brick orientation
* gravity in some modes
* "English" on the paddle/ball interactions
* single or dual player in competitive or cooperative simultaneous play
* sound effects (CPU generated)
* etc. etc.
Just before release, with 9 free bytes left, a bug was found. The initial fix would break the ROM barrier by 13 bytes. Yet another pass through the code doing the 4th or 5th optimization -- finally got it in and ended up with 11 free bytes.
Amazing what is possible in ASM but, boy, it was many 20 hour days!
So I understand those 'smallest executable' contests, but how much functionality does the executable really have? Or how much of the Word document is really information?
For most purposes, 355/113 is close enough.
Is this really a submission about writing 2600 games, or is it just more Microsoft flamebait?
I'm sure there are tons of file formats that even when empty take up what would appear to be "large" amounts of space. Never mind that Word is written for today's computers, for which 17K is hardly even noticed, hence there is little need to optimize empty files.
By the way, the newest Word has a built in versioning system. I'd like to know what options on this system were set when this 17K file was created. Also did the user choose to save any other information (Macros, etc.) with the file?
Like I said, this submission isn't really about programming for the Atari. If it was, the obligatory troll wouldn't have been there, and the article would never have been posted.
It seems to me that the Programming for the Atari 2600 is like working a Chinese Puzzle. Previously, I've wondered why not write new titles for MAME? It's available on multiple platforms and probably not so hard to develop on since it's emulating newer architecture.
BTM
That was the turning point of my life--I went from negative zero to positive zero.
It's hard for kids these days to imagine a PC with anything less than 128MB of RAM and a graphics card equipped with 32MB of it's own (512MB and 64MB are typical figures on newer PCs and graphics cards) but, back in the day, we got by just fine with only a few KB to play around with.
Sure, Tank and Space Invaders on the Atari 2600 weren't deep, multi-layered games but they did provide hours of fun. Similarly, Paradroid, Wizball and even Elite, the cream of the crop on the Commodore 64 would seem dull and shallow to most of the new generation of gamers used to the depth of Grand Theft Auto 3, Starcraft or EverQuest.
But, to those of us who were gaming back then, these titles were as immersive and addictive as anything available today. Hell, I still fire up VICE (the best C64 emulator available) to play some of those titles today, and not just for nostalic reasons - back then, without the flashy graphics and sound games had to be immediately playable and fun or else they just didn't capture the imagination.
Who remembers breaking joysticks waggling them back and forth playing Track and Field? Who remembers the pride they felt when they finally reached Elite status? Or when they completed Impossible Mission? The shear unadulterated fun of playing Pong and Breakout for hours on end, not giving a damn that the last five minutes weren't at all visually distinguishable from the first five?
It's funny, but even though I'm an avid gamer I've bought fewer games in the last two years than I have in any one year before that, going back as far as 1983. Partially this is because today's games have more depth to them, but mainly it's because there are fewer and fewer titles that really enthuse me any more.
The lack of originality in the games industry today is part of it - I haven't seen a truly original game since Populous - but, ironically, I don't think that today's games capture the imagination half as much as the games of yesteryear.
"Accept that some days you are the pigeon, and some days you are the statue." - David Brent, Wernham Hogg
If you really want efficiency, use text.
Lodragan Draoidh
The more you explain it, the more I don't understand it. - Mark Twain
Last week over lunch a developer posed a programming problem he'd been given on a job assignment. We all suggested a similar algorithm..then I went home and coded it. Then coded a more optimized one. And said I wanted to optimize it more. They asked me why it mattered that in one iteration I had two multiplication operations, and in the second version I had one. Why, because it's faster, of course. That's the sort of thing that's meaningless to an enterprise middleware programmer (for the most part), but everything to a game designer. Maybe you're doing this operation 10 million times a second, and every nanosecond you shave counts.
Hacking means working with the resources you have in the constraints you've been given. It's a shame that so many developers now would look at challenge like that and just dismiss it rather than seeing it as an opportunity to wake up some parts of your brain you don't normally get to use. Why must "solve it" mean "solve it once" instead of "give me the best solution"? It's a pretty safe bet that if you stop at one solution you haven't found the best one. Why be pleased with that?
Duane
"256 bytes? It's impossible to write a game in 256 bytes! I need over 100 bytes just to pull the A20 line high and enable extended memory!!"
- badly remembered quote from a rec.games.programmer who just didn't get it
www.HearMySoulSpeak.com
"A two-word file in Word 2002, for example, requires 20 Kbytes."
Did anyone else read that and think "10,240-BIT WORDS? What kind of workstation is that running on?"
is not really so much atari coding, but how about some reakes of old atari classics like texas chainsaw massacre? (yes it was a real game, and it was banned in the US for violence)
but seriously the atari had some good shit on it that would be fun to remake
kaens.blogspot.com
Although the limit must have frustrated programmers, I think it forced programmers to come up with innovative games. No wonder many people consider the Atari age to be the Golden Age of video-games.
Logic, macros, and more
*Choke*. You're under 25, right?
What's even more scary than the 4K ROM limit is the 128 bytes of RAM. Yes, 128 bytes. 6502 assembly is easy, and the Stella chip architecture was an amazing acheivement. Read the Stella Programmer's Guide (available here) to be truly amazed at what it took those guys to develop games.
In my game I'm just at the point where I have a playfield, a moveable player, and one missile I can shoot. And that took a lot of effort. You know you're doing hardcore software development when you have to count cycles to make sure you're not computing when the electron beam is actually being drawn. You have 2700 or so cycles to work with "above" the television image per screen for computation, and only about 48 for each scan line before you start messing up your game image because you're still doing computation. It's interesting because you're tied to the physical progression of the electron beam across the TV.
--- witty signature
I and my team is still making a game for the abacus. It'll be very exciting and its name will be "Dude Abacus Forever"
By the way, we also published a second story last Friday on the connection between Microsoft's SPOT smart objects and a wireless games distribution platform from Atari that was field-tested, but never produced. (You thought the Xbox was huge...) With pics!
Doom has been ported to everythinge else, I can't wait to see the 4Kb version on the Atari 2600.
Here is a fairly comprehensive list of the homebrew games that have been released for the 2600 in recent years:
2600 Homebrew Search Results
And here is a list of games that are currently in development for the various Atari consoles. This list changes pretty frequently, and there are some projects not yet listed as the authors aren't very far along with them (Yes, I know that last link is listed in the linked story, just including it here for the convenience):
Titles In Development
A list of Atari 2600 games that have been hacked to change the graphics, sounds, colors, and more!
Atari 2600 Hacks
And finally, many games that were only released in either NTSC or PAL formats have been modified to work with the other television standard. This is useful for people who have the ability (such as through a Cuttle Cart) to play these binaries on a real television:
Atari 2600 TV Format Conversions
Enjoy!
There are plenty of smart asses out there. Don't diss them just cuz you think you're superior :)
In times like these, it is helpful to remember that there have always been times like these. - Paul Harvey
From the article:
Support until 1997? Microsoft won't want us to know about companies that do that. My next OS will be from Atari! Or maybe an Amiga, because it looks there'll be a company called Amiga for the rest of my lifetime.
Amen to that! I used to code x86 for demos and BBS intros, games etc and I was amused at the time to see simple C programs weighing in at 30-40 times the size to accomplish the same tasks ;-)
This is why I actually enjoy programming for mobile phones at the moment - some of them (eg the Nokia 7210) really force you to consider how best to utilise the available memory and CPU resources. Just try to allocate a back buffer and a couple of 128x128 images and you're looking at a crash. Memory fragmentation also comes in, as do memory block limits (some phones limit ANY object to 16K max due to the way allocation works). Swapping out stuff you don't absolutely need, and juggling data is required for anything beyond the simplest games. (Although some phones, such as the Nokia 7650 really spoil you with loads of RAM, I usually attempt to get things working on the worst case target before porting and adding the bells+whistles).
It's fun though!!
Code, Hardware, stuff like that.
Finally ... the only safe way to view the goatse.cx picture.
The Atari 2600 homebrew scene just did lose out on a really great opportunity. Activision Anthology, which emulates a ton of Activision titles for the old 2600 on a PS2, was to have an online component which would allow owners of the PS2 disc to download homebrew games for playing on the emulator. That would have absolutely rocked, and I think it would have really given the guys writing these games the kind of credit they deserve.
You can read about that and other interesting bits about Act. Anth. in an interview with the Anthology producer Ken Love.
Curmudgeon Gamer: Not happy
I wore out so many joysticks playing this console. The Activision games were the best!
at 18kb for the Word *.doc version of my term paper and 8kb for the OpenOffice *.sxw version, I don't think either of them would fit on an Atari 2600 cart.
Granted, the OpenOffice file is merely bloated while the Word one is reminiscent of the restauraunt scene in Monty Python's The Meanting of Life.
The first inklings of hobbyists developing for the Atari 2600 were back in 1992-1993 via a mailing list. Then the first homebrew games showed up a few years later, such as Edtris, Lights Out, and Oystron. Emulators really helped the scene to take off.
Arguably, if you're wanting to experiment with tiny games, then you'd be much better off using Python and Pygame. You could write an Atari 2600-style game in a week of off hours that way, compared with the months of cycle tweaking it takes to get even a simple Atari 2600 game up and running. While it's a noble technical challenge, it isn't a good way to fool around with minimalist game design.
Believe or not, but there is even a competitive market for developing new Atari 2600 games. On top of the one mentioned in the Extreme Tech article, there is also the one shown at http://www.vgwiz.com that also provided bank switching solutions. Talk about resiliency for the Atari 2600.
For anyone interested in games of yesteryear in the UK (like myself), I'd recommend the Edge magazine spin-off Retro.
:)
:)
The current issue has a truckload of "The making of..." articles from Edge, covering a lot of games up to the early 90's, including: Space War, Asteroids, Battlezone, Civilization, Carrier Command, Populous and many others
I bought it today and it's excellent, IMHO
Oh noes! 14 year old script kiddies recruited by Al-Queada are going to DDOS the White House using NETBIOS over TCP/IP exploits they found out when portscanning stuff with NANOPROBES who all buffer overflowed million of WindowsXP UNIVERSAL PLUG AND PLAY ports while zip disks all over the world are DYING along with BSD! Oh woe is me! Fortunately, our New Age online Messiah Steve Gibson will save us with his 1337 routers that can stop DDoSes and his advanced godlike ASM programming skills! HUZZAH FOR LORD GIBSON!
Hate me!
Efficient code is not neccesarily judged by code size.
Which is more efficient, pushing a string onto a stack and calling a software interupt, or writting something which looks like:
print "Hello, world.";
I can tell you which one is easier to read and write by the humans. You can get a perfect shape for your screws by hand threading them, or you can have a factory which threads thousands of screws an hour (perhaps with the odd dud), which allows you (the human) to design a train engine -- not just concentrate on making that one, perfect screw.
Hardware can do so much, and it can do so much more each year. To not use that is a waste.
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
I was the co-developer on the Atari 2600 versions of Jungle Hunt and Pole Position.
... but oh, what memories.
Yes, there were two players (8 pixel sprites) and two missiles (1, 2, 4, or 8 pixels wide, if memory serves.) And the "easy" way to set up a display line was to write the bitmap and position of the players and missiles during vblank.
However, there was an underhanded way of getting more than two players on a line, if they were separated by enough space (~12 pixels, if memory serves.) While the line is drawn, you keep track of where the "currently drawn pixel" is. When that location is just past the end of a player, you reposition the player to ~12 pixels ahead of the current position, and rewrite the bitmap. We (General Computer Company, a captive developer for Atari) could get up to 6 players on a line, if they were separated by enough distance.
Yes, I am dating myself
It's Linux, damnit! Pay no attention to renaming attempts by self-aggrandizing blowhards.
I once hacked together a "multi-line BBS expansion board for an Apple ][" that was 6809 based in 17 chips: 6809, 6883 DRAM controller (two banks of 32K), 2 64Kx4 DRAM chips, a 32K EPROM, three PALs (mostly address decoding), 4 2681 DUARTS (one on the Apple side of the bus, one on the 6809 side for a serial link between them, leaving a spare serial port on the apple side and five for modems on the 6809 side, and buffering chips for a fully independent backplane (separate from the Apple bus).
Coded the whole damn thing in assembler too.
Man, those days were fun! I think I still have that board (wire-wrapped, of course) for posterity. I remember the 6502 had this wierd read after write which didn't jive well with the 2681, so I had to disable odd address reads in the memory space of the card from the Apple side.
You could've hired me.
I hate people that talk about Word document bloat as if they know exactly what's going on when Word saves a document. "Look! A one word document takes 20KB! Word is crap!"
What people don't realize is that there's quite a bit of formatting information in there. Remember stuff like page size, margins, fonts used (sometimes fonts are compiled directly into the document - depending on your settings - so that when you send it to someone, they don't need those fonts to view it correctly). That's just global formatting. What about stuff like paragraph formatting? Font styles/sizes?
All of it can't come for 0 bytes, and maybe all of the above doesn't account for all 20KB, but I probably haven't touched on half the stuff that's there that people take for granted with a modern word processor.
You should never take life too seriously - You'll never get out of it alive.
I'd be more interested in doing something like this for my Playstation 2, plus it would be easier to burn CD's than cartridges. Anyone know if there is an SDK for Playstation 2? I searched the web briefly but couldn't find any info.
Nine-tenths of a gig,
Biggest ever seen,
God this program's big:
MS Word 15!
Comes on 10 CD's,
And requires -- Damn!
Word is fine, but jeez:
60 megs of RAM!?
Oh, Microsoft, Microsoft, bloatware all the way!
I've sat here installing Word since breakfast yesterday.
Oh, Microsoft, Microsoft, moderation please!
Guess you hadn't noticed -- 4-gig drives don't grow on trees!
"To confine our attention to terrestrial matters would be to limit the human spirit." -Stephen Hawking
The article focuses a lot on the 2600's limitations, but it also has some strengths that make it appealing to work with. Certainly it's relatively difficult to code for, but lots of things are merely hard, and that doesn't in itself make them appealing. There has to be some reward or people won't bother. The 2600 attracts much more development than other old consoles because it really is possible to make a nice-looking, enjoyable game for it. It's interesting to note that some of the newest games compare very well to the best old classics - technically they obviously inherit a legacy of lore, but also in terms of game design and playability.
The "only" 128 colours that the article mentions were really a hell of a lot, not just in the late '70s, but throughout most of the '80s. I believe this is one reason the console survived so long. Compare the pretty gradated sky displays of some Activision titles to the weak colour palettes of the Intellivision, Colecovision, or NES (not to mention icky PC CGA and EGA) and you can see where some of the reward comes from. The other consoles had notable technical superiority - framebuffers, higher effective resolution (not that the 2600 has a fixed "resolution" exactly), much faster processors - but the games didn't look as good on a TV because the colour sucked. You can actually fix the point at which the 2600 stopped production and the last cartridges were produced with where colour palettes finally outstripped it on hardware like the SNES.
The sound was actually no slouch either for the time, and you can make real in-tune music using just the internal hardware (Pitfall II doesn't count as it has a much later "Pokey" sound chip inside). Games like Pressure Cooker and Sentinel have catchy tunes that play throughout. Sure they're repetitive, but has that really changed much in video games? Nowadays you get several hundred bars instead of just several, but most game music still makes you want to pull your teeth just for the distraction.
The other reason the 2600 continues to attract developers is that it has no fixed limitations - newer systems have a fixed pixel resolution (hell, they have pixels - although it's notable that the Vectrex also has a fairly thriving development community), a certain number of sound channels of a certain sample resolution, etc. These things are known at the outset and are seen as limits on the design. With the 2600 that isn't the case - there's the feeling that you can always get it to do what you want, if you could only work out how. And you can.
2600 101. Albert from AtariAge has eventual plans to give it a permanent home there.
Good place to get a feel for the basics.
SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
Nope.
I just typed Hello world. and saved the file using Word XP. Windows reports the filesize as 23.5 KB (24,064 bytes), with size on disk being 24.0 KB (24,576 bytes).
Now I typed Hello world. in Notepad and saved that. Windows reports the filesize as 12 bytes (12 bytes), with size on the disk being 4.00 KB (4,096 bytes).
I'd be happy to email you the files if you still aren't convinced.
slashdot!=valid HTML