Difference between revisions of "SCI/Specifications"
< SCI
Jump to navigation
Jump to search
m (→The Sound subsystem: update link) |
|||
(One intermediate revision by one other user not shown) | |||
Line 5: | Line 5: | ||
This book describes the Sierra Creative Interpreter, versions 0.xxx and 1.xxx to the extent known to the general public, as well as the FreeSCI interpreter for those games. Please contact the author if you find that anything is being described incorrectly or missing. | This book describes the Sierra Creative Interpreter, versions 0.xxx and 1.xxx to the extent known to the general public, as well as the FreeSCI interpreter for those games. Please contact the author if you find that anything is being described incorrectly or missing. | ||
'''NOTE:''' | '''NOTE:''' This version of the documentation is incomplete and covers only some parts of SCI0. | ||
== [[SCI/Specifications/Introduction|Introduction]] == | == [[SCI/Specifications/Introduction|Introduction]] == | ||
* 1.1 [[SCI/Specifications/Introduction#Preface|Preface]] | |||
* 1.2 [[SCI/Specifications/Introduction#The_basics|The basics]] | |||
* 1.3 [[SCI/Specifications/Introduction#Resource_storage|Resource storage]] | |||
* 1.4 [[SCI/Specifications/Introduction#Individual_resources|The individual resources: A summary]] | |||
** 1.4.1 [[SCI/Specifications/Introduction#Graphical resources|Graphical resources]] | |||
** 1.4.2 [[SCI/Specifications/Introduction#Sound resources|Sound resources]] | |||
** 1.4.3 [[SCI/Specifications/Introduction#Logic resources|Logic resources]] | |||
* 1.5 [[SCI/Specifications/Introduction#SCI01_extensions|SCI01 extensions]] | |||
* 1.6 [[SCI/Specifications/Introduction#SCI1_extensions|SCI1 extensions]] | |||
* 1.7 [[SCI/Specifications/Introduction#Credits|Credits]] | |||
== [[SCI/Specifications/Resource_files|Resource files]] == | == [[SCI/Specifications/Resource_files|Resource files]] == | ||
* 2.1 [[SCI/Specifications/Resource_files/SCI0_resources|SCI0 resources]] | |||
* 2.2 [[SCI/Specifications/Resource_files/SCI1_resources|SCI1 resources]] | |||
* 2.3 [[SCI/Specifications/Resource_files/Decompression_algorithms|Decompression algorithms]] | |||
** 2.3.1 [[SCI/Specifications/Resource_files/Decompression_algorithms/LZW|LZW]] | |||
** 2.3.2 [[SCI/Specifications/Resource_files/Decompression_algorithms/HUFFMAN|HUFFMAN]] | |||
** 2.3.3 [[SCI/Specifications/Resource_files/Decompression_algorithms/COMP3|COMP3]] | |||
** 2.3.4 [[SCI/Specifications/Resource_files/Decompression_algorithms/DCL-EXPLODE|DCL-EXPLODE]] | |||
** 2.3.5 [[SCI/Specifications/Resource_files/Decompression_algorithms/UNKNOWN|UNKNOWN]] | |||
== [[SCI/Specifications/Graphics|The Graphics subsystem]] == | == [[SCI/Specifications/Graphics|The Graphics subsystem]] == | ||
* 3.1 [[SCI/Specifications/Graphics#General_stuff|General stuff]] | |||
* 3.2 [[SCI/Specifications/Graphics/SCI_Ports|SCI Ports]] | |||
* 3.3 [[SCI/Specifications/Graphics/Cursor_resource|The Cursor resource]] | |||
** 3.3.1 [[SCI/Specifications/Graphics/Cursor_resource#SCI0|Color mapping for the SCI0 mouse pointer]] | |||
** 3.3.2 [[SCI/Specifications/Graphics/Cursor_resource#SCI1|Color mapping for the SCI1 mouse pointer]] | |||
* 3.4 [[SCI/Specifications/Graphics/SCI0_view_resource|The SCI0 View Resource]] | |||
** 3.4.1 [[SCI/Specifications/Graphics/SCI0_view_resource#View Resource|The View Resource]] | |||
** 3.4.2 [[SCI/Specifications/Graphics/SCI0_view_resource#Cell List|Cell List]] | |||
** 3.4.3 [[SCI/Specifications/Graphics/SCI0_view_resource#Image Cell|Image Cell]] | |||
* 3.5 [[SCI/Specifications/Graphics/Font_resource|Font resource]] | |||
* 3.6 [[SCI/Specifications/Graphics/SCI0-SCI01 pic resource|The SCI0 and SCI01 pic resource]] | |||
* 3.7 [[SCI/Specifications/Graphics/SCI1 palettes|SCI1 palettes]] | |||
** 3.7.1 [[SCI/Specifications/Graphics/SCI1 palettes#Palette types|Palette types]] | |||
** 3.7.2 [[SCI/Specifications/Graphics/SCI1 palettes#Palette format|Palette format]] | |||
** 3.7.3 [[SCI/Specifications/Graphics/SCI1 palettes#Installing a palette|Installing a palette]] | |||
* 3.8 [[SCI/Specifications/Graphics/Kernel calls|Kernel calls]] | |||
** 3.8.1 [[SCI/Specifications/Graphics/Kernel calls#Palette syscall|Palette syscall]] | |||
* 3.9 [[SCI/Specifications/Graphics/Windows, Dialogs and Controls|Windows, Dialogs and Controls]] | |||
* 3.10 [[SCI/Specifications/Graphics/Pictures and movement control|Pictures and movement control]] | |||
== [[SCI/Specifications/Sound|The Sound subsystem]] == | == [[SCI/Specifications/Sound|The Sound subsystem]] == | ||
* 4.1 [[SCI/Specifications/Sound/SCI0_Resource_Format|The SCI0 Sound Resource Format]] | |||
** 4.1.1 [[SCI/Specifications/Sound/SCI0_Resource_Format#Preface|Preface]] | |||
** 4.1.2 [[SCI/Specifications/Sound/SCI0_Resource_Format#Sound Devices|Sound Devices]] | |||
** 4.1.3 [[SCI/Specifications/Sound/SCI0_Resource_Format#File Format|File Format]] | |||
** 4.1.4 [[SCI/Specifications/Sound/SCI0_Resource_Format#Digital Samples|Digital Samples]] | |||
** 4.1.5 [[SCI/Specifications/Sound/SCI0_Resource_Format#Amiga sound (SCI0)|Amiga sound (SCI0)]] | |||
** 4.1.6 [[SCI/Specifications/Sound/SCI0_Resource_Format#Amiga Sound (SCI1)/Macintosh Sound (SCI1/1.1)|Amiga Sound (SCI1)/Macintosh Sound (SCI1/1.1)]] | |||
** 4.1.7 [[SCI/Specifications/Sound/SCI0_Resource_Format#General MIDI and MT-32 (SCI1)|General MIDI and MT-32 (SCI1)]] | |||
* 4.2 [[SCI/Specifications/Sound/Mapping instruments in FreeSCI|Mapping instruments in FreeSCI]] | |||
** 4.2.1 [[SCI/Specifications/Sound/Mapping instruments in FreeSCI#The Patch.002 resource|The Patch.002 resource]] | |||
** 4.2.2 [[SCI/Specifications/Sound/Mapping instruments in FreeSCI#Percussion instruments|Percussion instruments]] | |||
== [[SCI/Specifications/SCI_virtual_machine|The SCI virtual machine]] == | == [[SCI/Specifications/SCI_virtual_machine|The SCI virtual machine]] == | ||
* 5.1 [[SCI/Specifications/SCI_virtual_machine/Introduction|Introduction]] | |||
** 5.1.1 [[SCI/Specifications/SCI_virtual_machine/Introduction#Script resources|Script resources]] | |||
** 5.1.2 [[SCI/Specifications/SCI_virtual_machine/Introduction#Selectors|Selectors]] | |||
** 5.1.3 [[SCI/Specifications/SCI_virtual_machine/Introduction#Function invocation|Function invocation]] | |||
** 5.1.4 [[SCI/Specifications/SCI_virtual_machine/Introduction#Variable types|Variable types]] | |||
* 5.2 [[SCI/Specifications/SCI_virtual_machine/Interpreter initialization and the main execution loop|Interpreter initialization and the main execution loop]] | |||
* 5.3 [[SCI/Specifications/SCI_virtual_machine/The SCI Heap|The SCI Heap]] | |||
** 5.3.1 [[SCI/Specifications/SCI_virtual_machine/The SCI Heap#Heap structure|Heap structure]] | |||
** 5.3.2 [[SCI/Specifications/SCI_virtual_machine/The SCI Heap#Initialization|Initialization]] | |||
** 5.3.3 [[SCI/Specifications/SCI_virtual_machine/The SCI Heap#Memory allocation|Memory allocation]] | |||
* 5.4 [[SCI/Specifications/SCI_virtual_machine/The Sierra PMachine|The Sierra PMachine]] | |||
** 5.4.1 [[SCI/Specifications/SCI_virtual_machine/The Sierra PMachine#LocalVar|Local variables (LocalVar)]] | |||
** 5.4.2 [[SCI/Specifications/SCI_virtual_machine/The Sierra PMachine#Global variables|Global variables]] | |||
** 5.4.3 [[SCI/Specifications/SCI_virtual_machine/The Sierra PMachine#Temporary variables|Temporary variables]] | |||
** 5.4.4 [[SCI/Specifications/SCI_virtual_machine/The Sierra PMachine#Parameter variables|Parameter variables]] | |||
** 5.4.5 [[SCI/Specifications/SCI_virtual_machine/The Sierra PMachine#Objects|Objects]] | |||
** 5.4.6 [[SCI/Specifications/SCI_virtual_machine/The Sierra PMachine#The PMachine "registers"|The PMachine "registers"]] | |||
** 5.4.7 [[SCI/Specifications/SCI_virtual_machine/The Sierra PMachine#The instruction set|The instruction set]] | |||
* 5.5 [[SCI/Specifications/SCI_virtual_machine/Kernel functions|Kernel functions]] | |||
** 5.5.1 [[SCI/Specifications/SCI_virtual_machine/Kernel functions#Parameter types|Parameter types]] | |||
** 5.5.2 [[SCI/Specifications/SCI_virtual_machine/Kernel functions#SCI0 Kernel functions|SCI0 Kernel functions]] | |||
== [[SCI/Specifications/SCI in action|SCI in action]] == | == [[SCI/Specifications/SCI in action|SCI in action]] == | ||
* 6.1 [[SCI/Specifications/SCI in action/Event handling in SCI|Event handling in SCI]] | |||
** 6.1.1 [[SCI/Specifications/SCI in action/Event handling in SCI#Event types and modifiers|Event types and modifiers]] | |||
* 6.2 [[SCI/Specifications/SCI in action/Parser|The Parser]] | |||
** 6.2.1 [[SCI/Specifications/SCI in action/Parser#Vocabulary file formats|Vocabulary file formats]] | |||
** 6.2.2 [[SCI/Specifications/SCI in action/Parser#The black box: The magic behind Sierra's text parser|The black box: The magic behind Sierra's text parser]] | |||
** 6.2.3 [[SCI/Specifications/SCI in action/Parser#The Parse tree|The Parse tree]] | |||
** 6.2.4 [[SCI/Specifications/SCI in action/Parser#Said specs|Said specs]] | |||
** 6.2.5 [[SCI/Specifications/SCI in action/Parser#Matching the trees|Matching the trees]] | |||
* 6.3 [[SCI/Specifications/SCI in action/Views and animation in SCI|Views and animation in SCI]] | |||
* 6.4 [[SCI/Specifications/SCI in action/The message subsystem|The message subsystem]] | |||
** 6.4.1 [[SCI/Specifications/SCI in action/The message subsystem#Ties to audio|Ties to audio]] | |||
** 6.4.2 [[SCI/Specifications/SCI in action/The message subsystem#File formats|File formats]] | |||
** 6.4.3 [[SCI/Specifications/SCI in action/The message subsystem#early|early]] | |||
** 6.4.4 [[SCI/Specifications/SCI in action/The message subsystem#Version 2.101|Version 2.101]] | |||
** 6.4.5 [[SCI/Specifications/SCI in action/The message subsystem#Version 3.411|Version 3.411]] | |||
** 6.4.6 [[SCI/Specifications/SCI in action/The message subsystem#Version 4.010|Version 4.010]] | |||
* 6.5 [[SCI/Specifications/SCI in action/Notes on the kernel calls|Notes on the kernel calls]] | |||
** 6.5.1 [[SCI/Specifications/SCI in action/Notes on the kernel calls#GetMessage syscall|GetMessage syscall]] | |||
** 6.5.2 [[SCI/Specifications/SCI in action/Notes on the kernel calls#Message syscall|Message syscall]] |
Latest revision as of 01:56, 6 February 2010
The Sierra Creative Interpreter
Lars Skovlund, Christoph Reichenbach, Ravi Iyengar, Rickard Lind, Vladimir Gneushev, Petr Vyhnak, Dark Minister, Francois Boyer, Carl Muckenhoupt. Copyright (C) 1999-2009
This book describes the Sierra Creative Interpreter, versions 0.xxx and 1.xxx to the extent known to the general public, as well as the FreeSCI interpreter for those games. Please contact the author if you find that anything is being described incorrectly or missing.
NOTE: This version of the documentation is incomplete and covers only some parts of SCI0.
Introduction
- 1.1 Preface
- 1.2 The basics
- 1.3 Resource storage
- 1.4 The individual resources: A summary
- 1.4.1 Graphical resources
- 1.4.2 Sound resources
- 1.4.3 Logic resources
- 1.5 SCI01 extensions
- 1.6 SCI1 extensions
- 1.7 Credits
Resource files
- 2.1 SCI0 resources
- 2.2 SCI1 resources
- 2.3 Decompression algorithms
- 2.3.1 LZW
- 2.3.2 HUFFMAN
- 2.3.3 COMP3
- 2.3.4 DCL-EXPLODE
- 2.3.5 UNKNOWN
The Graphics subsystem
- 3.1 General stuff
- 3.2 SCI Ports
- 3.3 The Cursor resource
- 3.4 The SCI0 View Resource
- 3.4.1 The View Resource
- 3.4.2 Cell List
- 3.4.3 Image Cell
- 3.5 Font resource
- 3.6 The SCI0 and SCI01 pic resource
- 3.7 SCI1 palettes
- 3.7.1 Palette types
- 3.7.2 Palette format
- 3.7.3 Installing a palette
- 3.8 Kernel calls
- 3.8.1 Palette syscall
- 3.9 Windows, Dialogs and Controls
- 3.10 Pictures and movement control
The Sound subsystem
- 4.1 The SCI0 Sound Resource Format
- 4.1.1 Preface
- 4.1.2 Sound Devices
- 4.1.3 File Format
- 4.1.4 Digital Samples
- 4.1.5 Amiga sound (SCI0)
- 4.1.6 Amiga Sound (SCI1)/Macintosh Sound (SCI1/1.1)
- 4.1.7 General MIDI and MT-32 (SCI1)
- 4.2 Mapping instruments in FreeSCI
- 4.2.1 The Patch.002 resource
- 4.2.2 Percussion instruments
The SCI virtual machine
- 5.1 Introduction
- 5.1.1 Script resources
- 5.1.2 Selectors
- 5.1.3 Function invocation
- 5.1.4 Variable types
- 5.2 Interpreter initialization and the main execution loop
- 5.3 The SCI Heap
- 5.3.1 Heap structure
- 5.3.2 Initialization
- 5.3.3 Memory allocation
- 5.4 The Sierra PMachine
- 5.4.1 Local variables (LocalVar)
- 5.4.2 Global variables
- 5.4.3 Temporary variables
- 5.4.4 Parameter variables
- 5.4.5 Objects
- 5.4.6 The PMachine "registers"
- 5.4.7 The instruction set
- 5.5 Kernel functions
- 5.5.1 Parameter types
- 5.5.2 SCI0 Kernel functions
SCI in action
- 6.1 Event handling in SCI
- 6.2 The Parser
- 6.2.1 Vocabulary file formats
- 6.2.2 The black box: The magic behind Sierra's text parser
- 6.2.3 The Parse tree
- 6.2.4 Said specs
- 6.2.5 Matching the trees
- 6.3 Views and animation in SCI
- 6.4 The message subsystem
- 6.4.1 Ties to audio
- 6.4.2 File formats
- 6.4.3 early
- 6.4.4 Version 2.101
- 6.4.5 Version 3.411
- 6.4.6 Version 4.010
- 6.5 Notes on the kernel calls
- 6.5.1 GetMessage syscall
- 6.5.2 Message syscall