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.

19 thoughts on “Put an ItsyBitsy Zork in your Pocket

  1. I spent an awful lot of my time some years ago playing the Z-machine game written by Douglas Adams, where you had to play the part of Arthur Dent in Hitchhikers Guide to the Galaxy. It was fiendishly fiendish in places. (having to buy things that were not mentioned in the text, needing to go in directions that the game told you there was no door)

    The BBC prettied it up for Web presentation for the 30th anniversary, but the underlying game is the same:
    http://www.bbc.co.uk/programmes/articles/1g84m0sXpnNCv84GpN2PLZG/the-game-30th-anniversary-edition

    About 10 years after first playing it, and reaching a puzzle I couldn’t solve I heard a hint and went back to complete it.

    1. I had a similar experience with that game back in the day. Being a lifelong die-hard Douglas Adams fan, I was sad to have to give it up, but I could never get past the Vogon ship. Heck, I usually couldn’t figure out how to get the babel fish! I tried it again when the 30th anniversary version was released and found that my text-gaming skills had not improved over the years.

      1. Here is a spoiler/hint , encoded by ye olde school ROT13.

        Gur guvat lbhe nhag tnir lbh gung lbh qba’g xabj jung vg vf, vf npghnyyl n ont bs ubyqvat, naq pna pbagnva rirel gbby gung zneiva zvtug nfx sbe.

        And, also,

        Lbh arrq gb ohl gur vaivfvoyr fnaqjvpu oruvaq gur one va gur cho naq srrrq vg gb gur qbt, be gur qbt jvyy rng lbh yngre juja lbh svaq lbhefrys va n gval fcnpr jne syrrg.

  2. Oh cool, porting text adventures is a fun way to learn how to use a microcontroller’s USB peripheral.

    It’s actually used as the tutorial in a pretty good introductory book called, “Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC”.

  3. I absolutely loved Zork with the story based adventure. It was *far* more interesting than the follow-up graphical adventure games. I could create an entire landscape in my imagination that had all the nuances that made it as exciting/creepy/dangerous as I wanted it to be. When the graphical adventure games took over, the landscape was drawn for you, and it was not only limited by the rubbish graphics/memory limitiations of the day, but by somebody elses’ imagination (or lack of it).

    Interestingly, Zork on my home TRaSh-80 was markedly different from Zork that I got a chance to play back in about 1982 running on a mainframe. Far more powerful language interpreter, and a lot more nuances to the game.

    Sniff, sniff…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.