Provided by: freesci_0.3.4c-5ubuntu1_i386 bug

NAME

       freesci - free interpreter for SCI bytecode

DESCRIPTION

       FreeSCI  is  a  portable  interpreter  for SCI games, such as the Space
       Quest series (starting with SQ3) or Leisure Suit Larry (2 and sequels);
       see below for a complete listing.

       freesci  is  the  main  executable  which  loads,  links  and  runs SCI
       bytecode.

SYNOPSIS

       freesci [options] [game [savegame]]

OPTIONS

       game   An identifier describing the  game  to  start.  This  identifier
              (GAME_ID)  must  be  declared  in  the  configuration  file.  If
              omitted, the interpreter will attempt  to  read  resource  files
              from  the  current working directory (or the directory specified
              by the --gamedir option).

       savegame
              If this option is specified after the game name, the interpreter
              will  attempt  to  quickload  the savegame with the specified ID
              (see the --list-savegames option). This is technically different
              from  restoring  a savegame from within the game (as it does not
              re-start the game script state afterwards), but it  should  work
              just as well.

       --version, -v
              Display  version  number  and exit.  Also the supported graphics
              drivers, sound servers, midi and midiout drivers are reported.

       --help, -h
              Display a short help text and exit.

       --run, -r
              Do not start the debugger;  only  run  the  game.  This  is  the
              default action.

       --debug, -D
              Start up in debug mode.

       --list-savegames, -l
              This  option  instructs the interpreter not to run the game, but
              rather to list all savegames  stored  for  it,  including  their
              in-game  descriptions  where  available.   This  is  relevant to
              figure out savegame names for  quickloads.   The  usual  in-game
              savegames are labelled “save_0” through “save_j”.

       --gamedir dir, -ddir
              With  this  option,  games  resources  will  be  read  from  the
              directory dir.  Default  is  the  current  directory,  unless  a
              directory has been specified in the config file (see below).

       --sci-version version, -Vversion
              This  option  sets  the  SCI  version  for  freesci  to emulate.
              Acceptable version numbers are of the form x.yyy.zzz, where x is
              the  major  number,  yyy  is  the minor number and zzz the patch
              level.

              Note that currectly  only  SCI0  and  SCI01  (major/minor=0/000)
              games are supported.

              Normally,  the  version  will  be  autodetected  from  the  game
              resource files.

       --disable-mouse, -m
              Many SCI games handle the mouse pointer differently if no  mouse
              is  present in the system. This option instructs the interpreter
              to tell the games that no mouse is present whenever they ask for
              one; the actual effect depends on the individual game.

       --scale-x xfact, -xxfact
              --scale-y  yfact,  -yyfact  These  options  allow  to explicitly
              specify  the  horizontal  and  vertical  scaling  factors.   The
              resulting size of the game window will be 320*xfact x 200*yfact,
              plus any window decorations.

       --color-depth bpp, -cbpp
              This  sets  the  number  of  bits  to  use   per   pixel.   Some
              visuals/graphics  drivers  support several color depths, so that
              auto-detection may not yield the desired effects.

       --graphics gfx, -ggfx
              With this option, you can specify which graphics driver is to be
              used.

              In  this  release,  sdl,  ggi, dfb (DirectFB) and plain xlib are
              supported, a separate null driver which does not produce visible
              output is also provided.

       --midiout driver, -Odriver
              This  is  the  output  driver  or  interface  to use. Currently,
              unixraw,  alsaraw,  null,  ossopl3,  ossseq  (an  OSS  sequencer
              driver)  may  be  available  on  your  system,  ossseq being the
              default.

       --mididevice driver, -Mdriver
              SCI was  designed  to  support  a  variety  of  physical  output
              devices.  FreeSCI currently supports the Rolant MT-32 (mt32, the
              default), an Adlib device (adlib),  an  MT-32  to  General  MIDI
              translation  layer  (mt32gm) and an adlibemu device that uses an
              OPL/2 emulator to run on top of  a  PCM  device  (which  may  be
              specified  separately  using  the "--pcmout" option, see below).
              Alternatively, sound may be turned off by using the null  driver
              (null).

       --sound-server server, -Sserver
              This  option may be used to explicitly specify a sound server to
              use.  The sound server is an asynchronous process or thread that
              issues  sound  output  events and reports sound cues back to the
              interpreter; if you have both possibilities (unix and  sdl)  for
              your  system, you may have to experiment to find out which works
              best for you.

       --pcmout driver, -Pdriver
              Specifies the PCM output driver to use (this  is  only  relevant
              for  the adlibemu midiout driver right now). Popular choices are
              oss, alsa and sdl; you should pick the one corresponding to  the
              sound system you are using on your system.

       --show-rooms, -s
              Forces  FreeSCI  to  print  out  room numbers for every room you
              enter. This can be used for teleporting; it is  intended  to  be
              used for debugging.

CONFIG FILE

       When  run, FreeSCI will create a directory called .freesci in your home
       directory (unless this directory already exists). If  you  run  an  SCI
       game,  this  game  will  create  another  directory inside the .freesci
       directory, to store its save games in.

       Also, if a file called config exists in this directory, it will be read
       and  parsed  by  the  interpreter  after the game has been loaded. This
       configuration file can be divided into a  global  section  and  various
       game-specific  sections.   Within  the  config  file,  comments must be
       preceeded by a hash “#” sign.  Empty lines are ignored.

       Game-specific sections are marked by  a  text  string  like  [GAME_ID],
       where  GAME_ID  is  an  ID  to  use  for  the game. If the section also
       contains a resource_dir entry, the ID may be passed  to  freesci  as  a
       parameter to start the game by its name.

       The  config  file section before the first game-specific section is the
       global configuration section; anything specified here will be  used  as
       the  setting  for  any  game that does not explicitly request different
       settings.

       Here is a complete listing of all options supported:

       GENERAL OPTIONS:

       resource_dir
              Read the game’s resource data from the specified location.  Must
              not be used in the generic part of the config file.

       version = x.yyy.zzz
              emulate  SCI  version x.yyy.zzz. The version number is sometimes
              printed on game discs, or can be found out by grepping your main
              executable  for  "0.000." (for SCI0 games). It is also displayed
              if the built-in debugger is activated in the Sierra SCI  engine.
              See also the --sci-version command line option.

       console_log
              Sets  a  logging  file for FreeSCI’s console output (by default,
              this is disabled).

       mouse = yes | no
              Specifies whether the interpreter should report to the game that
              it has a mouse.

       GRAPHICS OPTIONS:

       pic0_dither_mode = dither | flat | dither256
              dither: draw in 16 colors, same as Sierra SCI; flat: interpolate
              colors (256 colors); this  improves  some  graphics;  dither256:
              dither in 256 colors; a compromise between dither and flat.

       pic0_dither_pattern = scaled | unscaled
              scaled:  perform picture dithering to blocks with a width of the
              horizontal  and  a  height  of  the  vertical  scaling   factor;
              unscaled:  dither  single  pixels (same as scaled if the game is
              being run unscaled).

       pic0_brush_mode = scaled | ellipses | random-ellipses | more-random
              Affects how  semi-random  brushes  (used  mostly  for  dirt  and
              foilage)  are  drawn  in SCI0 background pictures. scaled: scale
              every semi-random pixel to a rectangular block; ellipses:  scale
              every semi-random pixel to a filled ellipse; random-ellipses: as
              ellipses,  but  slightly  shift   ellipse   offset   and   size;
              more-random: add more random pixels to the whole area.

       pic0_line_mode = correct | fine | half
              Specify  how  lines  are  drawn  when  background  pictures  are
              rendered in SCI0.  correct:  draw  lines  appropriately  scaled;
              fine:  don’t scale lines (thin lines, may cause problems); half:
              draw lines at half width (may cause problems).

       dirty_strategy = 1 | clusters
              The  “dirty  strategy”  is  the   strategy   used   to   collect
              modifications  to  the screen content. Modifying this may affect
              performance on slow or networked systems.  1: collect everything
              in  one dirty region; clusters: cluster non-overlapping modified
              regions into a set of regions.

       pic0_scaled = yes | no
              Whether SCI0 background pics should be scaled (may look  better)
              or not (faster, looks more like the original games). By default,
              it is disabled.

       pic_buffer_size = #
              Number of background pics to store in an LRU buffer.  Increasing
              this  value  will  increase  the  amount of memory used, but may
              considerably speed up changing back to rooms you visited not too
              long ago.

       view_filter = none | linear | trilinear
              Specifies the way views (non-background images) are scaled (this
              obviously does not affect unscaled images): none:  no  filtering
              is  performed  (default);  linear:  a  simple  linear  filter is
              applied; trilinear: views are passed through a trilinear filter.

       pic_filter = none | linear | trilinear
              Specifies  scaling  for background images; see view_filter for a
              description of the options.

       cursor_filter = none | linear | trilinear
              Specifies scaling for mouse  pointers;  see  view_filter  for  a
              description  of  the  options.   This  option  does not apply to
              graphics drivers  which  handle  the  mouse  pointer  explicitly
              (currently, only the GGI driver is affected).

       text_filter = none | linear | trilinear
              Specifies scaling for text; see view_filter for a description of
              the options.

       pic_antialiasing = none | simple
              If activated, this option will do an extra pass over  background
              images  to  anti-aliase  them,  usually  improving  the  overall
              picture quality. This is set to none by default.

       gfx_driver = driver
              This selects one of the graphics drivers  (currently  ggi,  sdl,
              dfb, xlib or null on UNIXish platforms).

       animation_delay = #
              This  chooses  the  amount  of microseconds to wait between each
              sub-element   of    a    transition    animation    (also    see
              animation_granularity).   Setting  this  to  zero  will  disable
              transition animations completely.  The default is 5.

       animation_granularity = #
              This sets the amount of steps to execute simultaneously for each
              transition  animation. If transition animations seem too slow on
              your system but you don’t want to disable them  completely,  you
              might want to try increasing this value.  The default is 4.

       alpha_threshold = #
              When  using  filtered  images  (specifically  views,  text,  and
              cursors where used by the graphics driver), this value  is  used
              to  determine  when a part of the image should be drawn and when
              it should be omitted. The definition space of this value is 0 to
              255,  where  larger  values  cause more to be drawn.  This value
              does not affect unfiltered images or  images  drawn  with  alpha
              blending.  Default is 129.

       SOUND OPTIONS:

       midi_device = driver
              Chooses  the  default  MIDI  device;  this can be mt32 for plain
              MT-32 output, or mt32gm to use FreeSCI’s MT32  ->  General  MIDI
              mapping  algorithm.  Also  Adlib  (adlib)  is  supported.   This
              defaults to mt32gm.

       midiout_driver = driver
              Selects the output device to use. Available options are  alsaraw
              (using   ALSA’s   raw   MIDI  output  devices),  unixraw  (using
              /dev/midi-style  raw  MIDI  output  devices),  ossseq  (for  OSS
              sequencer  devices)  and win32mci on Win32 systems.  The default
              on UNIXish systems is ossseq.

       pcmout_driver = driver
              Chooses a PCM output driver for use with  the  adlibemu  midiout
              driver.  Options are oss, alsa, sdl and null.

       sound_server = server
              This  chooses  one  of the asynchronous sound servers. For sound
              output,  FreeSCI  uses  an  asynchronous  process   or   thread;
              currently  two  implementations of this mechanism are available:
              unix, which forks off a separate process, and  sdl,  which  uses
              libsdl’s   threading   mechanisms.    Defaults  to  unix,  where
              available.

       pcmout_stereo = 1 | 0
              Selects whether stereo output should be used  (1)  or  not  (0).
              Defaults  to  using stereo output (this only affects pcm output,
              i.e. the adlibemu output driver).

       pcmout_rate = #
              Selects the output frequency to use for the pcmout driver  (this
              defaults  to  22050). May be any value from 11025 to 48000 which
              is supported by your sound hardware.

       DRIVER-SPECIFIC OPTIONS (GRAPHICS DRIVERS):

       gfx.xlib.disable_shmem = yes | no
              Can be used to disable support for MIT Shm support  on  the  X11
              Windowing System in cases where detection fails.  This is off by
              default, enabling SHM support.

       gfx.sdl.swap_caps_ctrl = yes | no
              This option instructs the SDL driver to swap caps lock and  ctrl
              when reading input.  Disabled by default.

       gfx.sdl.fullscreen = yes | no
              Toggles the SDL graphics driver’s fullscreen option. Disabled by
              default.

       DRIVER-SPECIFIC OPTIONS (SOUND DRIVERS):

       midiout.alsaraw.card = #
              This specifies the ALSA card to use for  raw  MIDI  output;  the
              default is 0.

       midiout.alsaraw.device = #
              Specifies  the  ALSA  device, relative to the card, for raw MIDI
              output. It also defaults to 0.

       midiout.unixraw.device = device
              Sets the device file to use for  raw  UNIX  MIDI  output.   This
              defaults to /dev/midi.

       midiout.ossseq.device = #
              Selects the OSS sequencer device number; this defaults to 1.

       midiout.ossseq.recorder = file
              Chooses  a  file the OSS sequencer should print debug output to.
              This is not particularly helpful for everyday use, and  disabled
              by default.

EXAMPLES

       Here is an exemplary configuartion file:

              # FreeSCI configuration file
              # For FreeSCI version 0.3.4

              # default values:

              console_log = /home/user/.freesci/log
              pic_buffer_size = 4
              pic0_brush_mode = more-random
              pic_antialiasing = simple
              pic0_dither_mode = dither256
              pic0_scaled = yes
              pic0_line_mode = normal
              pic0_dither_pattern = scaled
              text_filter = trilinear
              cursor_filter = trilinear
              pic_filter = trilinear
              view_filter = trilinear
              midi_device = mt32
              midiout_driver = alsaraw
              alpha_threshold = 140
              sound_server = unix

              gfx_driver=ggi
              animation_delay = 1
              animation_granularity=4
              gfx.ggi.swap_caps_ctrl=yes
              gfx.xlib.swap_caps_ctrl=yes
              gfx.sdl.swap_caps_ctrl=yes
              midiout.alsaraw.device=0
              midiout.unixraw.device=/dev/midi
              midiout.ossseq.device=1
              midiout.ossseq.recorder=/tmp/recorder

              [LSL3]
              resource_dir = /usr/share/freesci/lsl3

              [KQ4]
              resource_dir = /usr/share/freesci/kq4
              version = 0.000.502

SUPPORTED GAMES

       The following games have been tested with FreeSCI and are known to give
       some level of interactivity. In theory, FreeSCI should be able  to  let
       you  complete  all  of these. Games marked with [c] have been completed
       using FreeSCI.

       ·      Hero’s Quest / Quest for Glory 1 [c]
       ·      Space Quest 3 [c]
       ·      King’s Quest 1 (SCI version) [c]
       ·      King’s Quest 4 [c]
       ·      Leisure Suit Larry 2 [c]
       ·      Leisure Suit Larry 3 [c]
       ·      Police Quest 2 [c]
       ·      Codename: Iceman
       ·      The Colonel’s Bequest [c]
       ·      Conquest of Camelot
       ·      The Fun Seeker’s Guide (from the SQ Collector’s Series)
       ·      Hoyle’s Book of Games (volume 1) (*)
       ·      Hoyle’s Book of Games (volume 2) (*)
       (*) Due to differences between the way Sierra SCI  and  FreeSCI  handle
       graphical  widgets, these games may cause an accumulation of widgets in
       the widget subsystem, resulting in a slowdown and some increased memory
       usage.

SEE ALSO

       scitools(6)

BUGS

       This release has the following limitations (plus some bugs):
       ·      Only SCI0 games (and some SCI01 games) are supported
       ·      The  SCI  debug  functions  aren’t fully supported (and probably
              never will be, since FreeSCI uses its own debug functions).

       Please refer to http://freesci.linuxgames.com’s bug list section for  a
       listing of all known and current bugs.

AUTHORS

       FreeSCI is copyright (c) 1999,2000-2003 by the following people:

       ·      Christoph Reichenbach <creichen@rbg.informatik.tu-darmstadt.de>
       ·      Carl Muckenhoupt <carl@wurb.com>
       ·      Dmitry Jemerov <yole@exch.nnz.spb.su>
       ·      Magnus Reftel <d96reftl@dtek.chalmers.se>
       ·      Petr Vyhnak <pvyhnak@attglobal.net>
       ·      Sergey Lapin <slapin@karelia.ru>
       ·      Lars Skovlund <lskovlun@image.dk>
       ·      Matt Hargett <matt@use.net>
       ·      Solomon Peachy <pizza@shaftnet.org>
       ·      Rickard Lind <rpl@dd.chalmers.se>
       ·      Rink Springer <rink@springer.cx>
       ·      Walter van Niftrik <w.f.b.w.v.niftrik@stud.tue.nl>
       ·      Rainer Canavan
       ·      Christopher T. Lansdown
       ·      Alexander Angas
       ·      Ruediger Hanke

       This  man  page  was  written  by  Bas  Zoetekouw  <bas@debian.org> and
       Christoph Reichenbach.