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)”

Altair Online

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.

Zork On The Microtouch

[Rossum] just finished porting Zork over to the Microtouch. This hardware, which he originally designed, is now available for purchase through Adafruit. It’s a tiny 320×240 TFT touchscreen, driven by an AVR ATmega32u4 microcontroller. The device draws power from a lithium battery, and also boast a USB connection and a MicroSD slot.

The hack here is getting Zork to run with the limited resources available on the device. [Rossum] needed to emulate the Z80 processor, but didn’t want to use extra hardware in the way that [Sprite_TM] did when he emulated a Z80 using an AVR. Instead, this is based on a stripped-down implementation of Frotz. The final code is too big to fit on the chip along side of the bootloader. This means you’ll need to use an ISP programmer in order to flash this example to the chip. We’re pretty sure that AVRdude can program the ATmega32u4, so pretty much any ISP (including an Arduino) can be used to do the programming.

Typewriter As I/O; Lets You Play Zork

Okay, for many the fact that this typewriter plays Zork on paper instead of a CRT is the fascinating part of this hack. But we love the implementation that makes the keys of the device an input and output.

The electric typewriter has been fitted with a solenoid for each key (wow, that’s a lot of work). In the image above you can see they are housed on plywood platforms behind the typewriter and connect using a piece of mono-filament fishing line. This flexible connection means the solenoids have no adverse effect when you want to do the typing instead of the Arduino which drives the solenoids. [Johnathan M. Guberman] took advantage of this, adding a resistor for each key. When depressed the key completes a circuit with the resistor, acting as the input. In this way, you can play Zork with a piece of paper as the monitor, typing for the input, and watching the typewriter magically pound out responses. See it happen after the break.

Continue reading “Typewriter As I/O; Lets You Play Zork”