Git and Windows Glk updates

Following Zarf pushing out the Glk 0.7.3 spec and Glulxe 0.4.7, there are related new versions of the following:

As Zarf released the Glk 0.7.4 spec a little while ago, there are related new versions of the following:

Zarf has made a new release of Glulxe 0.5.2 to fix an obscure problem with the acceleration function opcodes. There is now a corresponding new version of Git 1.3.3 available here:

At the same time, I’ve updated Windows Glk and the builds of Glulxe and Git that are based on it. The only major change is to finally make it easier to change the text and foreground colours. The options dialog now contains one control for each of the text, background and hyperlink colours, rather than requiring you to set colours for each style. These new builds are here:

A new release of the Glulx interpreter Git, version 1.3.4, is out. This doesn’t add any new features, but it does include some nifty performance improvements from Peter De Wachter, which speed it up by about 15%, according to my tests.

The source code and Windows binary is available here:

Wow, that’s cool! Just out of curiosity, how were those performance improvements achieved?
(Ah, just found the code on GitHub - faster binary search, or at least tailor-made for each architecture? or is it for different data structures?)


@mulehollandaise I don’t think the binary searches are used very often, so I’d guess the performance improvements come from joining the memory arrays together and adding the noreturn tag to the memory error functions.

The best explanations come from Peter - see his notes on each patch here:

Git 1.3.5 is now available. This is a small update that fixes a problem with the @streamnum opcode in an obscure case. The source code and Windows binary is available here:

At the same time, there are updates to Windows Glk and a new Windows build of Glulxe, as Zarf has released Glulxe 0.5.3. The source code and Windows binary is available here:

Hi David,

I’ve got some reports from players saying lates version of Windows Glulxe reports writing to ROM when playing old Superglus games. I’ve checked your Makefile and I see the proper option set so I don’t really know what’s happening, but something must be wrong.

Please if you have time to check, this game will fail as soon as you type any order (you’d have to press some keys to skip the presentation first). … lx/007.rar

I hope it can help.


Edit: I have tested and saw myself using the intrepreter located at this URL: … lulxe.html (the zip version, not the installer).

Thanks for this. I guess that Zarf’s changes to allow zero writes in Glulxe are perhaps not complete - I will investigate when I get the chance.

My changes were conservative, based on the one example I was given. I didn’t set the interpreter to allow all ROM writes.

Thanks. Players affected have located and old version and are using it, but it would be nice if future versions may allow playing that game.

Hmmm… the message shown is something like ‘write to read only address (0)’, so it’s the same address (bug coming from Glulxa assembler converting unknown labels to value 0 without any warning), but If I recall properly your changes were applied when some specific opcode was writing to ROM, not in any case, weren’t them? Maybe we’ve run into another opcode doing the same in this case.

I’ve raised an issue for Glulxe for this:, to which I’ve also added the simplest possible patch for it, that just adds the work-around to the @copy opcode.

I’ve also rebuilt Windows Glulxe with this patch:, which seems to fix the game you’ve linked to, at least as far as I have tested it, which is not very far. It would be helpful if you and your users could give this a try and see if there are any other Superglus games that still don’t work.

I’ve added that patch to the Glulxe source.

Just make sure that the TOLERATE_SUPERGLUS_BUG option doesn’t wind up turned on in the I7 IDE. Or I will start to whimper. :slight_smile:

Thanks to you both for the patch, I’ll let the players playing that game to report if any other issue arises, and come back to you in that case :slight_smile: