Live data from Hacker News

New Pacman for Atari 2600

atariage.com

1–10 of 25 posts

Re: New Pacman for Atari 2600

#4
I always wondered how the video output was controlled without video memory. Do you have some sort of 'current color' register which need to be set to different values during video output, timed with nop loops?

I have coded on several 8-bit machines in 80s, but never on one without video memory. I stumbled over this curious property of the Atari 2600 when Ed Fries wrote 'Halo 2600' a couple of years ago (boss of the Microsoft games business during the late 90' and early 00's).

Re: New Pacman for Atari 2600

#5

I didn't know that there are homebrew games for Atari 2600. They also assembled a tutorial for beginners: http://atariage.com/forums/topic/33233-sorted-table-of-conte...

Oh, there are new homebrew games being made for a lot of the major 8-bit machines, still today. Myself, I've been enjoying the revival immensely, especially since the 8-bit machine of my youth rarely got much attention at all from the major industry developers (Oric-1/Atmos), yet today - in the 21st Century - its getting a regular stream of releases from the die-hard holdouts .. and some of them are absolutely amazing products which would have been huge hits back in the day.

(See http://www.oric.org/index.php?page=software&fille=top150game...)

We got Space:1999, 1337 (Elite clone), SchoolDaze, Impossible Mission, Oricium, 4K Kong .. a lot of really awesome titles .. in the last few years. Also, new techniques have been discovered and continually refined by the core die-hards, meaning we're seeing things on the platform that we in the 80's could only ever have dreamed of seeing .. new color modes, new ways of handling animation, etc. It really is astounding to return to these platforms, 30 years later, and see new titles being pushed out by the ever-eager hackers who are keeping the platforms alive. Heck, we even got new hardware for the Oric-1/Atmos platform in the form of a dedicated disk emulation system, whose microcontroller alone, itself, is more powerful than the Oric ever was, but which nevertheless is being pressed into the disk-emulating duties that makes the Oric-1, at last complete. ;)

So if you've got an old 8-bit machine in your closet, get it out, wire it up, dust if off, and get out there on the 'net to find the elite groups keeping these systems alive. And remember: old computers never die - their users do!

Re: New Pacman for Atari 2600

#6

I always wondered how the video output was controlled without video memory. Do you have some sort of 'current color' register which need to be set to different values during video output, timed with nop loops? I have coded on several 8-bit machines in 80s, but never on one without video memory. I stumbled over this curious property of the Atari 2600 when Ed Fries wrote 'Halo 2600' a couple of years ago (boss of the M…

"I always wondered how the video output was controlled without video memory."

There's masses of information explaining how it works on the Internet.

I think this is the interesting video that I found out about from a HN post:

https://www.youtube.com/watch?v=aNyebnxV9R8

Re: New Pacman for Atari 2600

#7

I always wondered how the video output was controlled without video memory. Do you have some sort of 'current color' register which need to be set to different values during video output, timed with nop loops? I have coded on several 8-bit machines in 80s, but never on one without video memory. I stumbled over this curious property of the Atari 2600 when Ed Fries wrote 'Halo 2600' a couple of years ago (boss of the M…

More or less yes, but it's more than one register. The video output as the scanlines go across is built up from a number of registers. Three registers encode a 20-bit "playfield graphics" layout (blocky background graphics) for half of the current scanline; four registers are higher-res sprite-like things (2 "sprites", 1 "ball", and 1 "missile"), which also do other things like collision detection; etc. You typically do useful work rather than a NOP-loop, though, and just carefully arrange it with cycle-counting, since there aren't many cycles to spare.

An even more minimalist design where you just have one register, the next pixel to output, wouldn't work because the CPU isn't fast enough to update it: the electron beam outputs 3 pixels per CPU cycle, and of course many instructions take more than one cycle, too. Instead an auxiliary microprocessor, the TIA, is clocked 3x as fast as the main CPU and does the real-time compositing of these various registers into the one value to output.

All the details you could want are in the Stella Programmer's Guide, a 1979 guide/manual that resurfaced on the net: http://alienbill.com/2600/101/docs/stella.html

There is also an interesting book looking at a few case studies (one per chapter) of how the Atari's weird hardware influenced the design of some of its games: http://mitpress.mit.edu/books/racing-beam

Re: New Pacman for Atari 2600

#9

I always wondered how the video output was controlled without video memory. Do you have some sort of 'current color' register which need to be set to different values during video output, timed with nop loops? I have coded on several 8-bit machines in 80s, but never on one without video memory. I stumbled over this curious property of the Atari 2600 when Ed Fries wrote 'Halo 2600' a couple of years ago (boss of the M…

There's a fascinating guide, http://pdf.textfiles.com/technical/2600_guide.pdf

In short, the TIA chip does act as video memory - but not the way we treat it today. It has various registers that you can write into to define how the next line will be drawn. eg, you create a background by writing 20 bits into the 'playfield' register. This is mirrored vertically to fill out a 40-bit wide background, and then you write in a foreground & background colour.

Similar registers exist to hold sprites for a ball, two players, and two missiles.

And then if all of this didn't seem limiting enough for you, your game (the only process running on the machine) is responsible for maintaining most the timing for the television controller itself - so you actually spend most your time managing the TIA, with only a small number of cycles at the end of each line, and a better number of cycles after the last line, but before the next screen starts drawing - in order to actually perform game logic itself.

Post reply on HN