Main
Links
Games
Main
Download
Documentation
Development
Bug list

The Sierra Creative Interpreter

Lars Skovlund

Christoph Reichenbach

Ravi Iyengar

Rickard Lind

Vladimir Gneushev

Petr Vyhnak

Dark Minister

Francois Boyer


Table of Contents
Preface
1. Introduction
The basics
Resource storage
The individual resources: A summary
Graphical resources summarized
Sound resources summarized
Logic resources summarized
SCI01 extensions
SCI1 extensions
Sierra SCI games
SCI0
SCI01
SCI1
SCI1-T.A series
SCI1 suspected forks
SCI1.1
SCI32
2. Resource files
SCI0 resources
resource.map
resource.<nr>
SCI1 resources
resource.map
resource.<nr>
Decompression algorithms
Decompression algorithm LZW
Decompression algorithm HUFFMAN
Decompression algorithm COMP3
Decompression algorithm DCL-EXPLODE
Decompression algorithm UNKNOWN
3. The Graphics subsystem
General stuff
SCI Ports
The Cursor resource
Color mapping for the SCI0 mouse pointer
Color mapping for the SCI1 mouse pointer
The SCI0 View Resource
The View Resource
Cell List
Image Cell
The SCI font resource
The SCI0 and SCI01 pic resource
Windows, Dialogs and Controls
Pictures and movement control
4. The Sound subsystem
The SCI0 Sound Resource Format
Preface
Sound Devices
File Format
Digial Samples
Revision history
Mapping instruments in FreeSCI
The Patch.002 resource
Percussion instruments
5. The SCI virtual machine
Introduction
Script resources
Selectors
Function invocation
Variable types
Interpreter initialization and the main execution loop
The SCI Heap
Heap structure
Memory handles
Initialization
Memory allocation
The Sierra PMachine
Local variables (LocalVar)
Global variables
Temporary variables
Parameter variables
Objects
The PMachine "registers"
The instruction set
Kernel functions
Parameter types
SCI0 Kernel functions
6. SCI in action
Event handling in SCI
Event types and modifiers
The Parser
Vocabulary file formats
The black box: The magic behind Sierra's text parser
The Parse tree
Said specs
Matching the trees
Views and animation in SCI
7. FreeSCI
Basic differences to Sierra's SCI
The built-in debugger
Concepts and basic functionality
Debugger commands
Console interaction with dmalloc
Header files
Core headers
VM headers
Graphics subsystem headers
Savegames
Savegame directory policy
Files
Obsolete files
Caveats
The graphics subsystem
Architecture
Standard data types
Graphics drivers
The graphical resource manager (GRM)
The operational layer
FreeSCI graphical widgets
Interpreter interaction
Kernel hacking
Kernel basics
Hunk and heap
Error handling and debugging
Selectors
List of Tables
2-1. SCI0 compression algorithms
2-2. SCI01 compression algorithms
2-3. SCI1.0 compression algorithms
2-4. SCI1.1 compression algorithms
3-1. The SCI font resource data structure
3-2. The SCI font resource character data structure
6-1. SCI and FreeSCI signal bits
List of Examples
6-1. Parse grammar example
6-2. Parser example
6-3. Semantic tree example
7-1. An example for PUT_SELECTOR and GET_SELECTOR
7-2. An example for INVOKE_SELECTOR