Inside the Homebrew Atari 2600 Scene
angryflute writes "'Have you played Atari today?' was an ad jingle for the Atari 2600 VCS game console during its reign in the early years of the video game industry, from the late 1970s to early 1980s. That question that could apply even now, according to an O'Reilly Network article, thanks to the passion of programmers who've continued to make new Atari 2600 games for the past few years."
"The system has no video buffer, the total code size cannot exceed 4K and can only use 128 bytes of RAM"... "the Atari 2600 requires 100 percent Assembler coding".. Wow. You gotta really love it or love challenges in order to constrain yourself so. In the age of bigger and faster machines, I think a lot of the bloat is due to the fact that people never understood or learned the inner workings of the processor and the code isn't as tight as it could be. I'm not recommending that assembly be required, but I think anyone that develops should be cognisant of what happens behind the curtain.
Still- Developing and making fun games from this tiny system is incredible. I have every platform I've ever owned since the 2600/Intellivision era and the 2600 has definately sat unused in the past few years... Maybe it's time to dust it off...
I've been coding some stuff on the Atari and it's an extremly cool machine. You can actually build one yourself, if you have a little knowledge in electronics. From the article it says that the 2600 has a custom chip - the TIA. How do you substitute that? With an MCU/FPGA?
If a machine has 128 Bytes of RAM, I'm wondering how one can even program a game that is remotely fun by yesterday's (1985) standards. Let's see - 1 frame on TV needs:
- 320x240 pixel or 76800 pixels. Let's say every one of these pixels has 2 bits (acceptable by 'yesterdays' standards. So alone to hold one frame in an accepatble resolution and color depth, one needs some 19200 bytes of RAM. If one looks at the 2600, we're far away from that, even if we say we can divide that by four since the Atari most probably had some area-drawing commands like any other hardware.
I have a C64 which at least capable to display that. OTOH, there are people who are complete minimalists and will be able to think that an Atari 2600 is fun, and since Atari games look even worse than C64 games and have less gameplay, they can live with even less resolution.
Screenshot of "Dungeons of Dagorath" for TRS-80 CoCo2.
The interface was all key commands ( A L = Attack with whatever is in your Left hand) (P R WS = from your pack, Pull using your Right hand, the Wooden Sword.) However, the graphics were sufficiently detailed (using the faux-monochrome display method, and simple vector graphics.), and the game played a number of distinctive sounds at ascending volumes as enemies approached, so you could plan your defense (or retreat, as appropriate for the strength of the enemy and your own health) before you could even see your enemy. The variety of enemies (spider, ghost, knight, wizard, etc.) not only kept the gameplay interesting, but allowed strategies to deal with enemies stronger than yourself later in the game. Yes, I burned many hours playing "Dungeons of Dagorath." and it wasn't even my CoCo!
There was even a sequel for CoCo3: "Castle of Tharogad", which had solid-color graphics and used a point-and-click graphical interface using the joystick (or mouse, if you had one.) Unfortunately, the graphical interface was actually slower to use than the old key-based one and, worse yet, the CoCo platform used the same hardware to do the D/A conversions for the joystick/mouse ports as it did for the audio, so the audio was lost as well. Too bad, really.
What is the difference between a small revolutionary change and a large evolutionary change?
I couldn't have imagined driving a TV with one of those. ;)
Imagine harder!
main(O){10<putchar(4^--O?77-(15&5128 >>4*O):10)&&main(2+O);}
Development of both hardware & software simply continues as time goes on, no matter what. If an original manufacturer pulls the hardware of the market, and games go off the shelves, development slows down, but continues anyway. If the manufacturer/copyright holders try to prevent remakes, emulators, don't release ROMs, hardware info, schematics etc, that slows things down. But they can also promote this, and enjoy having an active community further developing these old designs, like in the Sinclair ZX Spectrum case. Given enough time, all there is to know about the inner workings of these old machines becomes known, and new things are done with it.
I think the appeal to enthousiasts results from the simplicity of these old systems. If you put in enough time, you can write code that uses every single part to the max, doing incredible things with minimal hardware.
One of my favourites is the Sinclair ZX81. 1 KB of RAM, no sound, no colour, and: no videoprocessor. About 3/4 of CPU time is spent on directly writing black&white dot patterns to the TV screen, using some simple logic to turn it into a video signal. With only the remaining 1/4 CPU time left for doing useful things.
With the arrival of quickly reprogammable hardware like FPGA's, the border between hardware and software blurs further, nice example is FPGA Arcade, where old games are rewritten in hardware circuitry. So instead of having a CPU eat through instructions coded in ROM, your joystick input directly affects the logic programmed into a FPGA. Very cool!
Now, what is a joystick, really? It's two potentiometers: one for horizontal (x-axis), and one for vertical (y-axis.) Atari 2600 joysticks aren't built like this, instead having on/off contacts only. But joysticks aren't the only controllers available for the 2600: there are also the paddles (and the keypads and the driving controller, but I digress.) And what is a Paddle? It's a potentiometer. And the Atari paddles are only available in PAIRS, which share a common connector to the 2600. This makes it possible to have four-player games like "Warlords" or "Video Olympics" by using two sets of paddles. Why did no one ever build the two potentiometers from the paddles into a single joystick? All of the necessary functionality is present on the 2600 side for analog 2D controls, so why not? (I'll grant that writing analog-control software on such a limited platform would be taxing, to say the least, but surely it's POSSIBLE.)
Heck, I've even soldered together a pair of capacitors into an adaptor-plug that lets you use PC joysticks on an Atari 5200 (using plans from the online Atari 5200 FAQ and an old Texas-Instruments calculator with the clicky keys for my keypad), surely such a project for the 2600 wouldn't be any harder?
So THERE's a challenge for the modern 2600 hacker: build a game that uses an analog joystick! (for a REAL challenge, make it two-player!) Heck, I'd even be willing to build a joystick adapter for the programmer who did it! (and gave me a ROM cart of it.) (OK, that's setting myself up, I know.)
Any takers?
What is the difference between a small revolutionary change and a large evolutionary change?
I call it "getting back to the basics." Anybody who's successfully coding good games on the 2600 has a bright future in the embedded systems world, where limitations like that are commonplace. The current crop of small microcontrollers (PICs and the like) have similar constraints, and cleverly-designed software is landing them in all sorts of places.
:-) The cheap and ever-expanding supply memory and disk is, I think, one of the reasons software has become as bloated as it is. We went to the moon on systems with less combined horsepower than a 1996-model Palm Pilot, and I think it would do wonders for this business if more people understood what made the machines they programmed tick at the lowest levels.
Don't take this personally, but that fact that people are staggered by things like this worries me. Limitations were what we had back then, and we dealt with it, in the snow, up hill, both ways.
I don't know if it's emphasized clearly enough in the article, but Homestar Runner has commissioned a few homebrew 2600 coders to make their own game... Imagine the precedence that this could set, IMHO, this is along the same lines as the Counterstrike modders getting published by Sierra (err Valve?)..
Imagine... homebrew people getting paid for their hobby... I think that wired magazine's mention of this makes it a little more interesting: homebrew games are becoming available on a grander scale than just for those in the scene.
.: 2+2 = PI SQRT(1+N)