How Pitfall builds its world (2021)
evoniuk.github.io
evoniuk.github.io
And, more recently, the Commander X16.
I also wanted to release a decent pure 6502 with a good command line monitor that lets you explore programs easily. Step. Poke memory. Set registers. Good CLI. We’ll see. It really helps to have a decent playground when getting started :)
Check the 2018 video of an Atari 8-bit emulator which can run 182 apps simultaneously (no idea what CPU is powering the box):
I mean, there were fun games with very basic graphics (Combat springs to mind, https://www.free80sarcade.com/atari2600_Combat.php) but there were also way too many uninspiring original games and arcade copies that were just lame.
Now we know why. It's a great article, thanks for sharing @kibwen.
The 2600 is before my time. I grew up with the NES and its library. I do see 2600 nostalgia in older generations, but for me, Pitfall is pretty much the only title worth playing.
But for my money the most fun you can have on an Atari 2600 today is 4-player Warlords with well-maintained paddles.
"adds arcade features such as the launch dragon, multiple fireballs, and a level of polish missing from the original 2600 release."
There are a ton of homebrew games for the 2600 that are super fun.
After many decades I finally managed to try it out, on a real CRT and everything. It's not something you generally want to play for hours or anything like Mario Kart... but it is really really good.
This was definitely the most fun for larger groups of players back in the day.
Despite having awkward controls, “Combat” is also fun due to couch multiplayer. “Jungle Hunt” is similar to Pitfall but faster. I also managed to spend a lot of time playing the 2600 version of Asteroids, but I don’t know if it actually holds up.
There was something about the first generation Activision games that seemed to stand out compared to the rest. Whether simple or complex, they had some hard to pinpoint quality that was just... 'good'. David Crane mentions this in one of the linked videos. "2 line kernel didn't look good. 1 line kernel was harder to do, but looked better, so we just did that". He's referring to doing more work to be able to make visual updates every scan line, instead of every other scan line. This made their games so much more visually sharp and appealing compared to what came before on the same hardware.
The intention was that the CPU would spend 1 scan line updating P0 graphics, then the next scan line updating P1 graphics, and by setting the delay for P0, both player graphics would appear on the same 2-line portion.
So "2 line kernels" were doing it in a way the TIA supported and providing time to do other things like check paddle status (because you're supposed to be programming a Pong game). Of course the TIA has been wonderfully pushed and twisted in ways never imagined by the designer. I think someone even experimented with interlaced 160x400 graphics.
Check this out - a list of 20 Atari VCS games the author thinks still hold up in 2022.
I'm not sure I agree with all the choices, but it's an interesting list nonetheless.
- Adventure
- Riddle of the Sphinx
- Raiders of the Lost Ark
- Dragonstomper
- Star Raiders
Fun Copyright Fact: This website is violating Atari's copyright and will do until the year 2072!
"For a work made for hire, the copyright endures for a term of 95 years from the year of its first publication" https://www.copyright.gov/help/faq/faq-duration.html
This was also a time (1982) when arcade games (Star Wars, Tron, Zaxxon, etc.) and their graphics were an order of magnitude more impressive than home console games, but Pitfall still had enough playability and complexity to keep it interesting.
I also like that this is on the front page the same time as “24 cores and I can’t move my mouse” https://news.ycombinator.com/item?id=34095032
It tells us that software is like a gas - it naturally expands and fills the container it occupies.
Any time I think of Pitfall!, I always remember this pamphlet you could request and receive via mail:
Programming Pitfall Harry
https://www.amazon.com/Racing-Beam-Computer-Platform-Studies...
and
https://en.wikipedia.org/wiki/Racing_the_Beam
Great read. Very in-depth on some of the great games of that era.
It is a fascinating book - and not just for the pitfall chapter.
A detailed write up that goes into a bit of mathematics with code examples is 'Demystifying the LFSR' [3].
The 'Computerphile' Youtube channel did a whole episode on LFSR last year which is very accessible, highly recommended [4].
[1] https://fabiensanglard.net/fizzlefade/index.php
[2] https://www.amazon.com/Game-Engine-Black-Book-Wolfenstein/dp...
It had 32 bytes of RAM. The IDE and educational materials were very heavy handed about encouraging you to split them up into very small variables, only as big as needed. Think of all the 8 bit ints that fit into 32 bytes!
PBASIC was actually pretty cool.
They had to "race the beam" ... but the VCS was not as fast as the beam, which is why Atari 2600 games always have a horizontally stretched look to them:
https://en.wikipedia.org/wiki/Racing_the_Beam
"The book's title comes from the fact that the Atari 2600, initially branded the VCS (Video Computer System), did not have a video frame buffer, and required the programmers to write each line of video to the television, one line at a time. As there were only a limited number of machine cycles in which to do this, the programmers were literally racing a high speed electron beam across the screen."
I haven't seen it in a while (will rewatch now), but I remember him going over how he was able to create so many levels in such a tiny space. I love these sorts of examples of breakthrough tech products that were the result of a developer figuring out how to do something that seemed impossible. Much of Apple's early success, for example, could be attributed to this.
Amen.
See https://www.theguardian.com/books/2003/oct/18/features.weeke...
In the days before ARM and when we needed to use a $3 processor to hit our BOM cost, my code used every byte of the 8K and every register... bit-banged I2C, bit-banged RS232 up to 56Khz, LED and 8-key touchpad debouncing, and best of all, an IR receiver and IR emitter which both learned arbitrary consumer IR codes in the fashion of a then-fashionable universal remote, and reproduced them including press-and-hold behavior, while emulating their carrier frequency... and could do bi-directional device cloning via IR by holding the products up to one another face-to-face...
And had a rock-solid bootloader for encrypted firmware updates.
Ah the good ol' days... a tear for the old skool.
I called the binder with the hard copy of the commented assembler source "my first novel"...
I wholeheartedly approve of this correction. :)
How Atari 2600 Game Pitfall Builds Its World - https://news.ycombinator.com/item?id=27111377 - May 2021 (29 comments)
If you try to save the entire mesh for a video game world’s surface, it would be absolutely massive. So you just save the gist and generate all the in-betweens.
I think it was about Morrowind?
Aren't those dumpster-dived scans of source code to Atari 7800 games?
From 2000 to 2002 I worked as a QA engineer at a semiconductor company in Silicon Valley. We tested the chips using all sorts of software. My boss loved dumpster diving at software companies, and probably half of our lab’s software came from stuff she found in the trash. My favorite find was Risk (the board game) for Windows 3.0.
People always chime in to say that you can still do that today. But back then the constraint was real; it was the best you had to work with, and it forced you to think of creative ways to use it and maximize it.
Anyway, super cool piece — thanks for sharing!
Then in my 30s I found a group of retro enthusiasts that were still hacking on the little oddball computer I'd had as a kid. It became a hobby for a few years, and coming back to the platform with a couple decades of experience programming was truly a revelation. Fitting the whole machine in your head, knowing what every byte in the memory map and every cycle of the CPU are doing.. its an experience I don't think is really possible on modern hardware. Maybe with a microcontroller or arduino type device, but even these are much more complex than the old 80s microcomputers.
And I don't think Xcode Playgrounds or various Programming Environment For Babies applications draw as much attention and spark as much imagination as learning to mod infinite lives into a game you already play, or even something as simple as modifying an ini file for a mod you found online.
Mixing "something you like" with "something you can learn" is always a winning combo.
I know you mentioned it "doesn't spark as much imagination", but I'm going to strongly disagree with you there. I don't think most software engineers got started by tweaking existing software. _You_ may have started that way, but I didn't. I got into programming by seeing the kinds of apps people made for Mac and iPhone, and wanting to build those kinds of experiences.
But I also feel like there's some magic in the past too. Some of it's nostalgia, but there's also lessons there that are valuable.
I only got in to programming in my 20s when some company called canonical were giving CDs away of this thing call Linux.
Point is. We have the internet now for kids to discover these things, and schools are more up on it and we have inexpensive computers and stuff for kids to play about with.