Z-machines for various 8-bit platforms

I’m in the process of writing my first text adventure and I’m wondering what z-machine interpreters are available on retro systems of the 80’s.

Platfom examples: Atari 8-bit, ADAM, Apple IIe, C64, etc.

4 Likes

A recent implementation for various Z80 based machines is Vezza (or its embedded version) – see also the forum threads (1, 2). Older Z80 ones include M4ZVM and M3ZVM (TRS-80) and ZXZVM (Amstrad/Spectrum).

It looks like the 6502 world is covered by Ozmoo.

Here’s an IFWiki query for the Z-code interpreters for 8-bit systems known to IFWiki (which might not be all of them).

5 Likes

Anything that had an Infocom interpreter plus a whole bunch that have come along since. It will depend on whether you’re compiling to z3 or z5. The z5 interpreters are preferable (if you have a choice) as these include UNDO.

If you write your game using the PunyInform library, then you can use the Puddle BuildTools to build disk images for the following platforms:

  • Acorn Electron
  • Amstrad CPC
  • Amstrad PCW
  • Apple II
  • Apple Macintosh (early models)
  • Atari 8-bit (400/800/XL/XE)
  • Atari ST
  • BBC
  • Commodore 64
  • Commodore 128
  • Commodore Amiga
  • Commodore Mega 65
  • Commodore PET
  • Commodore Plus 4
  • Commodore VIC-20
  • DEC Rainbow
  • Dragon 64
  • Kaypro
  • MS-DOS
  • MSX 1
  • MSX 2
  • Oric
  • Osborne 1
  • SAM Coupe
  • Spectrum +3
  • Spectrum Next
  • TI-99/4A
  • TRS-80 Color Computer
  • TRS-80 Model 3
  • TRS-80 Model 4
  • and a partridge in a pear tree
7 Likes

Thanks @JTN !
@TechCowboy The best reason to use one of these newer interpreters is that you’ll also get .z5 compatibility, which means a much richer experience for the player. Feel free to ask any questions :slight_smile: There’s also a toolchain (referred to above - Puddletools) which can help for multi-platform, but as of writing this now there’s some updates needed to get it to use the current interpreters across all platforms.

3 Likes

Just to clarify. The Puddle BuildTools are not limited to only PunyInform games. It can build all z-machine games from all compilers that output to that format (Zilf, Dialog and even Inform7 (probably a painful experience, though)). The important bit is that the game is small enough to be able to fit on the target platform.

3 Likes

A word of caution, if you’re using these old interpreters, do test your game on each platform you release your game on. I found that both the old single disk and later two disk Atari 8bit Infocom interpreters would not play my game, although it works fine on modern interpreters and Ozmoo. In retrospect I should have anticipated that. While it was possible to code round some of the issues, I was only able to get my game to work in the later two disk “G” interpreter.

For example, if you have class A and object B where B is of class A and a before routine exists in both A and B, then self is not set in A.Before() using either Atari interpreter. Or so it seems.

Also, although less important, the £ sign was not supported.

While there are bug lists for games online, I haven’t been able to find a list of known bugs for these vintage interpreters. If anyone has one, I’d be interested in seeing it.

Because of this, I chose to release my game only on platforms I’m familiar with and can test, albeit only under emulation.

As far as I know, OZMOO only exists for C64 and the BBC Micro families, it hasn’t been ported to the Atari.

Jeremy

2 Likes

Impressive list. The Coleco ADAM needs to be added :rofl:

Coleco Adam is totally on my to-do list, I just can’t find enough boot environment, emulator and documentation to make it run. I’ll put it to you this way… I made a custom interpreter to load Zork 1 (and some other smaller games) on the Spectrum 128k Tape (i.e. .TAP file).

1 Like

Shawn beat me to it. The Infocom games all use CP/M when running on the Coleco Adam. Vezza supports CP/M on a large range of micros, so it’s probably just a case of sorting out the finer details to get it working on that machine. Shawn’s the expert in this area.

1 Like

Check out the Fujinet for the ADAM. This open source project really makes it easy to develop on a lot of retro projects (Atari, Apple, ADAM, C64, etc.) https://fujinet.online/

Last but not least, I spotted your name on another forum. I also have an Agon Light version of Vezza so you can test your z-machine game there too! Vezza - Agon by sijnstra

Yes, that’s right I also have an Agon. I will try this as well.