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.