Unmapped regions in the interpreter world?

Simply making a Z-machine is of course a nice little project for dipping one’s toes into the world of terps, but what’s missing or wanted in the interpreter space?

I’ve found some requested features on here, like Z-machine interpreters with debug mode toggle, but maybe it’d be nice to make a list of requested stuff?

5 Likes
  1. An Android interpreter that is actively maintained.
  2. A Glulxe interpreter that makes it simple to run the profiler and show a flamegraph.
  3. Custom CSS in Glk (I’m already planning this, but it won’t be ready soon).
  4. Work out an algorithm for how to detect keyboard controlled menus and how to make them clickable (faking the appropriate keypresses).
7 Likes

Z5 interpreters for 8-bit machines where they don’t currently exist.
UNDO for machines that don’t currently have that.

1 Like

Is there a passable Adrift interpreter for Linux? I seem to recall doing a lot of booting to Windows.

2 Likes

concur and agree, adrift 'terps and compilers ought to be ported to Linux (last time I checked, still fails spectacularly under WINE…)

Best regards from Italy,
dott. Piergiorgio.

1 Like

Gargoyle/Lectrote for Adrift 3/4, Frankendrift for Adrift 5.

3 Likes

First time I hear about it, good to know that it’s there. :smiley:

2 Likes

Have you seen the interpreter pages of the IFWiki recently? They’re now much better for showing you up to date interpreters, either by format or by OS.

https://www.ifwiki.org/Linux_interpreters

2 Likes

frankendrift fails because asked for non-kosher DLL:

./FrankenDrift.Runner.Gtk ~/if/bin/comp/Ifcomp/Comp23/Games/Magor\ Investigates/MI_v.1.blorb 
You must install .NET to run this application.

App: /home/pigi/dload/tmp/FrankenDrift.Runner.Gtk
Architecture: x64
App host version: 6.0.14
.NET location: Not found

Learn about runtime installation:
https://aka.ms/dotnet/app-launch-failed

Download the .NET runtime:
https://aka.ms/dotnet-core-applaunch?missing_runtime=true&arch=x64&rid=debian.12-x64&apphost_version=6.0.14

my personal opinion remains that ADRIFT ought to be rewrote, both compiler and interpreter, in a non-m$hit.NET language, becoming truly OS.

Best regards from Italy,
dott. Piergiorgio.

A tool I really missed having while implementing my last project: something between Inform 7’s skein and regtest.py.

This tool would:

  • Allow you to play through a game as normal, while generating a nicely-formatted transcript file.
  • Allow replaying a transcript: extract all the commands from a specific transcript and execute them in order to get you back to the same place in the game.
  • Allow regenerating transcripts: given a new binary, replay each transcript, generating new transcript files in-place. The user can then use tools like diff to see what changed between two versions of the game.
  • Allow branching off of existing transcripts: replay a transcript, but then let the user keep playing from that point, and save the result as a new transcript that references the original one.

The hope is that this would allow you to build up a library of examples of play, created in a natural way (just by playing the game!) and making it cheap to notice regressions and other issues.

4 Likes

What 8-bit machines don’t have Z5 interpreters? Is there a list somewhere (IFWiki?)? Not sure how easy this would be to tackle, but I’m interested in 8-bit stuff and have programmed in assembly for several CPUs (8080, Z80, 6502, 6800, etc) so it could be interesting to look into it.

I seem to recall something about Adrift 5 being unsuited for Glk? Is there a specific reason it needs a .NET runtime like Frankendrift uses?

1 Like

My WIP is a multimedia TADS; it is still a ways from completion though. It can’t be played online, unless I tackle the TADS Web GUI which is almost like building two versions of the same project.

My dream would be to have my one final release, as it appears in QTADS - playable online on all platforms (Win,MACOS,Linux,Android,iPhone). Frankly, anything short of that is a headache I don’t need.

3 Likes

Sorry, I should have linked to the front page so you could see the extra requirements on Linux which are not present on Mac and Windows:

Windows, macOS

All dependencies are in the download.

Linux

You will need to install the .NET 6 Runtime from Microsoft.

(Versions prior to 0.3.0 use the .NET 5 runtime instead, and require the libgdiplus package for graphics.)

In the earlier versions Mac had similar problems so I am optimistic about future versions.

Adrift 5 is written in VB.net! Though with the new AOT compile mode a runtime won’t always be needed. When Frankendrift gets brought into Gargoyle it will probably be through the AOT mode and so not introduce a new runtime dependency.

2 Likes

Good question. It would take quite a bit of research to provide a good answer. There is a very active discussion of Z-code interpreters in the PunyInform Discord server. You’d be well advised to join that discussion.

1 Like

Ah, I see. So that means that TAF files also contain .NET-specific code, I take it? Otherwise I wouldn’t think that the fact that the runner itself is written in .NET would matter much in this regard. (As you can see I don’t know anything about Adrift!)

I gather that the runner contains some game logic, according to Pros and cons of ADRIFT 5 - #2 by ralphmerridew, although that doesn’t seem .NET-specific in itself.

1 Like

I don’t enter more into the details around .net until someone I contacted in PM at least acknowledge the rationale of my stance.

back to business… I think that, based on my trusted “scroll of style”, there’s lingering issues in handling styles, an important thing to me, because Italian isn’t exactly a verbal language: aside the proverbial Italian gesturing the posture, tone, even the pitch and speed of voice can convey different meaning, hard to convey in english:

hmmm… for a change, even this forum don’t have underscore, so let’s give this example "you have checked in the paper storage, right ?

this is the rendition of a rather rude means to suggest that one has forgotten to check in a specific place, “in the” being spoken more slowly, but the “right” in bold, render rude the phrase, remarking the oversight loudly; underscore here convey, well, a more discrete change of pitch whose points the oversight. (Italian text don’t abuse so heavily the styles; either the context (another important thing in Italian talking) or the description of the stance gives the subtle mean of the phrase, like this:
“s/he nudges, “you have checked in the paper storage, right ?”. his/her eyes briefly rolls towards the general direction of the storage.”

Best regards from Italy,
dott. Piergiorgio.

Thanks, I’ll try to find the PunyInform Discord server.

Of course, making an exhaustive list of what 8-bit systems don’t have a Z-machine is harder than the inverse… But it seems that ones running on 6502, Z80 and maybe 8080 (the latter two via CP/M) are well covered. Z-machines for various 8-bit platforms - #25 by 8bit_era

It would be fun to implement a Z-machine for 6800 (maybe via FLEX), but probably not very useful to the world at large.

1 Like

I’m mildly surprised nobody has ported the C64 ASM Dialog interpreter to another platform yet. (Or have I missed it?)

2 Likes

A glk’fied aastory interpreter for Gargoyle would be nice.

2 Likes