Multi- interpreters. Spatterlight, Gargoyle, Fabularium, Parchment, Lectrote, ScummVM etc.: Portable "terps" and preservation of too many IF interpreters

I don’t think you’ve articulated clearly enough what the problem is that would help be solved by a meeting of such people.

Sorry, but I don’t know what you’re trying to say here. Many terps are already written in C++, as are many Glk libraries. But, as usual, the C ABI is used because it’s the one truly portable ABI we have. Which is how I could also write a Glk implementation in Rust. Adding C++ into it would do nothing towards helping integrate an interpreter, and would probably make it much harder.

3 Likes

This won’t happen with Gargoyle as I distribute it: there’s already enough work getting Linux, Windows, & Mac versions built. It’d be a tremendous amount of work trying to get a cross-platform RetroArch-like system, especially when there are going to be a lot fewer interpreters for IF than there are emulators for old gaming systems, making it less useful to be modular.

That being said, if somebody wanted to do it, Gargoyle’s already modular in the sense that interpreters are just individual programs, so not much would need to be done to the Gargoyle side (and I’d happily integrate changes to improve things for anybody working on this, so long as it’s not detrimental to the “normal” approach). You’d “just” need to build a system that installs and manages interpreters.

This part is already supported. The Gargoyle config file allows specific configuration on a per-filetype basis:

[ *.z[1-8] *.zlb *.zblorb ]
theme Blue

[ *.ulx *.gblorb ]
theme Pencil

It’s based on filenames, which isn’t bulletproof, and I have vague plans to also allow selecting on interpreter type (especially useful for *.blorb files), but at least this should get you 95% of the way there.

1 Like

If they want retro-inspired platform, there’s Spectrum Next and Commander X16. Of course, there’s also Adventuron.

PunyBuild is doing an admirable job bringing new, modern IF to old hardwares via PunyInform.

I’m going to do individual replies. Sorry, but I combining them is cumbersome to me.

Excuse me, I’m going to do the easier ones to reply first. I’ll research more for the rest I’m still learning this world!

I forgot to say Adventuron seems nice. But it uses web technologies. Would it be difficult to port those games to native code or a reinterpreter in C/C++ and then even able to compile to WebAssembly?

Are there a portable PunyInform implementations? What about other efforts for different IF creation systems?

1 Like

Inform was originally developed in the 90s and was designed to run on an incredible array of systems that absolutely no one uses any more. If I remember right, you can build Inform on an Acorn Archimedes. I’m not sure how you get more portable than that.

I don’t think any modern compilers are designed to run on the Acorn Archimedes, though. There’s just no demand for it.

It’s important to remember that practically everyone involved in these projects is doing it for fun. If you want them to change the direction of their projects, you’ll probably have to offer some incentive to, either monetary or otherwise.

3 Likes

Thanks for the tip ! found these Machines’s sites, downloaded ecumenically (EU people will understand the meaning of “ecumenically”…) both machines’s documentation and OS/firmware sources, will be a nice reading…

Best regards from Italy,
dott. Piergiorgio.

1 Like

PunyInform is a library for use with the Inform 6 compiler, so it’s as portable as Inform 6 is. Inform 6 is written in C, and can be compiled by any of clang, gcc, or tcc (and doubtless others) so it could be built for any architecture any of those C compilers can target.

So the question becomes with how little RAM is it feasible to compile a game in Inform 6 (which, of course, varies with the size of game involved). You might well be able to do z3, maybe even z5, with as little as 1M.

Anyone who was there have any recollection?

[ edited to add: ]

Looks like someone had been building Inform 6 for the Amiga, and my guess is they’d mention if it required the 8M external cartridge, so it sounds like someone was using it with no more than 512K.

Inform 6 was changed recently to use dynamic memory, so that all the various size settings could be removed. While it’s still quite portable code, very restricted platforms may have some issues. But I think it also depends on what you’re compiling. If you’re compiling something small the compiler might need much less memory itself.

The original question was about portable interpreters, rather than portable compilers, I believe.

I had thought the scope crept.

I am still waiting for some hero who bugfixes Fabularium.

3 Likes