#Vezza

Shawn Sijnstrasijnstra@hachyderm.io
2025-12-24

As a surprise Christmas gift to #retrocomputing, I've pushed out a new version of my #Vezza #Infocom #zmachine #interpreter. This time it's a #CP/M build, specifically for the #TRS80 models 2/12/16... on glorious 8-inch floppies. My requestor and tester Ziggystar12 was kind enough to take a photo of Bureaucracy running on a machine with the 8-inch drives; a game that could never be run on that machine before even though it was contemporary! #retrogaming #retroBattleStations

TRS-80 Model 16 running Bureaucracy using Vezza
Shawn Sijnstrasijnstra@hachyderm.io
2025-12-18

Another fine #z80 machine is the Tiki-100, hailing from Norway and running an OS that was compatible with #cp/m 2.2, called TIKO. This one has a pixel-based display which is rendered by the character out BDOS calls, making it a little slow, but still a lot of fun to work with. The boot disks and emulator are all Norwegian which was a fun challenge. The testing process also uncovered that the emulator has a timer bug, so the timing is different to that on real hardware. In the end, it all worked rather well. I ended up using the one colour highlight available to simulate bold text, bringing my #Infocom #Inform #Z-machine interpreter #Vezza to yet another machine. Download the binary from gitlab.com/sijnstra1/vezza

Emulator screenshot for Nord and Bert playing on a Tiki-100
2025-06-27

And in-between times I am playing with a new (to me) Z-Code interpreter called Vezza in RunCPM.

So far so good... Running all my favourites (inc all the Zorks), so far as high as some Z5's.

Loving an easy single interpreter that I can just chuck data files at as CMD line parameters!

sijnstra.itch.io/vezza

And/Or

gitlab.com/sijnstra1/vezza

#infocom
#zork
#planetfall
#RunCPM
#Vezza

Shawn Sijnstrasijnstra@hachyderm.io
2025-05-31

The Grundy #NewBrain was an interesting #z80 based machine from 1982. One of its more remarkable features was a built-in single line display in addition to the video out, allowing for some portable use. The machine was targeted at business use and didn't get a large amount of platform specific software. It ran a version of #CP/M 2.2 with an efficient implementation giving it a large TPA. The platform also supports inverse characters, although without a specific control code to toggle so I need to manually track reverse character mode and toggle the top bit accordingly. With some gymnastics in memory management, a 50Hz timer is available, allowing me to count the ticks for the 10Hz timer expected by a full featured #Zmachine
Now that it's properly tested and running, you can download the latest addition to the #Vezza family from gitlab.com/sijnstra1/vezza and if you are curious about the NewBrain you can get the emulator and other info from newbrainemu.eu/new/

I've attached screenshots of the Bomber game in action, as well as the #Infocom classic A Mind Forever Voyaging.

Grundy NewBrain emulator playing the Infocom classic A Mind Forever Voyaging.Grundy NewBrain emulator playing bomber real time interactive z-machine game.
Shawn Sijnstrasijnstra@hachyderm.io
2025-05-31

While porting #Vezza for another #z80 platform (the Grundy #NewBrain), I noticed that there was an issue with the timer routine for the #MSX version. It turns out that the code was in there for the MSX version was using the MSX clock, however, it was not calculating the time properly, The MSX has a fine-grained timer which allows me to measure the time to the nearest 0.1 second as required for the #Zmachine standard. This makes the MSX version one of the few that I have written which supports the full fine-grained time requirement.

While for normal text adventures, this timer resolution might not make much difference, some of the fun post-#Infocom games, this distinction is used. One of the games that I've tested which works properly now is the `bomber.z5`, a real time game where you need to drop bombs from the plane to create a flat landing for your plane. Check the screenshot below for the action! Download the latest from sijnstra.itch.io/vezza
#retrogaming #retrocomputing

Screenshot of MSXBlue running the real time z-machine game bomber.z5 on Vezza.
Shawn Sijnstrasijnstra@hachyderm.io
2025-05-04

Back to fun platforms to port my #Vezza #Infocom #Zmachine interpreter - this time it's the Enterprise 128. A 4MHz #z80 machine from the mid 80s, it has a great emulator, and a bespoke DOS known as IS-DOS, with a lot of compatibility with both CP/M 2.2 and #MSXDOS. While it needed quite some tweaking, a lot of the heavy lifting was done with my original #MSX version before it was optimised. As I understand, the #Enterprise128 didn't have a great library of games for it, so hoping this helps! Get it while it's hot at gitlab.com/sijnstra1/vezza Screenshots are the IS-DOS 1.0 version running Border Zone, and the IS-DOS 1.1a version running Beyond #Zork.

Shawn Sijnstrasijnstra@hachyderm.io
2025-04-28

Another wet weekend, another #Vezza release! I was asked to adapt my #Infocom interpreter to another platform - this time the #SinclarQL. An interesting request as it uses a #Motorola 68008 CPU, however, it does have the ability to emulate a #z80 on #CP/M. I was given some pointers on which versions worked to some extent, along with some documentation. Fast forward a few days and I had adapted one of the VT52 versions crossed with other features, and now #Sinclair QL users can enjoy in CP/M mode their #Inform #ZMachine adventures. Yes, there's a native terp as well, however, this was only a few days worth of massaging to get it to work on the SUCCESS CP/M Emulator - the proof is in the screen shots. You can download the executable here gitlab.com/sijnstra1/vezza/ #retrocomputing #retrogaming

Screenshot of Stefan Vogt's Ghosts of Blackwood Manor running on the Sinclair QL emulator under SUCCESS CP/M 2.2 emulator.Screenshot 2 further in the game
Shawn Sijnstrasijnstra@hachyderm.io
2025-02-11

After much testing and code comparison, the new Feb 2025 Release of #Vezza - my #z80 high speed #zmachine is ready! Took way longer than expected to synchronize across all of the code bases, particularly making sure that all optimizations made it across all platforms - TRS-80 model 1, TRS-80 model 3, TRS-80 model 4, the CP/M versions (~18 platforms), the embedded versions (Spectrum tape, TEC-1G), and slowly pushing into the Agon Light version (which has even more updates still in progress). Lots of individual tweaks, and some major rethinks and rewrites have come together to accelerate game play.

The hardest part of rewriting in this update involved rewriting the dictionary search code. I ended up going back to the original jzip interpreter, written in C for Unix waaay back when. Jzip provided much of the logic that went into ZXZVM, which provided the base for #M4ZVM #M3ZVM and #Vezza. Going back to Jzip made sense as Jzip has an even longer history; and is highly tested and stable and still maintained. This research gave me the confidence that the streamlining and changes I was making to such a fundamental part of the game would work, making all inputted dictionary searching more efficient.

To work around how CP/M stores executable files I spent a lot of time re-organising the memory map to make the executable smaller. This involved rearranging where the initialization code was stored inside the increasingly complex layout. Support across multiple versions means I needed to break up variable sized code and strings to sit inside variable sized gaps, while still compiling all the CP/M versions from the same interconnected set of source files. It needed quite a few manual checks to ensure that it all worked.

What this all means is that your favourite #infocom #punyinform and other text adventures will all play on your favourite z80 #retrocomputing platforms even faster than before!

More details in the devlog and downloads can be found at:
#TRS80 versions sijnstra.itch.io/m4zvm
#CPM #CPM80 versions sijnstra.itch.io/vezza

Screenshot of Stefan Vogt's Ghosts of Blackwood Manor, played using Vezza on an Amstrad CPC
Shawn Sijnstrasijnstra@hachyderm.io
2025-02-01

For all of you #TEC1G adventure game players looking for something bigger, better and more... historical, I've beefed up my #vezza #infocom interpreter to use the extra 16K available in EXPAND, which sits behind the other 16K from 0x8000-0xBFFF. This means that one of the smallest #z-machine ports of Scott Adams 1978 classic game #Adventureland is now playable on a TEC-1G (with keyboard and GLCD). With the extra RAM being used, it makes the loading a little more involved as it needs to be loaded in two parts, switching the EXPAND ram in to load part 2, then back to loading the main game before you can play. Download the components here, along with more description and detailed instructions: gitlab.com/sijnstra1/e-vezza/-

Screenshot of Adventureland on TEC-1G
Shawn Sijnstrasijnstra@hachyderm.io
2024-12-27

Now that it's had a little testing other than me (Thanks Brian Chiha!) I'm making my #vezza for the #TEC-1G more readily available, similar to my #zxspectrum .tap files. #zmachine text adventures for all #z80 machines! I've put up 3 sample builds to download and run at .hex files to load straight into the #TEC. Full keyboard and GLCD are required, and I'll be looking to add more features to maximise use of the platform. You can download the .hex files here gitlab.com/sijnstra1/e-vezza/-

Shawn Sijnstrasijnstra@hachyderm.io
2024-12-26

In between things I've been able to smash out a bit more code for the #TEC-1G version of my #infocom #z-machine interpreter #Vezza. Not perfect yet, but the text adventure game status line is starting to take shape... A couple of design decisions to be made on tracking score/moves, and then to expand the memory footprint out a bit to use the alternate ram with the extra 16k. Screenshots are of "Miniventure #2 by Dave Bernazzani" playing on Vezza.

Full TEC-1G with qwerty keyboard and GLCD, showing Vezza running the text adventure Catseye by Dave Bernazzani.Close up of the screen using Vezza to play Catseye by Dave Bernazzani.
Shawn Sijnstrasijnstra@hachyderm.io
2024-12-24

I've been chipping away at my #Infocom #zmachine interpreter for the past 12 months, trying to squeeze more performance out of it. I did make it smaller and mostly faster until one game turned out slower, so I kept it on the backburner until I found a way to fix the worst case. Next trick was rewriting the dictionary search much harder to thoroughly test) and finally correcting a long standing cosmetic bug (see before and after images). Update release for #Vezza and #M4ZVM will be early 2025.

Screen preview of text adventure with unexpected gaps in rows.Screenshot of improved text adventure rendering with unexpected gaps in text no longer present, giving 2 additional text lines in this case.
2024-03-24

@sijnstra thank you for creating and maintaining #vezza. I use it to play games on my #rc2014 and love it. An #AgonLight version would be cool!

Shawn Sijnstrasijnstra@hachyderm.io
2024-03-24

The next stage of developing my #Infocom #text-adventure player #Vezza, I'm making it Agon VDP native to take advantage of the new features in the #Console8 VDP development line. Still a work in progress, but the vast majority seems good to go. Why do it? I wanted to play Beyond Zork on the #AgonLight using the extra font features. This means instead of text drawing of maps, you get something a little more graphical. Also, status bars are now drawn for more visual impact. #retrocomputing

Shawn Sijnstrasijnstra@hachyderm.io
2024-01-07

I've released a new version of my #infocom #z-machine #textadventure interpreter #Vezza for #CP/M and #M4ZVM for the #trs80 Model 1/3/4. There's some speed improvements, along with a reduced footprint (smaller file, more space for cache), and a bugfix for a rare edge case in error handling discovered through the release of Ghosts by @8bitgames
Disk images at sijnstra.itch.io/m4zvm and sijnstra.itch.io/vezza (with links to more platforms etc) #retrocomputing #cpc #msx #kaypro #osborne

Shawn Sijnstrasijnstra@hachyderm.io
2023-10-07

The work polishing #Vezza, my #infocom #Z-machine interpreter continues - this time it's the #Amstrad #CPC and #PCW that is getting some attention. I've been able to combine the two versions into a single binary, added support for accented characters, and made the image bootable on CPC - downloadable as an easy to use sample image at sijnstra.itch.io/vezza
#retrocomputing #retrogaming #textadventure #interactivefiction

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst