6 ms·
Let Chris Crawford teach you to program Atari's 8-bit computers [video]
- klodolph 11y agoI would love it if someone could do something like this for modern GPUs, complete with pipeline stalls as a costumed CPU waits to hear back from a costumed GPU. It seems like there's an unreasonable amount of mystery around how GPUs work, at least in popular understanding, compared to our knowledge of arcane corners of obsolete computers.
- jtokoph 11y agoIsn't there a lot of mystery because the GPU companies keep things very secret? It's been my understanding that GPUs are very much black boxes.
- TD-Linux 11y agoMost popular desktop GPUs have been pretty well reverse engineered (or implemented from documentation) in Mesa, so you really can go and look at the nitty gritty details, and write assembly language if you so like. The VC4 is also a fun target, because in addition to being supported in mesa, it is documented very well [1] and in a very popular product (the Raspberry Pi). [1] http://www.broadcom.com/docs/support/videocore/VideoCoreIV-AG100-R.pdf http://www.broadcom.com/docs/support/videocore/VideoCoreIV-A...
- corysama 11y agoHere's dump of public knowledge about various GPUs. http://renderingpipeline.com/graphics-literature/low-level-gpu-documentation/ http://renderingpipeline.com/graphics-literature/low-level-g...
- DonHopkins 11y agoOrchestrated to music like the Sorcerer's Apprentice [1]! [1] No link necessary.
- panic 11y agoThis series of articles doesn't have any costumes, but it's still a good read: https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/ https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-...
- keithnz 11y agoI loved my Atari 800XL, and while I had a few computers before it, this is the one I cut my teeth on learning how to program. Its hardware was really interesting and forced you to be quite inventive to get the most out of it.
- j45 11y agoPredated me a bit with the 1040ST which was an incredible machine for what it was able to do.
- protomyth 11y agoI started with the Atari 400. It was quite fun to program, and I was a bit disappointed when the school finally got Apple IIe and I couldn't figure out why they were "better" than an Atari 800. They certainly weren't as fun to program. I gotta admit that I do miss 6502 assembly.
- drudru 11y agoChris is awesome. He created the Game Developers Conference and an early journal on game development. He encouraged collaboration and sharing in an industry that was very secretive.
- kefka 11y agoWell, lets see what I can do to help this effort.... Here is a link to an Atari 2600 emulator with every game. There's also a loader to load in any game or rom. That would allow near-instantaneous game and application creation via this tool http://ipfs.io/ipfs/QmacAqRVhJX9eS7YJX1vY3ifFKF9CduDqPEgaCUSa4x5xb http://ipfs.io/ipfs/QmacAqRVhJX9eS7YJX1vY3ifFKF9CduDqPEgaCUS... It's also using something called IPFS, or Inter-Planetary File System. That got a bit of press earlier on with the left-pad situation and package managers regarding npmjs. Effectively, it's a worldwide GIT repo backed by a self-certifying file system, a Bittorrent type transmission between nodes, and Kadmelia and dHT for host detection. (Edit: Really? I offer something that is relevant, at least orthogonally. And yet, -1's. Cant the ones that downvote provide a reason, even if from a throwaway account? And it's not even a controversial opinion...)
- kabdib 11y agoThe 2600 is totally different from the 8-bit computers, just so folks know. Programming an Atari 800 computer was a walk in the park compared to the living hell on earth that was the 2600. [I wrote a few Atari 800 game cartridges. I watched one of my cow-orkers mentally deteriorate as he attempted to write a simple 2600 game over maybe four months -- not kidding. He gave up and was a happier person for it].
- kefka 11y agoAdmittedly, I'm not very well versed on computing from the late 70's and early 80's. My own personal experience of 8 bit machines are the recent PIC and Atmel micros. I just figured that an emulator/games that are completely self-contained would be handy.
- tzs 11y agoAt APh (the consulting firm that designed the Mattel Intellivision, wrote its system software, and most of the early games for it) the biggest insult you could give to a programmer was to tell them their Intellivision game looked like an Atari game. This was NOT a slam against the Atari programmers. It was a reference to the graphics hardware limitations of the 2600, which made it ridiculously difficult to do things that were easy on Intellivision. Not that Intellivision was a walk on the park...the mode most games used for the colors of things that were not sprites was demented, but at least the hardware sprites and their collision detection, along with the system software that automatically handled animating a sprite and moving it at a fixed velocity, saved us from many nightmares that 2600 programmers had to endure. The 2600 had sprites, but they had limitations. I don't recall with absolute certainty what they were (when Mattel decided to do Atari games and some of that work was contracted to APh, I was not involved--I was working on games for what would have been the next generation Intellivision if the industry had not collapsed and laid me off, so my 2600 details are mostly what I remember Hal Finney and the others involved in the Atari games telling me), but my recollection is that there were limits on how many sprites could occupy overlapping vertical positions, and getting their horizontal position right involved software timing, so you had to do things like make sure different code paths took the same number of clock cycles. That is not fun.
- DonHopkins 11y agoIt looks like a cross between Klaus Nomi [1] and the Three Stooges [2]! [1] http://40.media.tumblr.com/cfb98ae2e453a1402aaab4a676a4da16/tumblr_mibzom1vfw1qcn8iqo1_400.jpg http://40.media.tumblr.com/cfb98ae2e453a1402aaab4a676a4da16/... [2] http://www.frieze.com/sites/default/files/Editorial/Bowie3.jpg http://www.frieze.com/sites/default/files/Editorial/Bowie3.j...
- chipsy 11y agoHere is an example of a contemporary demo on the Atari 8-bits: https://www.youtube.com/watch?v=eY_YsoR11d8 https://www.youtube.com/watch?v=eY_YsoR11d8 You might notice that some scenes show more colors onscreen than contemporaries like the C64 - this is all because of the display list interrupt techniques Crawford talks about, combined with clever overlaying of the player/missile sprite system. (The weird term for these hardware sprites is because it's built on the legacy of the 2600's system, which itself was built around the needs of the pack-in games: two players, two projectiles, one ball.) The A8 series was limited in lifespan in the USA for a number of reasons: poor documentation, platform fragmentation, and price competition. It shipped with very little documentation on how it worked, leaving developers starved for resources for several years(Chris Crawford himself contributed to the unofficial bible, "De Re Atari"). There were the original 8k-upgradeable-to-48k 400/800 models and the newer XL/XE models, which shipped with 64k standard, and additionally, a change partway through the 400 and 800's life to an upgraded graphics chip; although most old software would run on the new machines, the C64 was more straightforward to target and to program, and it led the way in price-cutting the home computer market, which gave it a huge lead in market share. The later life of the A8 was entirely in European markets. In terms of what the two machines can do when pushed to the limit, though, there's plenty of room for comparison.
- StanislavPetrov 11y agoIf you want to check out an amazing example of what was being done by some Atari 8-bit programmers at the time, check out "Alternate Reality: The City", a Datasoft game by Philip Price released in 1985. He used some really novel techniques to create a game that was visually and musically impressive for the time and architecture. Some of the techniques he employed (from an interview on Atariage.com a couple years ago) >1. Knowledge of the names of registers was from magazine articles. I was self-taught for the most part. On the tricks with the hardware, that was just me thinking up what cool things I could do with the functionality of the hardware. Cycle counting to determine the position of the television electron beam, using a sliding window and emitting to the front and back of the current visual screen, using interrupts to change the color registers on each scan-line (combined with cycle counting and moving the player missiles to be at two places at once on the scan line),the 3D stuff, security, encryption, texture mapping, music driver, all self taught (no books).
- hal9000xp 11y agoI remember good old times when I used ZX Spectrum (actually it was 100% compatible soviet-clone). I dreamed to create a game. That's why I actually started programming. I wanted to create animation. When I started with Basic I noticed that Basic interpreter is way too slow to update video memory (even for fraction of screen). Then I discovered world of compiled languages with Pascal. It was much more fun than Basic but still too slow to update video memory. Then I moved to assembly language (actually I only had list of opcodes and I had to put them in memory directly). It was much more fun than Pascal and speed was great but still not enough for animation if you write straight-forward implementation. Then I discovered that if you put performance-critical code into lower-memory addresses it runs much faster. Unfortunately, I didn't finish my research because I had no access to internet and books.
- chrisdew 11y ago> Then I discovered that if you put performance-critical code into lower-memory addresses it runs much faster. Do you mean higher memory addresses? Code in the lower 16KB of RAM (addresses 16-32KB) has contended memory access with the ULA, which causes the CPU to pause while the TV raster line is drawn. Code in the upper 32K does not have this issue.
- foft 11y agoIf anyone wants to try out programming the a8 then here is a little info: Best windows emulator: Altirra Best cross platform emulators: Atari800 and Atari++ Or if you have an FPGA board (MIST,MCC216 etc) then you can try my core available at http://www.scrameta.net http://www.scrameta.net Or you could buy a real 800XL!
- spatulan 11y agoI'd recommend Altirra even if you're on Linux, it works well through WINE.
- aphrax 11y agoTalking of Chris Crawford he has an interesting Patreon: https://www.patreon.com/ChrisCrawford https://www.patreon.com/ChrisCrawford
- HNSucksAss 11y agoThis guy is a legend, but I don't find this to be a particularly good illustration of the Atari's graphics. The Display List is particularly poorly described. The DL is literally a list of what graphic modes to use on which raster lines, from the top of the screen to the bottom. For example, one line of text would occupy 8 raster lines. Then the next entry in the display list might be for the highest-resolution graphics mode, which would be only one raster line. Then the next one might be for a large-text mode, taking 16 raster lines. When you added up all the raster lines for the entries in the display list, they'd tally up to the 192-pixel height of the screen.