Windows ZVM/Lectrote

i’m using dialog with the 1a/01-dev compiler. z-files are now crashing windows (windows 11) lectrote (and i can’t get parchment to work either). when using lectrote on mac or gargoyle/frotz on windows everything works fine.

has there been a change recently to ZVM?

and, i apologize, my ability to test this is limited since i have limited access to windows

Hmm, that’s not good. I also don’t have Windows for testing.

Does anyone here use Lectrote on Windows who could try running some files and report the error messages?

I could, yeah.

the error is RangeError: offset is outside the bounds of the dataView.

this is the same error that was happening a few months ago (i haven’t had a chance yet to go back and find the thread), although at THAT time it was happening with lectrote on macos as well and the problem, i hazily recall, was a bug in ZVM that was responding inappropriately to something the dialog compiler was doing?

Yeah, older versions of ZVM require the Unicode translation table to be placed in RAM, and Dialog was putting it in ROM. The released 1a/01 should always put it in RAM, though—make sure you have the most recent compiler?

i’m using 1a/01

I use Windows 11 and Lectrote and could look at something

Here’s Cloak of Darkness compiled with the most cutting-edge compiler. Let me know if this shows the problem?

cloak.zblorb (92.6 KB)

And here’s another of our test cases, which just prints a bunch of Unicode characters. If the problem is with the Unicode translation table, this one should crash, but the previous one shouldn’t.

libclosures.z5 (77.8 KB)

Both of those run fine for me on the current Lectrote release: 1.5.6 from October…

1 Like

the most current compiler on the dialog-if community-maintained fork seems to still be 1a/01. am i missing something? i’m not great with git.

That’s the most recent stable release, but the main branch is currently on 1b/01-dev. I don’t think anything between 1a/01 and 1b/01-dev should affect this, but without having a Windows machine to test it myself, I’m somewhat shooting in the dark.

So if it works on 1b/01-dev but not 1a/01, then one of the changes in between (hopefully!) must be the culprit.

actually i realized from the josh grams post above that i wasn’t running the most current windows version of lectrote. i updated to 1.5.6 and problem solved.

so this one appears to be operator error on my part.

Even so, the bug report is much appreciated! Not all players will have the latest interpreter version, so I want the compiler to be as accommodating as possible.

I believe the only big change in the latest ZVM was the Unicode translation table bug, so I’m going to make sure Dialog’s behavior hasn’t regressed there. If it has, I’ll make sure that gets fixed for 1b/01.

1 Like

For comparison, here are the same test files compiled with 1a/01:

cloak.zblorb (92.6 KB)

libclosures.z5 (77.8 KB)

If anyone with an older version of Lectrote on Windows can test these as well, it would be much appreciated! Looking at the source, this build should be putting the Unicode translation table in RAM, but “should” isn’t always “is”.

How far do you want to go back? I opened these with Lectrote 1.4.4 (September 2023) and they seem ok. Does the crash occur immediately after opening the file?

It should occur immediately, yeah. And I believe the bug was fixed in mid-2025, so if it works in the 2023 build, it should work in everything else.

Thanks for testing it!

1 Like