Zork: Ports   19 comments

I’ve tried my third port of Zork (although I am sticking with the second for now), so I wanted to talk more about the versions that are out there.

To recap an earlier post, the mainframe version of Zork started in 1977 a language called MDL, was ported in early 1978 to FORTRAN and renamed Dungeon, and was renamed again (due to trademark dispute) to Zork before it went commercial.

The FORTRAN source kept getting modified by the original authors up until 1980 and the MDL source kept getting modified up until 1981. However, no versions from 1977 seem to exist (Dungeon 2.5, the earliest version number on if-archive, came from 1980) so any type of modern play will be several years removed from the original.

I started with ZDungeon, a port by Ethan Dicks into z-code based off the MDL source. It seemed like the sanest way at the time to get the closest experience I could to the original, and being in z-code means I get to play it with Gargoyle:

In addition to looking easy on the eyes, it means I can SAVE and RESTORE and even UNDO to my heart’s content.

However, David Kinder kindly pointed me to an interpreter called Confusion by Matthew Russotto that can play the MDL source directly.

Since I’m tackling this project (which I have yet to name or define or admit exists) very seriously on the historical angle, I switched over. I noticed, as David Cornelson mentioned to me, the behavior of the thief seems different: the ZDungeon port has the thief appear in more rooms (any room?) and there’s no warning from the sword about thief proximity. So that aspect of the switch made me happy.

However, I was still slightly unhappy. I was fine sacrificing font readability (which wasn’t too bad) but I was having issues with game saves: the original Zork only allows one save at a time. I could do some file-copy-wrangling to get around that, but when trying an intense amount of experimentation to got to be a hassle. Also not-fun: upon dying, RESTORE no longer works:

> e
Oh, no! You walked into the slavering fangs of a lurking grue.

As you take your last breath, you feel relieved of your burdens. The
feeling passes as you find yourself before the gates of Hell, where
the spirits jeer at you and deny you entry. Your senses are
disturbed. The objects in the dungeon appear indistinct, bleached of
color, even unreal.
> restore
You can’t do even that.

Even that I would have been able to hang on with, but twice I’ve gotten odd crashes like this:

>play violin
Atom REP has neither LVAL nor GVAL

I don’t think Confusion has bugs; I have the feeling these are “authentic” crashes in the code.

I decided to try a Windows port derived from the FORTRAN source (I used the WinGLK one by Andrew Plotkin).

There are some definite port changes. There’s a status line, the “restore” command works when dead, and there’s been bug fixes above and beyond the original port. There’s also (according to the README file) this:

VI. Assorted Additions (up to oct-94)

Performed, to the best of my knowledge, by Robert Supnik. This includes
several puzzles, “lots and lots and lots and LOTS” of bug fixes, an
unsatisfying afterlife, and a Last Lousy Point.

I’m not sure what’s an “unsatisfying afterlife”, but additions of “several puzzles” definitely makes me nervous.

There’s earlier Dungeon ports I could try going back to, even straight from the 1980 source, but at the moment all this has me scratching over my head what a “best” experience of the original would be. Would the original authors really want bugs as part of the experience? I do get the sense that while the MDL source hasn’t gone through bugfix revisions the FORTRAN source sure has (1981, 1985, 1986, 1987, 1994, and 1998) and maybe I’m better off with problems fixed. Rather than HELLO, SAILOR crashing the game (as it does in Confusion) in the Plotkin port of Dungeon it does this:

>hello, sailor
Misplaced comma or conjunction.

Should that really be frowned upon? Am I playing for most enjoyable experience or maximum authenticity? Am I stalling by writing this post because yet another puzzle is stumping me?

At least I know the answer to the last question.

Posted April 12, 2011 by Jason Dyer in Interactive Fiction

Tagged with

19 responses to “Zork: Ports

Subscribe to comments with RSS.

  1. The plot thickens: I checked a more direct port from the original FORTRAN of Dungeon, and it mentions this:

    For those familiar with the MDL version of the game on the ARPAnet, the following is a list of the major incompatabilties:

    – The first six letters of a word are considered significant,
    instead of the first five.
    – The syntax for TELL, ANSWER, and INCANT is different.
    – Compound objects are not recognized.
    – Compound commands can be delimited with comma as well as period.

    Also, the palantir, brochure, and dead man problems are not implemented.

    So there are missing puzzles, which is significant enough to try sticking with the MDL version.

    • My understanding is that all the Fortran versions are due to Bob Supnik, who first created it from the MDL sources and then sporadically updated it (and released it through DECUS, the DEC user group) over the years. The first Fortran versions left out a few optional puzzles, which weren’t fully implemented until the last Fortran version (3.2).

      Good luck with the historic authenticity angle :-) As Zork/Dungeon was being modified by the authors while people were playing it, there can never really be a “one true version” (and similarly for Acheton, which came only a few years later).

      • If the extra implemented puzzles in the 1994 version are “plugging in” the gaps, I’m fine with only a Last Lousy Point added.

        Other consideration: while Bob Supnik is not an “official Implementer”, it does seem fair to count him as one of the original authors of Zork/Dungeon.

  2. By the way, good luck with the project! I’ve been following the “CRPG Addict” project to play all PC role-playing games in date order with much interest, and have been hoping someone might tackle a similar one for text adventures.

    • I won’t necessarily follow the same rules — at some point I believe I’m going to either alternate in-chronology out-of-chronology or maybe just play simultaneously that way. However I am having fun sticking with chronological for now.

  3. I don’t recall the pdp versions of dungeo that I played in 1979-80 as having any crash bugs. I do not recall any palantir, brochure, or dead man puzzle, though the last lousy point rings a bell. We would use the detach capability of RSTS/E to rename save files, and restore them. I do remember when the cube puzzle was added to the thief’s room. That was very strange to see a new puzzle appear.

    I still think a Fortran version from 1981 would be the optimal version to play. The last known Decus version is what you should seek.

    • We would use the detach capability of RSTS/E to rename save files, and restore them.

      I just made some DOS batch files which work really well to the same effect.

      My plan is to finish with Confusion (which is as close to the MDL version as I’m going to get) and then try early-port Dungeon at some point and see if there’s any difference.

  4. I’m just finding your tale of working through the original version of Zork. I’m curious to hear what behavior of the Thief is different. There absolutely _is_ a problem with how the Thief moves in ZDungeon R12. I got help from Bob Supnik and Dave Lebling – it was caused by a difference the order that the MDL code and the Inform code made the list of rooms to traverse (Inform was order of declaration, MDL was reverse-order owing to a push-down macro). In any case, even in ZDungeon R12, the Thief should never appear in rooms that are marked “sacred” or underwater or mid-air. If there’s a particular room you saw him in that you think he shouldn’t have appeared in, I’ll investigate.

    In the meantime, thanks for talking about “confusion”. I’ve got it and will be exploring the MDL code with it. Heretofor, I’ve been running MDL Zork on a PDP-10 to check for differences, but it’s nice to have another tool in the tool box (and it opens up the possibility of minor changes to the code for exploratory purposes).

    For the curious, the MDL code I have is the “last MIT version”, sent to me by in 1992 by someone who was there. It’s the same as the MDL code that’s been bouncing around the ‘net for 20 years. I’m not aware of any other versions in the wild.

  5. I tried the MDL version of zork under Confusion. I got 586 points, making me a Wizzard. The only problem I had, was the Wraith never shows up, so the end game is impossible to do. Another thing I noticed is that the Thief has the ability to steal everything off of you in one go. He also shows up in places he should not, such as the tree branch where the birds nest is. I didn’t actually see him there, but the birds nest showing up in the dungeon was a tip off as I never moved it from the the tree branch.

  6. As for the problem of having only one game save, this could be solved with a batch program to act as a game save manager. This was something that was implemented in an old Dos game called Starflight 2 Trade Routes of the Cloud Nebula. It would be very easy to modify Starflight 2’s Dos batch program to work with Confusion and mdl zork.

  7. I have recently unearthed a December 1977 version of Zork.

    • Oho! Is it already up somewhere, or are you preparing for an announcement?

      I need to get up a 1977 version of Adventure I have in BASIC-PLUS from Keith Barnett. It’s from the same mainframe that Crystal Cave was from and likely is the basis for Crystal Cave’s code (before it got translated to UNIVAC FORTRAN).

  8. I found the 94 version with the palantir, last point, and dead man puzzles on an rsx disk.

  9. I’ll bump this thread to add that I made versions of the MDL code adjusted for Confusion with the bugs discussed here fixed. There are four versions that are completely playable from different incarnations:

    * 771212 500 points
    * 780124 500 points + endgame
    * 791211 616 points
    * 810722 616 points (final version)


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 )

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.

%d bloggers like this: