* Foreword by Dannii * In October 09 someone reminded me of the Muttonate Javascript interpreter, which has led me to package up the source code for submition to the IF Archive. The only copy of the source code seems to be at the original Geocities website , which will be closed down in late October. Although slow, Muttonate has clean, well-written source code, and would serve as a nice example of a simple Z-Machine implementation, or even as the base engine for another interpreter (as it is for the Flash interpreter Flashonate .) And it's released under an open source licence, the GPL v2! I have included Carl Muckenhoupt's The Gostak as an example because it's a crazy game! (And also cause it's fairly small.) This post of Q P Liu's showed how easy Muttonate is to use: I have made one change to muttonate.js at line 2157, to make loading local files work: - if (x.status != 200) { + if (x.status != 200 && x.status != 0) { * The Geocities blurb * Without a fast computer, this interpreter will probably be too slow to be playable. Ironic, considering the origins of the virtual machine. Just for comparison, The Magic Toyshop executes about 4000 instructions per turn, Spider And Web executes about 9000 instructions per turn, and Savoir-Faire executes 50000-60000 instructions per turn. With Safari on a 1.25 GHz G4, a turn in The Magic Toyshop takes about 2 seconds, about 10 seconds in Spider And Web, and 2-3 minutes in Savoir-Faire. With Firefox on a 2.8 GHz Pentium 4, a turn in The Magic Toyshop takes a few tenths of a second, about a half to one second in Spider And Web, and about 3 seconds in Savoir-Faire. Of course, the amount of processing needed for a turn varies depending what is being done and on the state. These are for looking around the first few turns. * Q P Liu's ABOUT * About Muttonate 0.0-(20060106-8) This interpreter implements a subset of the Z-Machine Specification 1.0. It recognizes only version 5 and 8 story files. It makes no attempt to support any Infocom quirks. Making Infocom games available on the web wouldn't be legal anyhow (if I were to dig that Activision CD I got in 1994 out of somewhere in my closet). A single save (to memory) is supported. Subsequent saves overwrite previous saves. This interpreter loads base64 encoded story files, since XmlHttpRequest tends to mangle binary data. Except on fast computers (as of Jan 2006), this interpreter is too slow to be playable with most story files. Microsoft Internet Explorer (as of Jan 2006) does not appear to support the styles white-space: pre and position: fixed, which cause the layout to be wrong with that browser. Except for scrolling appropriately, this interpreter seems to display things reasonably with Safari and Firefox (as of Jan 2006). Problems with this interpreter or with the story file can lock up the browser. Firefox has protection against infinite loops. Safari does not. I do not know if this interpreter works on other browsers. (Except lynx and links, on which it would not work.) The malyon source code and its tracing facility were very helpful in the making of this interpreter.