ViNCe
=====

This is a reasonably straightforward port of the VNC client.

It supports all the usual encodings plus 'tight'. At the moment,
it only works with 8 and 16 bits pixeldepth on the server side and
the client side is always 16bpp.


License
-------
This program is released under the GPL version 2.


Starting the program
--------------------
Use either
         *vnc [switches] ipaddress
or
         *vnc -config <configuration file>

Use of the commandline switches is not recommended - use a
configuration file instead!!

switches:
     -display <N>              set the VNC display no. (usually N=1)
     -config <filename>        set name of configuration file
     -password <password>      set the password to use
     -8bpp                     use 8bpp RGB332 on the server
     -dither8                  request that the server sends
                               raw data as 8bpp dither (only
                               useful if you're not using '-8bpp')
     -tight                    request that the server uses
                               tight encoding (if supported)
     -save                     when quitting, save the screen as
                               a sprite in <ViNCe$Dir>.screendump
     -checkclientbitmap        (see below)
     -cursor                   request that the server doesn't
                               display a cursor, but just sends
                               movement info
     -debug                    write debug info to stderr
     -full <colour>            enter in fullscreen mode, using the
                               specified colour for border colour
     -guess                    attempt to guess the display number
     -bottom                   open the window at the bottom
     -top                      open the window on top
     -noborder                 no borders/scrollbars on the window
                               (good idea with -full)
     -ontop                    keep the window on top of the
                               windowstack (good idea with -full)
     -anti                     antitwitter the screen (when using
                               NCs on a TV)
     -scale <scaling>          scale the bitmap, 25 <= scaling <= 200
     -closewindow <action>     what to do when the window is being
                               closed (0->quit, 1->iconbar)
     -fastcopy                 use Wimp_BlockCopy for some updates
                               (active only if scale=100 and the
                               window is fully visible and toggled
                               to full size) - highly recommended
                               for users of the Viewfinder card
     -altsendsmeta             when pressing the Alt key, Meta is
                               sent to the server, not Alt

Refer to the sample configuration file for information about the
format of this.


Tech stuff
----------
The client supports two experimental encodings:

     'CheckClientBitmap'   which is supposed to tell the server
                           to maintain a copy of the clientside
                           bitmap/screen and compare with that
                           before sending any rectangles; this is
                           actually a patch against a bug in
                           Mozilla or Gecko, but it is also very
                           useful when running any other browser
                           over VNC as it often reduces the no. of
                           pixels sent by animated GIFs.
     'HextileDither8'      is a special version of the hextile
                           encoding; if hextile fails to compress
                           a rectangle, the rectangle is normally
                           sent as raw, using whatever number of
                           bits per pixels used by the client;
                           however, this encoding is meant to
                           dither the rectangle to 8bpp (RGB332)
                           before sending the raw rectangle, thus
                           reducing the size of the raw rectangle.
                           this means that the display is
                           almost-16bpp quality, but at a bandwidth
                           closer to 8bpp.


The program can operate in a fullscreen mode. This is for use on
NCs etc.

hextile8.c contains a description of an alternative hextile-like
encoding which will reduce the size of hextile coded data with
typically 20% (depending on the type of data), by not storing
the subrectangle sizes for 1x1, 1x2 and 2x1 subrectangles. Once
X-Windows starts using anti-aliasing for text, this is likely to
be even more efficient.


Requirements
------------
RISC OS 3.5+

If you want to be able to send Ctrl-^ characters, you need Cerilica's
DeepKeys module. Otherwise, Ctrl-^ will be seen as the Home key. This
module is now distributed with ViNCe, but you first need to install it
by copying !ViNCe.DeepKeys.!!DeepKeys to <Boot$ToBeLoaded>.!!DeepKeys
and reboot if it has not already been installed. You can double-click
on the Obey file !ViNCe.DeepKeys.InstDeepK to copy the module.


Credits
-------
2M Electronics (www.2m.dk) sponsored the port.
Thanks to Gil Wozniak for the sprite.
DeepKeys  Cerilica Ltd 2000  Contact: <simon@cerilica.com>

The port was written by

  Henrik Bjerregaard Pedersen <henrik@login.dknet.dk>

It is now maintained under the name !ViNCe by

  Vincent Lefvre <vincent@vinc17.org>

You can get the latest version on

  http://www.vinc17.org/acorn/riscpc_eng.html
