
First Infocom Z-machine implemented in hardware - georgeoliver
https://github.com/charcole/Z3
======
yzzxy
Predictably from my username I love text adventures, and looking back they
were a big influence on me gaining skills in programming and such. I think it
may have been just learning the paradigm of working with a console more than
anything else.

There's still a lot of interactive fiction being made today, and you can find
a lot of old and new games on the IF Archive[0]and IFDB [1]. New tools like
Twine[2] are also allowing new forms of interactive fiction - "The Uncle Who
Works For Nintendo"[3] recently showed up on the HN frontpage and was built in
Twine.

Finally, I'll point out Inform 7[4] - a language designed for creating text
adventures. It's all natural English grammar, and is really interesting in
terms of design and parsing. I would highly suggest learning a bit of Inform
and writing a small game in it, it's a very weird process. Also it will help
you understand some of the jokes in _why's printer spools.

[0] [http://www.ifarchive.org/](http://www.ifarchive.org/)

[1] [http://ifdb.tads.org/](http://ifdb.tads.org/)

[2] [http://twinery.org/](http://twinery.org/)

[3]
[http://correlatedcontents.com/misc/UWWFN/UWWFN.html](http://correlatedcontents.com/misc/UWWFN/UWWFN.html)

[4] [http://inform7.com/](http://inform7.com/)

~~~
techtalsky
You know, I love inform 7 and was incredibly inspired when I first saw it and
played with it. I DID try to create a simple game but was stymied by the
documentation. There's a tutorial with the most basic game, and then there's
in-depth documentation. There's not a lot of in-between. Syntax examples of
how to do a handful of common things would have been wonderful.

~~~
AgentIcarus
I can recommend the book "Creating Interactive Fiction with Inform 7" \-
[http://www.amazon.co.uk/Creating-Interactive-Fiction-
Inform-...](http://www.amazon.co.uk/Creating-Interactive-Fiction-
Inform-7/dp/1435455061/) \- it walks through the process of creating a quite
complex game and has some useful recipes and examples.

------
walt74
I'm surely not the hardware-hack as most guys around these realms, but I do
sure love Infocom and the old textadventures and… you didn't really build a
Infocom-CPU, did you? You, sire, are my hero.

------
m-photonic
The Space Invaders clone at the end of the video blew me away when he
explained that it was running on the Z-machine. That is something I never
would've thought I'd see.

------
grimgrin
Many Infocom employees are present in the documentary Get Lamp:

[http://youtu.be/LRhbcDzbGSU](http://youtu.be/LRhbcDzbGSU)

Recommended if text games are of interest to you.

------
sehugg
Terse overview of the Z-Machine architecture: [http://inform-
fiction.org/zmachine/standards/z1point0/overvi...](http://inform-
fiction.org/zmachine/standards/z1point0/overview.html)

A short history: [http://inform-
fiction.org/zmachine/standards/z1point0/appd.h...](http://inform-
fiction.org/zmachine/standards/z1point0/appd.html)

------
comboy
> Disclaimer: This is my first Verilog project so might not be written all
> that well

Impressive.

------
hga
Cool.

Sounds a bit crazy, but the bill of materials is very cheap, e.g. $10 FPGA, $4
for Flash and SRAM, not much else for I/O, runs fast (and is the author's
first Verilog project, so no doubt speedups are possible).

~~~
Narishma
Or you could just use a $2 micro-controller and run the vm in software.

~~~
hga
In order to run multiple games, you need quite a bit of memory, either, say, a
bare minimum of 32KiB to load into, or several times that in flash for them.
RAM requirements aren't tiny, e.g. I'd guess more 1KiB, although I don't know
this architecture (my "Infocom" experience is mostly with original Zork
running on MIT-DM, a KA10 PDP-10, using a general purpose MDL language,
although I only looked at code, didn't try to write any).

Does that bump the price of the required micro-controller up beyond $2?

It that a silly question in almost 2014 with Moore's Law still in effect ^_^?

~~~
morcheeba
This'll easily do it for $2.13 -- 256 KB FLASH + 32 KB RAM on a 40 MHz 32-bit
ARM processor. [http://www.digikey.com/product-
detail/en/MB9AF314LAPMC1-G-JN...](http://www.digikey.com/product-
detail/en/MB9AF314LAPMC1-G-JNE2/1534-1033-ND/4914770)

Microcontroller RAM is expensive, but FPGA RAM is even more-so.

