Zork And The Z-Machine: Bringing The Mainframe To 8-bit Home Computers

Computer games have been around about as long as computers have. And though it may be hard to believe, Zork, a text-based adventure game, was the Fortnite of its time. But Zork is more than that. For portability and size reasons, Zork itself is written in Zork Implementation Language (ZIL), makes heavy use of the brand-new concept of object-oriented programming, and runs on a virtual machine. All this back in 1979. They used every trick in the book to pack as much of the Underground Empire into computers that had only 32 kB of RAM. But more even more than a technological tour de force, Zork is an unmissable milestone in the history of computer gaming. But it didn’t spring up out of nowhere.

DEC PDP-10 Flip Chip module
DEC PDP-10 Flip Chip module

The computer revolution had just taken a fierce hold during the second World War, and showed no sign of subsiding during the 1950s and 1960s. More affordable computer systems were becoming available for purchase by businesses as well as universities. MIT’s Laboratory for Computer Science (LCS) was fortunate to have ties to ARPA, which gave MIT’s LCS and AI labs (formerly part of Project MAC) access to considerable computing resources, mostly in the form of DEC PDP systems.

The result: students at the MIT Dynamic Modeling Group (part of LCS) having access to a PDP-10 KA10 mainframe — heavy iron at the time. Though this PDP-10 was the original 1968 model with discrete transistor Flip Chip modules and wire-wrapping, it had been heavily modified, adding virtual memory and paging support to expand the original 1,152 kB of core memory. Running the MIT-developed Incompatible Timesharing System (ITS) OS, it was a highly capable multi-user system.

Naturally, it got mostly used for playing games.
Continue reading “Zork And The Z-Machine: Bringing The Mainframe To 8-bit Home Computers”

Arduino Hunts (and Sees) The Wumpus

For anyone who’s been fiddling around with computers since the days before VGA, “Hunt the Wumpus” probably brings back fond memories. Developed in 1973, this text game has you move around a system of caves searching for the foul-smelling Wumpus, a vile creature which you must dispatch with your trusty bow and arrow. Some consider it to be one of the very first survival horror games ever developed, a predecessor to the Resident Evil franchise as well as the video game version of Hannah Montana: The Movie.

If the concept of “Hunt the Wumpus” sounds interesting to you, but you just can’t get over the whole text adventure thing, you may be in luck. [Benjamin Faure] has developed a semi-graphical version of the classic horror title which might better appeal to your 21st century tastes. Running on an Arduino Mega 2560 with graphics displayed on a 8 x 8 LED matrix, it’s not exactly DOOM; but at least you won’t have to type everything out.

You are winner!

For his handheld version of “Hunt the Wumpus”, [Benjamin] 3D printed a nice enclosure and adorned it with labels and instructions that look like tiny scrolls, a neat touch for a game that’s so old contemporary players would have called Zork a “next gen” game. While playing you can see where you’ve been and where you are currently thanks to illuminated dots on the MAX7219 display, and there are LEDs to warn you of your proximity to bottomless pits and the Wumpus itself. There’s even a piezo speaker that will chirp when a bat is nearby, which is important as they have a tendency to ruin your day by carrying you away to a random location in the cave.

Most of the game looks like an advanced version of Snake, but [Benjamin] did go through the trouble of adding some rudimentary animations and sound effects that play during specific parts of the game. When you shoot your arrow or get carried away by a bat, you’ll see a “cutscene” of sorts on the LED display. It’s a fairly simple effect, but helps break up the otherwise fairly spartan graphics and might just be enough to keep a youngins’ attention.

If you subtract a dimension, this project is reminiscent of the 1D dungeon crawler we covered last year. But if even one dimension is too many, you could always run the text version of “Hunt the Wumpus on your trusty Arduino.

Continue reading “Arduino Hunts (and Sees) The Wumpus”

Put An ItsyBitsy Zork In Your Pocket

Before computer games had all these fancy graphics, text based games were a very popular genre. Rather than move a character on the screen, you’d type out commands for your player in sentence form which the game would interpret; decades before the “cloud” language processing technology that the likes of Amazon and Google currently use to power their virtual assistants. In some ways the genre was ahead of its time, but it didn’t survive the graphical revolution for home computers. Of course, these games still have some diehard fans out there.

[Dan The Geek] is one such fan. He loves text based adventure games like Zork so much that he wanted to create his own implementation of the core technology that made these games possible all those years ago. But he didn’t want to just do it on this desktop computer, there’s already projects that let you run these classic games on modern hardware. He wanted to see if he could run these classic games on a modern microcontroller, and create a authentic retro experience on a handy portable device.

[Dan] starts by explaining the technology used to make titles like these possible in the days when the wide array of home computer types required a nuanced approach. By separating the story files from the actual interpreter, developers could more easily port the games to various computers. In theory these interpreters, known as “Z-machines”, could be written for any computer that could compile C code, had enough RAM to hold the story, and had a terminal and keyboard. Not exactly the kind of system requirements we’re used to seeing for modern PC games, but it was the 1980’s.

In theory a modern microcontroller will meet these requirements, so [Dan] wanted to create his own Z-machine for one. But rather than “cheat” by using an SD card like previous Arduino Z-machines have, he wanted to see if there was a development board out there that could do it all internally. The answer came in the form of the  Adafruit ItsyBitsy M4 Express, with its 192 kB of RAM and 2 MB of SPI flash.

The Z-machine created by [Dan], which he’s calling A2Z, allows users to run Zork and other compatible interactive text games on the ItsyBitsy without any additional hardware. Just plug the board into your computer and you’ll be able to play the games over the the serial connection. He’s even implemented some retro color schemes to make the experience more authentic, like the blue of the Amiga or Compaq green.

We’ve covered previous projects that brought Zork and friends to the Arduino, your web browser via a virtual Altair 8800, and even some more exotic targets like custom FPGAs. You can play cave adventure, the game that inspired Zork, on the Supercon Badge.

Zork Comes To Custom FPGA CPU (Again)

[Robert Baruch] wanted to tackle a CPU project using an FPGA. One problem you always have is you can either mimic something that has tools and applications or  you can go your own way and just build everything from scratch (which is much harder).

[Robert] took the mimic approach–sort of. He built a CPU with the express idea of running Infocom’s Z-machine virtual machine, which allows it to play Zork. So at least when you are done, you don’t have to explain to your non-tech friends that it only blinks an LED. Check out the video, below, for more details.

Continue reading “Zork Comes To Custom FPGA CPU (Again)”

Online Altair 8800 Clone Lets You Play Zork

[Citponys] wanted to share their Altair 8800 clone with the world, and what better way to do so than by hooking it up to the Internet? This hack was pulled off by using a Linux computer which receives a Telnet connection and redirects it to a serial port. This serial port is connected to the Altair clone. In order to connect the serial port to the Internet using TCP, the ser2sock program was used. People can interact with the Altair on the webpage, where there is also a live camera feed showing the Altair’s Blinkenlights.

This is an ongoing project for [Citponys]. Zork 1-3 and Ladder are now available for play. You can interact with other people in the current session; play nice, or it’ll end up a Mad Libs version of ‘Twitch Plays Pokemon’.  Most recently, [Citponys] updated the webpage with a HTML5-embedded terminal emulator. If you want to quit the current session displayed, enter “quit” and you will be redirected to the main menu where you can choose another game. [Citponys] has links to game walkthroughs on the top of the page. We have a soft spot for classic computers and games, especially the Altair. Take a trip down memory lane and play some Zork at the fork where the past meets the present!

[via Reddit]

Playing Zork On The Arduino

If you’re looking for something to do on a boring Sunday afternoon, how about dusting off your Arduino and playing a text adventure? [Louis] wrote in to tell us about his project called AZIP, an app that will let you play classic 1980s text adventures on your Arduino.

The famous Infocom text adventure games such as Zork and Hitchhiker’s Guide to the Galaxy (reputed to be better than the book, by the way) all ran on a virtual machine called a ZMachine. We’ve seen a few unsuccessful attempts to run a ZMachine on an Arduino, but these builds usually end up going with a Linux-based single board computer. As far as we’re aware, [Louis]’ build is the first time classic text adventures have been available on the Arduino.

[Louis] based his build on the popular Jzip ZMachine. The required hardware is fairly minimal – just an Arduino with an SD card. Right now the limitations of Flash and RAM on the Arduino means [Louis] needed to remove the game save and restore functions, but with a little clever coding and continued development those functions can be restored. Very cool indeed.

Hacked Phone Runs Zork, Gets Lamp

A few months ago, [Ulysses] had a project in mind that would run Zork on a TDD. Although it was a bit of a struggle getting the project ready in time for the Bay Area Maker’s Faire, the accompanying build blog tells us it was more than worth the effort.

After hooking up the guts of the phone to an Arduino Pro, A modem was modified so the acoustically coupled TDD could be interfaced. Although the TDD display is only one line, [Ulysses] is transmitting the text at only 45.5 baud, So even the slowest reader could keep up with the story. For running the actual code, initial attempts at using an Arduino Pro, and then Arduino Mega proved unsuccessful because of the limitations of sram in these AVRs. After discarding the idea of running Zork on an Arduino, the project was finished with a single board FitPC computer mounted inside the phone.

The code of the project runs Zork on a port of the Infocom Z-code Interpreter Program, or ZIP. A lot of interactive text adventures were put out in the Z-code format, so we’re guessing it would be trivial to have this project run Leather Goddesses of Phobos, or the amazing Hitchhiker’s Guide to the Galaxy. It’s a very nice project, and we could easily see ourselves sitting down with this project, a two liter bottle of Shasta, and an all-Rush mix tape on a Saturday night.