Unmapped regions in the interpreter world?

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

Looks like @lft has been meaning to do that, although it’s been a few years since he mentioned it:

You will find the PunyInform Discord server linked from the PunyInform homepage.

3 Likes

Yes, the runner contains a significant chunk of the logic. .taf game files contain high-level instructions to be acted upon by a fairly complex engine (the runner). In a sense, you could say they are conceptually closer to Excel spreadsheet files with macros than the low-level byte code of other IF systems like Glulx.

Of course, as you say, none of that is .NET specific, but writing a new “runner” engine from scratch would still be a substantial endeavour because the system is pretty complex and also fairly under-documented. Just like LibreOffice is still prone to mangling the formatting of Word documents, I doubt that an ADRIFT5 reimplementation could ever achieve perfect compatibility.

3 Likes

Microsoft deliberately breaks compatibility in all sorts of shady ways. They’ve always done so throughout their history (long before LibreOffice).

1 Like

… and the internals of the ADRIFT 5 file format are entirely undocumented. (Except by way of the published, but itself undocumented, ADRIFT source code.) So I think the comparison holds.

2 Likes