Inside the Homebrew Atari 2600 Scene 86
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."
Comment removed (Score:5, Informative)
Re:Skeleton + (Score:5, Informative)
Re:Skeleton + (Score:2, Interesting)
Screenshot of "Dungeons of Dagorath" for TRS-80 CoCo2. [bestway.com.br]
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 ene
Re:Skeleton + (Score:2)
Strong Bad (Score:2)
What ever happened with that? Last I knew they were still only a demo...
Heh, I still remember that Mario game on Atari where you hit that POW! block to knock enemies over and there was a 2-player mode vs. each other. That was always one of my favorites (at least, among the original non-homebrew games). Ironically, when I got it, I thought that it was the same Mario game as on the NES (which I didn't have
Re:Strong Bad (Score:2, Informative)
Re:Strong Bad (Score:2)
Of course, if you were thinking of SUPER Mario Bros., then you're right.
If i ran a software firm... (Score:5, Insightful)
The ammount of work that goes into creating an entertaining title while only working with 4k of rom space and 128 bytes of memory is staggering. Mind you, most of my emails are larger than 4k....
I dunno, maybe im just being sappy, but it really brings a smile to my face to see coders throwing themselves into what i can only characterize as a digital bootcamp, simply for the love of the game.
Long live passionate programmers
Re:If i ran a software firm... (Score:2, Interesting)
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 wit
Oy (Score:5, Insightful)
Re:Oy (Score:5, Funny)
You're new here, aren't you?
Re:Oy (Score:2, Funny)
Re:Oy (Score:2)
If I were the type to submit stories, I'd do that too for the simple reason that I have read a NUMBER of articles where the submitter of the story really didn't get the point of the article at all. Is it really so bad? (I'll concede, though, that they should at least give credit to where they got the text...)
" Do they just assume we're not going to read the article, and are therefore being clever, or are they just la
My first Atari game (Score:1, Funny)
This is passion at it's finest (Score:5, Interesting)
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...
Re:This is passion at it's finest (Score:5, Insightful)
[That's not to say that an understanding of what the machine is actually doing with the code wouldn't help people when designing software systems, I agree that it would certainly be beneficial. It's just not necessarily where all the bloat comes from. The lack of understanding is probably more and more relevant as more and more layers of abstraction are added. And there's always room for one more layer of abstraction!]
Re:This is passion at it's finest (Score:4, Insightful)
Optimize last?? Hello?? Have you taken any programming courses?
How real, optimized engines are written (i.e. Quake, Doom, Unreal) is by:
- writing it first in a 'high' level language (probably C, which isn't high any more, but you get the picture)
- making sure it works
- finding out what parts are slow
- optimizing these in assembly, and making sure they get the same results as the slower, easier to debug version.
Writing the whole thing in assembly would just be ludicrous. Did you ever use the first version of wordperfect for windows?? Written in assembly, and boy was it buggy. And not noticeably faster than anything else.
If you optimize first you will never get anywhere meaningful.
Re:This is passion at it's finest (Score:2)
Why do you want portablilyt??? Do you want to have to check to see if you your game will support you video card and sound card? Yes there was a time when you had to make sure that a game you bought would work with your video and sound card. And I do not mean will they be fast enough but will they work period! It was a major pain in the rear that still has not gone completely away.
As to developing in assembly. That
Re:This is passion at it's finest (Score:2)
For example, Steve Gibson codes in ASM. But the stuff he codes isn't tied to hardware.
For games, and C64-style demos, ASM on the PC is useless. There's too much hardware, and too many different CPU speeds, to utilize such tricks as counting cycles, hitting the hardware at just the right point on the screen, etc.
I'd like to see some more homebrew shit done on the Genesis. It's got good hardware, a decently fast CPU, and a very nice FM part that gives 6 FM channels, or 5 FM
Re:This is passion at it's finest (Score:2, Informative)
In fact you can write GUI apps in Windows with menus, dialog, buttons that are smaller than a couple dozen KB.
A lot of bloat comes from huge MFC/C++/etc libraries that get linked in [all or nothing] and serve merely as another languages wrapper around a C API.
I recall from the Borland days [my first C compiler for Windows] a simple OWL based hello world application was 80KB lines of c
Re:This is passion at it's finest (Score:2)
Today, real-time software is a fading art. The good news is that the real-time stuff has migrated to hardware so even OS's with non-deterministic timing like Windows and Unix/Linux can particpate in
Re:This is passion at it's finest (Score:2, Insightful)
Re:This is passion at it's finest (Score:1)
The very active C64 development scene is one place where I don't think dust has ever had a chance to settle.... amazing stuff. If you h
Re:This is passion at it's finest (Score:1)
Original reference here [catb.org]. I think this is the whole foundation behind the kind of abstraction that software development takes today. F
Dedication or masochism? (Score:4, Funny)
No accounting for taste, I suppose.
Re:Dedication or masochism? (Score:1, Funny)
your the one who mentioned Celine Dion.
There's nothing wrong with (Score:1)
Good Article! (Score:5, Informative)
I also made some attempts on vcs2600 programming some years ago. It could not be any more different from your daily C/php/... hacking. Think of microcontroller programming with even more demanding timing.
The machine has 128bytes (yes, bytes) of ram and 4-6kb of ROM. No video ram, everything is generated on the fly. The CPU does not support interrupts, all the timing is done by active waiting.
Re:Good Article! (Score:2, Funny)
Re:Good Article! (Score:3, Insightful)
And I thought C64 coding was hardcore... 128 bytes of total RAM? Just writing a character generator would be challenging, let alone a game!
Re:Good Article! (Score:5, Informative)
Compare to the Commodore VIC20 - precursor to the C64 (and a wonderful machine in many ways). You had 5k total, of which 1.5k went for the video buffer. That left you with about the same amount of total codespace to play with, and there were no shortage of really good games for that machine either. The defining limitation of the 2600 really seems to be the lack of a framebuffer far more than the low amount of RAM.
Re:Good Article! (Score:1)
That's true, but the only MCUs I've worked with that have this little RAM is the PIC 16F/16C, and I couldn't have imagined driving a TV with one of those.
The current MCU I'm working with is a MC9S12 with 12KiB SRAM/256KiB FLASH... I feel so dirty
Re:Good Article! (Score:3, Interesting)
Imagine harder! [gunee.com]
Re:Good Article! (Score:2)
Some
Re:Good Article! (Score:4, Informative)
I wrote a lot of assembler on the 6809 (CoCo 3), and a few text-based games. The text-screen was 32x16, and most of my useful assembler programs that manipulated that screen came in well under 4K (2K was my average) and used well under 128 bytes for data storage.
The machine had a video generator that could be pointed to any point in memory within the machine, regardless of what that memory area was actually used for (data storage, program execution, stack -- didn't matter).
I empathize with the homebrew developers. Developing with limited machine capacity is very fun, and sometimes very frustrating.
The CoCo had floppy drive support, but the read/write timing had to be exact since the drive had no interrupt support. The result being that while data were being read/written, the machine was in a very tight waiting loop to the exclusion of all else. Even system interrupts had to be turned off to get the needed clock cycles.
Only the NMI (Non-Maskable Interrupt) could be left on (it was impossible to turn off, hence "non-maskable"), but it was attached to the "failure" mode of the drive (the only actual interrupt it used, but only if the hardware failed).
Those were the days.
The book "Hackers" (Score:4, Informative)
It also has an accurate history of the early days of the MIT AI Lab (where Stallman and others started out), and the early days of BASIC.
It has several chapters about the birth of Sierra (then called On-Line Systems, IIRC). Great stuff, and should be required reading for anyone interested in the early days of computing. Truly great book.
I want an OLED for my Atari Lynx (Score:3, Funny)
Why? Well two-player Lemmings sucked on my Atari ST, it's not available for my 2600. Wait that would also mean that I need a Lynx bluetooth module as I can't be bother to hook up wires
Dennis
Re:I want an OLED for my Atari Lynx (Score:2, Insightful)
Damn it (Score:5, Informative)
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.
Most of my coding is done in the Atari 2600 emulator called "Stella":
http://freshmeat.net/projects/stella/
Worth a try if you love the 6502 and minimalism
Re:Damn it (Score:5, Interesting)
Re:Damn it (Score:2)
They get removed anyway. Even if you post as an AC. Unless you delete your
Re:Damn it (Score:1)
Wow, the cookies will follow me from machine to machine, somehow knowing that it's me that's posting? Slashdot coders are amazing!
Re:Damn it (Score:2)
Why were there no analog joysticks? (Score:4, Interesting)
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 [atarihq.com] 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?
Re:Why were there no analog joysticks? (Score:1)
However, they were quite horrible to use, keep centered, and had a fairly short usage period. Now, if you can get ahold of a Wico 5200 joystick (and the Y-adaptor cable to use the 5200 controller's keypad), the console was much nicer.
In most cases, it's possible to simulate the analog movement (slow, then faster in the same direction) using digital controls and not-terribly sophisticated timing loops.
Reading two paddle values on a 2600 m
Re:Why were there no analog joysticks? (Score:1)
(My Google-fu is low, and all I can think of is a 4-bit encoder: 16 possible positions, which would be lousy.)
Re:Why were there no analog joysticks? (Score:1)
Quadrature Encoding (complete with picture) [erols.com]
The signals from the controller make it look like the user is pressing left, then left-down, then down, then off. In fact, in a pinch you can use the joystick to simulate a driving controller (not recommended).
In the game, you keep the previous state of the left and down bits and compare with the current state. If the states are different, and table lookup gives t
Re:Why were there no analog joysticks? (Score:1)
Hmmmm.....time did advance, right? (Score:2, Interesting)
- 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 pro
Re:Hmmmm.....time did advance, right? (Score:1, Insightful)
You can bank-switch roms to get more than 4kb too.
Re:Hmmmm.....time did advance, right? (Score:1)
320 pixels width? Area-drawing commands? You did read the article, right? Sheesh.
The Atari 2600 does not have a display buffer! Everything is generated on-the-fly, as in, while the TV raster scanner is doing its thing. It's also apparently impossible to get anything better than 40 pixels of resolution for the "playfield" graphics (as opposed to the sprites which are finer resolution).
Where did your "320" value for horizont
Re:Hmmmm.....time did advance, right? (Score:2, Informative)
Ok, ok, to it was only 4-color, but I remember creating a nifty (at the time) character-based game using those color
Re:Hmmmm.....time did advance, right? (Score:4, Informative)
Yes. It was called 'artifacting', and occurred when using high resolution monochrome modes. It looked terrible, different computer models and different TV's produced different colors, and you were still stuck with 160 pixels of resolution anyway because you had to turn on every other pixel to get a certain color (an ugly khaki green or, alternatively, a shocking sky blue. or at least that's what it looked like on *my* system, depending on whether you used even or odd pixels).
This mode wasn't available for the 2600 though, so not really on topic.
Oh, and it's De Re Atari [atariarchives.org], reproduced in full for your pleasure.
Slashdot is like Playboy, everyone skips the articles and goes straight for the juicy stuff.
Re:Hmmmm.....time did advance, right? (Score:1)
Re:Hmmmm.....time did advance, right? (Score:2)
The amount of RAM one would need for a framebuffer is immaterial: the 2600 doesn't have one. Everything is generated on the fly.
Color pictures could revolutionize the 2600 market (Score:1, Funny)
Color pictures will revolutionize the 2600 market. I can't wai
I've done this! (Score:5, Informative)
Here are some of the challenges that you will encounter:
All in all though, it is a rather ingenious system. Considering when it was made, and the maximum cost of each unit, I'd say kudos to those engineers! I hope to do some more meaningful stuff with it once I have more time. I've plans to hack hardware for it as well!
-Bob
Atari Age (Score:1)
*sniffle* (Score:2, Funny)
Doesn't the 2600 have a line buffer? (Score:4, Insightful)
Re:Doesn't the 2600 have a line buffer? (Score:2, Informative)
i grew up playing and loving the 2600 (Score:2)
"There's nothing like playing a game on the real hardware using real controllers -- emulators can only get you so far," says Grand.
Get you so far where? ? ? ?
I mean, I'm a guy who owns a damn apple newton and a next cube (anyone wanna buy a next cube?) and at least i had minorly practical reasons for getting each way past their prime, and have even gotten some use out of the newton (cube is a Damn Fine Paper Weight)
sorry, but if it sounds to me too much like the geek version
Re:i grew up playing and loving the 2600 (Score:2)
Re:i grew up playing and loving the 2600 (Score:2)
True classics live forever (Score:4, Interesting)
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 [fpgaarcade.com], 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!
I made JoustPong 2600 and "2600 101" link (Score:3, Insightful)
I also made a newbie's tutorial, linked to at the end of the O'Reilly article: 2600 101 [alienbill.com]. And currently I'm (slowly) working on 2600 cookbook [alienbill.com]...O'Reilly fans should find the format very familiar.
Overall, that's a great techie introduction to the hobby.
2600 Games for sale now (Score:2)
Re:2600 Games for sale now (Score:2, Informative)
Mmmm, speaking of homebrew 2600... (Score:2, Interesting)
Imagine... homebrew people getting paid for their hobby... I think that wired magazine's mention [wired.com] of this makes it a little more interesting: homebrew games are becoming available on a grander scale than jus