Linux?

DavidRevelle
18 Dec 2007, 16:31
While I have access to both a Linux and a Windows computer, I was wondering if anything's been planned for a Linux-compatible version of Quest and QDK.

Elexxorine
18 Dec 2007, 16:40
Some-one was making that. I think it was called Geas.

DavidRevelle
18 Dec 2007, 17:55
Thanks, I'll look it up.

phyriall
18 Dec 2007, 20:41
How about for the Mac? :mrgreen:

paul_one
18 Dec 2007, 23:53
I keep wanting to make a cross-platform ASL-player... But I never get round to it.

You can run Quest using wine though, and I thought wine was available for the mac.

Freak
19 Dec 2007, 03:38
Geas is runner only, and it hasn't been updated for the newest version of ASL. There was a Mac version by David Jones.

http://ifarchive.plover.net/indexes/if- ... quest.html

I'm not planning on resuming it; while I was analyzing it, I kept discovering problems with Quest and realized it was futile.

Elexxorine
19 Dec 2007, 09:10
Tron, do it! Do it! Do it! Do it! Do it! Do it! Do it! Do it! Do it! Do it! Do it! Do it! Do it! Do it! Do it! Do it! Do it! Seriously do it! Maybe we can do neat things with the GUI. I'm trying to move from xp to linux but so far duel booting isn'tworking out so great... How does 5 different versions of different linuxes not working all in wonderfully different ways...

Freak
19 Dec 2007, 14:15
Tron, why just an ASL runner? It's not like CAS is that different a format; I reverse-engineered it ages ago. (See uncas.pl in the same location as Geas.)

(Actually, if CAS were a good compiled format, it would be better to write a CAS interpreter and an ASL to CAS compiler.)

paul_one
19 Dec 2007, 17:57
I just didn't want to go and try to get my head around CAS so much - isn't it also something like a ZIP file?
Where pictures are effectively 'packed-in' ?

I'd probably port your perl script straight to C++ and then load it through the ASL part (as I suspect Quest does it that way too).

My problem comes in when I hate the old pre-ASL 290 way of doing things (private sub's, weird IF statements, etc) and CAS uses that style (at least I thought it did :S).
So mine would be only after ASL300, and wouldn't totally function in the same way (as I remember some weeeeeeird bugs occuring!!

At the moment I'd doing some SDL stuff, and some of it is quite interesting.. Perhaps it'll be easier to produce a GUI.
I've also been tinkering in FLTK and fluid (erm, sort of like a VB-front end maker for C++) but initially my ASL-player would be text-only (console-based).

*shrugs* if I get bored over xmas I'll start coding one up..

Freak
19 Dec 2007, 19:44
Feel free to look at Geas; there's already a C++ port of uncas.pl in readfile.cc (though you'll need to update the compilation_tokens array).

I do remember one big pitfall I ran into; Quest maintains two different data structures for internal game state, one that it reads when playing the game and one for saving (QSG). You'll want to use a std::map or hashtable based structure instead of what I use in geas-state.hh.

Freak
19 Dec 2007, 19:49
And Quest definitely loads CAS files by decompiling them to ASL first. (I've written carefully contrived CAS files that wouldn't be generated by the compiler but decompile to something sensible; Quest runner reads them fine.)

Well, not quite; the compiler has a few preprocessing steps (removing comments, deinlining functions, converting comparisons) that will already be done on CAS files that need to be done for ASL files.