Of Glimmr, Glulxe, & Quixe

Hi All - I recently cranked a quick game that needs graphic hyperlinks. I had used Glimmr in the past and went back that library knowing that I’d have to use an older version of Inform to make it work (6G60) in this case. I needed other extensions from the same era, so the game works fine in most interpreters, but not lectrote and not for the web under quixe. I’m sure the problem isn’t in either of the latter, but that there’s something non-compliant either in glimmr or in the libraries on which it is dependent. When trying to run the game in either lectrote or the web-based interpreter, the game dies with the message “glk_put_jstring: invalid stream”.

I’d love to be able to fix the underlying problem, even if if mean fiddling in the extensions, but this is a little above my paygrade. My preference would be to to use a modern version of inform because the core has improved so much over the last few years, but it seems like a lot of extensions have not kept up. For my short-sighted purposes, I’d certainly settle for just putting a finger in the dike and getting the game working under the older version of inform with the various modules on hand.

Anyhow, any suggestions or assistance would be appreciated.



p.s. Here are the included extensions: Include Basic Screen Effects by Emily Short, Glimmr Canvas-Based Drawing by Erik Temple, Glimmr Graphic Hyperlinks, Glimmr Bitmap Font and Glulx Input Loops. In turn, these modules rely on Flexible Windows, Fixed Point Maths, and Glimmr Drawing Commands.

Is “Basic Hyperlinks” still viable if I’m just wanting the player to be able to click a link in the interpreter and hit a webpage?

Unless I’m misunderstanding your question, Basic Hyperlinks is designed for links within the game: you click the text that says “north” and it turns into the command >GO NORTH. Glulx doesn’t have a built-in mechanism for hyperlinks leading to web pages, though it wouldn’t be too difficult to implement (just add a new glk call).

Quixe has an interpreter-level option to detect URL-like strings (“http://…”) in the output and display them as external hyperlinks. You can turn this option on in the play.html file.

That sounds to me like a variation on this bug: http://inform7.com/mantis/view.php?id=1511. The basic problem is that if there’s an attempt to write output when there’s no valid stream (usually because no windows have opened) that’s invalid - some interpreters keep going, and some die with an error.

Finding these problems is a real pain. It’s often the case that there’s some code in an extension trying to write out an error message, but because there’s no window we don’t get to know what the actual error is. I’ve found the only practical way can be to debug an interpreter to see what the game was trying to write out to understand what went wrong. If you post a Blorb file somewhere it might be possible to figure something out.

Thanks for the info about Basic Hyperlinks (which I understand now are not weblinks)…this saved me probably a good hour of confusion in the near future!