How to solve compatibility problems with GnomeKiSS
by Nick Lamb, last major changes 16 January 2002

1. The problem

Many artists can't or won't test their dolls with any viewer except the
one they used to create the doll, or their personal favourite. This
causes problems wherever the various KiSS viewers vary in their behaviour.

This problem is exaggerated by the fact that a number of popular viewers
are currently unmaintained. Because problems in unmaintained viewers
aren't fixed over time the user community learns to work around them or
even accept them as "features". At the time of writing:

* I am not aware of any ongoing work to improve KiSS viewers on classic
MacOS, although there is a reward (see The Big KiSS Page) for programmers
willing to implement a modern FKiSS 3.0 capable viewer for MacOS.

* The venerable WKiSS 0.68 for Windows has not seen any further updates
in several years and can be considered abandoned.

* Chad Randall's Amiga Viewer PlayFKiSS 2.06 is no longer maintained
since 1996. I understand that there was (is?) an update from a third
party with some more modern features.

* Chad's more recent Windows PlayFKiSS viewer stopped development while
still described as BETA in 1998. The last versions are 0.84 and 0.83b

* Chad's new PlayFKiSS 2.0 (also for Windows) hasn't seen any releases
since May 2000, and is still alpha quality although Chad is apparently
still working on it.

2. The solutions

The best long term solution to these problems is the availability of
viewers for all popular platforms which implement all KiSS features
"correctly" according to our best understanding. Together with work
to clearly define the hazy bits of existing specifications this would
make dolls behave similarly for users on every platform.

In the short term though GnomeKiSS can help its users to enjoy more
dolls by being compatible with popular viewers, in particular PlayFKiSS
so that the large library of dolls created on PFK work as expected. In
some cases this can easily be done within the specifications, but often
it means sacrificing correctness.

Obviously it cannot be right to make such a decision on behalf of the
users, so these changes in behaviour are where appropriate options in
the "Features" section of the preferences dialog in GnomeKiSS. The
defaults have been chosen to conform closely to existing documentation.

3. "Features"

3.1. Use PFK default palette (default OFF)

This mimics the PlayFKiSS behaviour of filling "unused" palette entries
from a pre-determined palette during loading. Dolls with no palette
or incomplete palette data sometimes look better with this option.

3.2 Case insensitive FKiSS parser (default OFF)

This squashes all FKiSS commands to lowercase so that otherwise invalid
commands become valid as they are in PlayFKiSS and KiSSLD.

3.3 Ignore lone colon (default OFF)

When parsing cell lines from a CNF file this changes the behaviour when
the cell includes a ":" marker to indicate which sets it is visible in,
but does not list any sets.

3.4 No {catch,drop} triggered if object is fixed (default OFF)

The events catch() and drop() will not be triggered on an object or its
cells if the object is fixed and this preference is set.

3.5 Slow down factor (default 1 == No slow down)

This slows timers and therefore makes the doll seem to be in "slow motion"
which is useful for debugging some problems, and makes the perceived
behaviour more similar to some other viewers (for small factors).

3.6 Minimum timer interval (default 1ms)

This changes the effective behaviour of timers to make them less fine
grained. You can approximate the behaviour of PlayFKiSS by setting
this to 10ms and adjust it for other viewers appropriately.

