[ANNOUNCE] Filfre -- Windows Z-Machine Interpreter

G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Hello...

A few years ago, I had the crazy idea of writing my own Z-Machine
interpreter from scratch. Partly I was motivated by the desire to hone
my atrophying programming chops, partly because I had some ideas for new
features I wanted to try out, and partly (SIGH) because it seemed like a
fun thing to do at the time.

Well, after several concentrated bursts of activity punctuated by some
much longer lulls, I have something that I think might be of interest to
the wider community. And so, I present Filfre, also known as Yet
Another Windows Z-Machine Interpreter. This one does has some neat
features that I think are sort of cool, however. Whether these
particular fireworks are gratuitous, I will leave to you to decide for
yourself.

First of all, Filfre integrates its scrollback buffer with the main
screen. Cutting and pasting, text finds, etc., can all be done from the
main game screen with no need to go to a separate scrollback screen. I
find this incredibly convenient. Your mileage may of course vary.

I've also added some features that I hope might benefit those who are
not the best typists or (dare I hope) curious newbies to this whole text
game thing. Double clicking a word anywhere in the text will paste it
to the command line. The player can also choose to display menus of
command verbs and prepositions as well.

There is also an option to display the player's current inventory and
the object tree for the current room, all clickable as above. This is
slightly more problematic as it requres a bit of "meta-data" from
outside the story file. I have provided this information for many games
of the past already, along with instructions for creating it for
yourself if you are so disposed. Hopefully the help file will make this
clearer.

With these menus enabled, Filfre will work something like the old Legend
games. There has been occassional discussion here from players desiring
to see such a thing, so perhaps this will be at least a start in
answering those wishes.

For those who are not interested in that aspect, Filfre will hopefully
be a nice, functional interpreter with a nicely integrated scrollback.
(In case you haven't noticed, I REALLY dig this particular feature. I
have my own doubts about the usefulness of some of the rest of the stuff...)

Filfre has been pretty well tested, and I feel it is fairly polished and
complete at this point, although I do have some more cool ideas I might
like to try. Still, I have a feeling that some bugs might crop up in
wider use, so I am still calling it a .9 beta release. With that in
mind, bug reports are welcome and in fact abjectly pleaded for if you do
decide to try it out and run into any.

I'm afraid the source is much less polished. It is almost completely
uncommented and thoroughly disorganized, but I am making it available in
a separate zip both in case someone can make use of it and in case
anyone wishes to audit the code before running it on their machine.
I'll try to clean it up soon... really I will.

Please note that the source is dependent on Borland's VCL libraries.
This is not a concern for running the interpreter, as no additional
libraries or DLLs are required, but you will need one of Borland's
development environments to compile it. This will also probably make
porting to other platforms something of a dead issue. Sorry about
that... if I started this project today I would probably take a
different route, but that's hindsight for you, isn't it?

In other possibly gloomy news, Filfre fully supports Z-Machine versions
3, 4, 5, and 8, but does not (and probably will not ever) support
version 6. Its screen model just wasn't compatible with my display
methodology, and at the end of the day I decided that the 5 released
version 6 games just weren't worth the trouble when there are other
interpreters that play them perfectly well. I'm really sorry about
that, but I hope you can understand.

As of right now, filfre is sitting in the incoming directory of the IF
Archive, but I assume it will shortly be available in unprocessed:
ftp://ifarchive.org/if-archive/unprocessed/filfre.zip.
Source will be at:
ftp://ifarchive.org/if-archive/unprocessed/filfre_src.zip.

Once the wise and benevolent maintainers decide on a permanent home for
it, I will update this thread with that info.

Whew! Thanks for reading, and I hope at least a few people find Filfre
to be of interest.

Thanks a million,
Jimmy
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Cool z-code 'terp. Several useful features (inventory and verb windows
work great), and, without changing display settings, a Z-code game look
like it was done in HTML TADS :)

Too bad it can't do graphics, though. But still, great work!
 

Tor

Distinguished
Nov 16, 2002
23
0
18,510
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

A few reflections.

It looks nice and polished. Good user-interface design. It feels a lot
more solid and professional than Windows Frotz. Good to see an actual
scroll bar. I'm reluctant to add one to Gargoyle because of the whole
Glk multiple windows thing.

Why are there no margins between the text and the window frame!?

Why can't I resize the window to a reasonable width?
I don't like long lines of text...

Resizing doesnt work when it's in MORE mode.

It flickers infernally when resizing, not that anybody would actually
care. The input line flickers when deleting text, and this I actually
do care about.

It does not handle latin-1 games. You are using the wrong encoding for
output (å becomes É, ä becomes › and ö becomes œ, among others).
The program beeps at me when I try to enter any non-ascii text.

Tor
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Tor wrote:
> A few reflections.
>
> It looks nice and polished. Good user-interface design. It feels a lot
> more solid and professional than Windows Frotz. Good to see an actual
> scroll bar. I'm reluctant to add one to Gargoyle because of the whole
> Glk multiple windows thing.

For the record - and sorry to hijack - but I would *kill* for some
Gargoyle scrollback action.
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Now I know how Dorothy felt, when told that she could've clicked her
heels the whole time. Thanks.
 

Tor

Distinguished
Nov 16, 2002
23
0
18,510
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

No problem. :)

Anyway, it seems to have confused a number of people so I added a (very
primitive) scroll bar to the latest release. Toggle it in the window
system menu, or by editing the config file.

http://ghostscript.com/~tor/software/gargoyle/

Sorry for continuing to hijack this thread...
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Jimmy Maher wrote:
> ....and Filfre has now found its permanent home on the archive.
>
> http://www.ifarchive.org/if-archive/infocom/interpreters/filfre/filfre.zip
> http://www.ifarchive.org/if-archive/infocom/interpreters/filfre/filfre_src.zip

Nice job! It looks like Filfre's going to be supplanting Frotz on my
machine, at least for now. I just ran it through shrapnel (the most
complex application of the z-machine I've encountered so far) and had
no problems.

Thoughts:

- the verbs and objects window is a useful tool, but could make things
too easy. I'll probably only use them if I get truly stuck in a game,
or if I'm running through a game again after completing it to look for
interesting things I've missed.
- the inventory window is just plain useful. Kudos.
- integrating scrollback into the main window, and clicking on words
to copy-paste them into the command line, are features that Frotz has
been crying out for for ages.

Nice job!
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Ah, actually stumbled across some bugs now...

Some .z5 files which Frotz runs fine won't work in Filfre. Such as
zork 1, 2 and 3...

Filfre doesn't seem to have support for .blorb files.

So not quite ready to give up Frotz for Filfre yet...
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

This thread has got me thinking: there's lots of game reviews out
there, but I've really not seen many interpreter reviews. Anyone know
where I can find such things?
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Arthur Boff wrote:
> Ah, actually stumbled across some bugs now...
>
> Some .z5 files which Frotz runs fine won't work in Filfre. Such as zork
> 1, 2 and 3...

I assume these are the Solid Gold Zorks. I'll take a look...

> Filfre doesn't seem to have support for .blorb files.

> So not quite ready to give up Frotz for Filfre yet...

Ah, jilted at the very altar I was! :) Thanks for trying Filfre out
and offering feedback anyway. Perhaps the next version will make the
grade...

Jimmy
 

Tor

Distinguished
Nov 16, 2002
23
0
18,510
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Jimmy Maher wrote:
> Tor wrote:
> > Why can't I resize the window to a reasonable width?
> > I don't like long lines of text...
> >
>
> I currently require that the window be at least 80 characters across in
> the current status line font. This is because some Infocom and early
> Inform games assume the user has an 80-column screen, and manipulate the
> display based on this. If you go with a smaller status line font, you
> will be able to size the window down more.

Ah, I guessed as much. There is, however, a quite elegant solution to
the problem. Tell the game that the window size is the real size (<
80) but save any output to the first line into a special buffer (of
size 80). Then reformat the text and remove spaces to fit the current
screen width if the amount of text printed overflows the real size.
Nitfol does this, and I snarfed the idea for my Glk port of Frotz.

Tor
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Tor wrote:

> A few reflections.
>
> It looks nice and polished. Good user-interface design. It feels a lot
> more solid and professional than Windows Frotz. Good to see an actual
> scroll bar. I'm reluctant to add one to Gargoyle because of the whole
> Glk multiple windows thing.
>
> Why are there no margins between the text and the window frame!?

....because I never thought about it. Shouldn't be a difficult feature
to add for the next version.

>
> Why can't I resize the window to a reasonable width?
> I don't like long lines of text...
>

I currently require that the window be at least 80 characters across in
the current status line font. This is because some Infocom and early
Inform games assume the user has an 80-column screen, and manipulate the
display based on this. If you go with a smaller status line font, you
will be able to size the window down more.

> Resizing doesnt work when it's in MORE mode.
>
> It flickers infernally when resizing, not that anybody would actually
> care. The input line flickers when deleting text, and this I actually
> do care about.
>
> It does not handle latin-1 games. You are using the wrong encoding for
> output (å becomes É, ä becomes › and ö becomes œ, among others).
> The program beeps at me when I try to enter any non-ascii text.

I've given no consideration (yet) to entering non-ascii text. On the
other hand, I thought I had unicode output worked out... but obviously
there are still some problems. Could you tell what game file you were
testing with?

> Tor
>

Thanks a million for your thoughts. I'll take them under advisement for
the next version.

Jimmy
 

Tor

Distinguished
Nov 16, 2002
23
0
18,510
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

find the thread "International character support under MacOS". there is
a discussion about broken latin-1 support for various interpreters and
has links to some swedish latin-1 games and test instructions.
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Jimmy Maher wrote:
> Ah, jilted at the very altar I was! :) Thanks for trying Filfre out
> and offering feedback anyway. Perhaps the next version will make the
> grade...

Oooh, another issue:

I've tried Bureaucracy with it, and the game seemed to run fine until
it got to the software licence application, at which point Filfre
crashes, complaining of a z-machine stack overflow.

Hope this helps...
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Jimmy Maher wrote:

> Hello...
>

[cut]

> Whew! Thanks for reading, and I hope at least a few people find Filfre
> to be of interest.

The program doesn't correctly visualize the accented letters (àèìòù...)
so it is not suitable for Italian games.
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

tomb wrote:

> The program doesn't correctly visualize the accented letters (àèìòù...)
> so it is not suitable for Italian games.
>

ohh, Tor has already informed you.
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction,rec.arts.int-fiction (More info?)

Arthur Boff wrote:
> Jimmy Maher wrote:
>
>> Ah, jilted at the very altar I was! :) Thanks for trying Filfre out
>> and offering feedback anyway. Perhaps the next version will make the
>> grade...
>
>
> Oooh, another issue:
>
> I've tried Bureaucracy with it, and the game seemed to run fine until it
> got to the software licence application, at which point Filfre crashes,
> complaining of a z-machine stack overflow.

Yes, it seems there's a problem with stack maanagement affecting some
version 3 and 4 games. I'm pretty sure I know what it's stemming from,
so it should be a quick fix. (Basically, I messed with something I
shouldn't have right before releasing Filfre.) Unfortunately, real life
if interfering a bit, but I should have an updated release within, oh,
about 24 to 36 hours from now.

> Hope this helps...

Thank you!

Jimmy
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction (More info?)

One more bug. Pause-for-more is a little flakey, it often scrolls much
too far, and not consistently. I first noticed this with I-0's lengthy
intro, so that should be a good test case. Incidently, HTML TADS Win
has a similar problem putting more pauses in the correct spots, so this
isn't a big problem, especially since you can just scroll back. (Hooray
for scrollbars! Someone needs to bring scrollbars to Glulx now...)

I've not encountered any of the other bugs people have reported in this
thread, but I haven't used Filfre much yet. However, none of them sound
like anything that's likely to affect me much. I think I can
tentatively say that you've replaced Frotz on my system.

--
Ryukage
 
G

Guest

Guest
Archived from groups: rec.games.int-fiction (More info?)

Damian Dollahite wrote:
> isn't a big problem, especially since you can just scroll back. (Hooray
> for scrollbars! Someone needs to bring scrollbars to Glulx now...)

This should be do-able in Windows Glk/Glulxe, I've just never had the time
to work on it. Patches welcome ...

David