4 ms·
A while back I made a partial emulator for Z5 (a version of the virtual machine Infocom games ran on) that recompiled the game dynamically to Javascript[1], and
by kmill 9y ago
A while back I made a partial emulator for Z5 (a version of the virtual machine Infocom games ran on) that recompiled the game dynamically to Javascript[1], and I remember while pouring over the dumps coming across the fact "You're holding too many things already!" depended by a random number. I never checked whether it could actually fire, though! I assumed it was vestigial, with the "Your load is too heavy" message in the same function.
Another quirk I came across was how in the Canyon View, on many emulators when you "climb down" you are greeted with "The xc ec knwall munz doesn't lead downward." It turns out the Solid Gold edition has no name for the "down" object, which probably didn't exist in earlier versions, and emulators don't tend to check the text length field for the object (0 in this case) because the string encoding uses something like null-termination. Text is encoded in 5-bit blocks, explaining how the random data stays within the alphabet. Whatever emulators do, it's still a bug in the game.
[1] It was an excuse to figure out how to make an Emscripten-like relooper, to figure out how to simulate blocking calls ("continuations") using exceptions, and to learn about the design of the Z-machine.
Edit: I guess I should mention for the "xc ec knwall munz" quirk that the directions are all objects, and "climb" is meant for ropes and stairs. I believe what is happening is that you can go down in the Canyon view, but "down" isn't the vehicle which will carry you there.
- duskwuff 9y agoInfocom's games handled compass directions strangely -- they were treated like omnipresent objects. In some versions of Zork, you could give a direction (like "east") to a hungry troll, who would proceed to eat it. This, among many other bizarre bugs, is documented at: http://graeme.50webs.com/infobugs/zork1.htm http://graeme.50webs.com/infobugs/zork1.htm
- cjsawyer 9y agoAs an aspiring game designer who has never played Zork: that list was fascinating.
- wolfgang42 9y agoDirections-as-objects seems to be a common pattern. LambdaCore does the same thing, though LambdaMOO later added a Generic Detailed Room with basic support for directions, so a separate object wasn't required. (Anything more sophisticated than "go west" still requires a separate door object.) In addition to missing checks causing unexpected interactions, this approach also has the problem that the two ends can become asymmetrical, causing confusion (though this may be desired e.g. in the case of a trap-door). In the case of LambdaMOO, there's an entry northwest from the living room to the kitchen, but no corresponding entry southeast in the other direction!
- jandrese 9y agoAsymmetrical navigation was definitely used as a game element. "You are in a maze of twisty passages, all alike".
- deleted 9y ago[deleted]
- jacobush 9y agoOnly two hits on Google for "xc ec knwall munz", one which is your post here. Color me impressed.