Provided by: freesci_0.6.4-7.2_amd64 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). If that fails,  it
              will  present  a  graphical  game selection screen for the games listed in the config file and the
              games located under ~/.freesci/games (or the directory specified by the --menudir 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).

       --menudir dir, -Gdir
              This  option  sets  the  directory that the graphical game selection menu recurses to look for SCI
              games. Default is ~/.freesci/games, unless the menu_dir option is set  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 and plain xlib are supported.

       --midiout driver, -Odriver
              This is the output driver or interface to use. Currently, unixraw,  alsaraw,  null,  ossopl3,  and
              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) and it also offers an MT-32  to  General
              MIDI translation layer (mt32gm).

       --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.

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.

       It  is  possible to include other files with the %include<#> directive. FreeSCI will automatically detect
       and warn about circular inclusions.

       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.

       menu_dir = dir
              Specifies the directory that is recursively searched for SCI games when the game selection  screen
              is  invoked.  Should  only  be  used  in  the  generic  part  of  the  config  file.  Defaults  to
              ~/.freesci/games.

       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.

       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.

       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.

       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.

       PER-RESOURCE COLOUR CUSTOMISATION:

       FreeSCI allows the brightness and hue of in-game images to be customised. A complete description of this
       mechanism can be found in the accompanying README.

EXAMPLES

       Here is an exemplary configuartion file:

              # FreeSCI configuration file
              # For FreeSCI version 0.3.5

              # 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-2006 by the following people:

       •      Christoph Reichenbach <creichen@gmail.com>
       •      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>
       •      Hugues Valois <hugues_valois@hotmail.com>
       •      Ruediger Hanke <tomjoad@muenster.de>
       •      Alexander Angas <wgd@adelaide.on.net>
       •      Walter van Niftrik <w.f.b.w.v.niftrik@stud.tue.nl>

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

FreeSCI 0.3.3                                    Dec 30th, 2001                                       freesci(6)