Quixe 2.1.1

I’ve posted release 2.1.1 on my web page (eblong.com/zarf/glulx/quixe/) and submitted to the archive.

The important change is that it’s quite a bit faster on modern browsers. Up to 65% faster! Or less. Depends on exactly which Javascript engine you’re using. See post: gameshelf.jmac.org/2015/05/javascript-wonkery/

The summary is “65% faster in Safari, 55% faster in Chrome, 10% faster in Firefox.” However, I should note that this brings all the browsers roughly to parity when it comes to executing Glulx code. That is, the improvement is small in Firefox because Firefox was already doing most of the optimizations that this update allows. Now the other browsers have caught up.

The output of Quixe is delightful.

By the way, I tested this briefly with the old Superglus game “pitufos.blb”. (juegosaccesibles.es/pitufos.zip) This is a game that runs into the “write to address 0” error in Glulxe. It seems to run okay in Quixe; Quixe does not validate memory writes in the same way.

(For Quixe I was less concerned about game validation and more concerned about speed. Glulxe has to be careful because in C, overwriting an array boundary could crash the interpreter or even permit malware. Javascript does not have that problem.)

That’s great news. If that game can run ok, most games can run ok.

“007 - Alto secreto”, if you want to try it, is another game that gave me all sorts of problems when I was testing it on iFrotz. It would keep crashing. Saved games didn’t work either.

This game should be having the non 4-byte vars problem too, I guess Quixe supports those 1 and 2 bytes wide vars.

Yes, it’s safer for javascript, although “Pitufos” is writing to ROM for sure :slight_smile:

I didn’t specifically add code to support them. It’s possible that the behavior comes out right by accident. In which case, lucky break. :slight_smile:

If I recall properly, 1-2 bytes wide var error showed up in Git inmediatly after starting the game, so I guess there was a function call affected pretty early in the main Superglus thread. If it didn’t fail a start, most probablt won’t fail later :slight_smile: