Difference between revisions of "Sierra Creative Interpreter"

From SCI Wiki
Jump to navigationJump to search
 
(32 intermediate revisions by the same user not shown)
Line 1: Line 1:
The  '''SC'''ript '''I'''nterpreter or later, '''S'''ierra '''C'''reative '''I'''nterpreter, (SCI), or as it later became known as, '''S'''ierra '''C'''reative '''I'''nterpreter, is the [[w:scripting language|scripting language]] created by Jeff Stephenson of [[w:Sierra Entertainment|Sierra On-Line]] for its [[w:adventure game|adventure games]]. It was the successor of Sierra's earlier interpreter, [[agiw:AGI|AGI]], and the [[w:runtime environment|runtime environment]] for such adventure games. Although ports for the [[w:Amiga|Amiga]], [[w:Atari ST|Atari ST]], [[w:Apple Macintosh|Macintosh]] and [[w:NEC PC-9801|PC-9801]] platforms exist, the primary development was for the [[w:IBM PC|IBM PC]] platform.
+
<div align="center" style="font-size: 22pt">Sierra Creative Interpreter (SCI)</div><br />
 +
{{EngineInfobox
 +
| EngineName = SCI
 +
| DatesUsed = [[1988]]-[[1996]]
 +
| Company = {{SierraEng}}
 +
| Developer = {{JeffStephenson}}
 +
}}
  
&nbsp;
+
<br />
== Design ==
+
==<br /><br /> Description ==
 +
 
 +
<blockquote>
 +
The  '''SC'''ript '''I'''nterpreter or later, '''S'''ierra '''C'''reative '''I'''nterpreter, (SCI), or as it later became known as, '''S'''ierra '''C'''reative '''I'''nterpreter, is the [[w:scripting language|scripting language]] created by [[Jeff Stephenson]] for [[Sierra On-Line]], which was used between the years of 1989 to 1997. It superseded Sierra's earlier interpreter or engine, [[agiw:AGI|AGI]], and the [[w:runtime environment|runtime environment]] for such adventure games. SCI was used to create such games as ''[[King's Quest IV: The Perils of Rosella|King's Quest IV]]'' to VII, ''[[Space Quest III]]'' to ''[[Space Quest 6|6]]'', ''[[Quest for Glory I]]'' to ''[[Quest for Glory IV: Shadows of Darkness|IV]]'' and ''[[Gabriel Knight: Sins of the Fathers|Gabriel Knight I]]'' and ''[[Beast Within: A Gabriel Knight Mystery|II]]'', and the [[w:runtime environment|runtime environment]] for these games. Although ports for the [[w:Amiga|Amiga]], [[w:Atari ST|Atari ST]], [[w:Apple Macintosh|Macintosh]] and [[w:NEC PC-9801|PC-9801]] platforms exist, the primary development was for [[MS-DOS]] and [[Windows]] on the [[w:IBM PC|IBM PC]] platform.
 +
</blockquote>
 +
 
 +
==<br /> Design ==
 
While AGI was a [[w:Procedural programming|procedural]] language, SCI is completely [[w:Object-oriented programming|object-oriented]]. For more detailed information, see the [[SCI Specifications]].
 
While AGI was a [[w:Procedural programming|procedural]] language, SCI is completely [[w:Object-oriented programming|object-oriented]]. For more detailed information, see the [[SCI Specifications]].
  
&nbsp;
+
==<br /> Versions ==
 
+
<blockquote>
== Versions ==
 
 
Although continuously developed between 1988 and 1996, five major versions can be isolated:
 
Although continuously developed between 1988 and 1996, five major versions can be isolated:
  
&nbsp;
 
 
=== SCI0 ===
 
=== SCI0 ===
First used for ''[[King's Quest IV: The Perils of Rosella]]'' in 1988, ''SCI0'' (0.000.xxx) allowed for 320×200 graphics with 16 colors as well as a music-card compatible soundtrack. It also supported parser-based keyboard input which a game could be scripted to use if it wishes to do so (non-adventure games usually didn't).
 
  
====<br /> SCI0 Resources ====
+
First used for ''[[King's Quest IV: The Perils of Rosella]]'' in 1988, ''SCI0'' (0.000.xxx) allowed for 320×200 graphics with 16 colors as well as a music-card compatible soundtrack. It also supported parser-based keyboard input which a game could be scripted to use if it wishes to do so (non-adventure games usually didn't).
 +
 
 +
[[Sierra Release List#SCI0|Games that use SCI0]]
 +
 
 +
<blockquote>
 +
==== SCI0 Resources ====
  
 
The resource types of SCI0 can be roughly grouped into four sets:
 
The resource types of SCI0 can be roughly grouped into four sets:
  
* <div id="VIEW"></div>'''VIEW''' - [[#Graphical resources summarized|Graphics]]
+
* <div id="VIEW"></div>'''[[VIEW]]''' - [[SCI_Specifications: Chapter 1 - Introduction#SCI0 Graphical resources summarized|Graphics]]
* <div id="PIC"></div>'''PIC''' - [[#Graphical resources summarized|Graphics]]
+
* <div id="PIC"></div>'''[[PIC]]''' - [[SCI_Specifications: Chapter 1 - Introduction#SCI0 Graphical resources summarized|Graphics]]
* <div id="SCRIPT"></div>'''SCRIPT''' - [[#Logic resources summarized|Logic]]
+
* <div id="SCRIPT"></div>'''[[SCRIPT]]''' - [[SCI Specifications: Chapter 1 - Introduction#SCI0 Logic resources summarized|Logic]]
* <div id="TEXT"></div>'''TEXT''' - (Text resources are series of ASCII strings)
+
* <div id="TEXT"></div>'''[[TEXT]]''' - <!-- [[Strings]] --> (Text resources are series of ASCII strings)
* <div id="SOUND"></div>'''SOUND''' - [[#Sound resources summarized|Sound]]
+
* <div id="SOUND"></div>'''[[SOUND]]''' - [[SCI Specifications: Chapter 1 - Introduction#SCI0 Sound resources summarized|Sound]]
* <div id="VOCAB"></div>'''VOCAB''' - [[#Logic resources summarized|Logic]]
+
* <div id="VOCAB"></div>'''[[VOCAB]]''' - [[SCI Specifications: Chapter 1 - Introduction#SCI0 Logic resources summarized|Logic]]
* <div id="FONT"></div>'''FONT''' - [[#Graphical resources summarized|Graphics]]
+
* <div id="FONT"></div>'''[[FONT]]''' - [[SCI_Specifications: Chapter 1 - Introduction#SCI0 Graphical resources summarized|Graphics]]
* <div id="CURSOR"></div>'''CURSOR''' - [[#Graphical resources summarized|Graphics]]
+
* <div id="CURSOR"></div>'''[[CURSOR]]''' - [[SCI_Specifications: Chapter 1 - Introduction#SCI0 Graphical resources summarized|Graphics]]
* <div id="PATCH"></div>'''PATCH''' - [[#Sound resources summarized|Sound]]
+
* <div id="PATCH"></div>'''[[PATCH]]''' - [[SCI Specifications: Chapter 1 - Introduction#SCI0 Sound resources summarized|Sound]]
 
<!--; the other resources deserve further discussion.-->
 
<!--; the other resources deserve further discussion.-->
 
+
</blockquote>
====<br /> Games using SCI0 ====
 
 
 
(in order of release):
 
 
 
*''[[King's Quest IV: The Perils of Rosella]]''
 
*''[[Leisure Suit Larry Goes Looking for Love (In Several Wrong Places)]]''
 
*''[[Police Quest 2: The Vengeance]]''
 
*''[[Sierra Christmas Card 1988]]''
 
*''[[Space Quest III: The Pirates of Pestulon]]''
 
*''[[Hoyle Official Book of Games, Volume 1]]''
 
*''[[Quest for Glory I: So You Want to Be a Hero (EGA)]]''
 
*''[[Leisure Suit Larry 3: Passionate Patti in Pursuit of the Pulsating Pectorals]]''
 
*''[[Colonel's Bequest, The|The Colonel's Bequest|]]''
 
*''[[Code-Name: ICEMAN]]''
 
*''[[Conquests of Camelot: The Search for the Grail]]''
 
*''[[Hoyle Official Book of Games, Volume 2: Solitaire]]''
 
*''[[Mixed-Up Mother Goose SCI]] (Version 1.011)''
 
&nbsp;
 
 
 
Later versions of SCI0 added bilingual support for international versions; their version string reads "S.OLD.xxx". Games include:
 
 
 
&nbsp;
 
*''[[King's Quest I: Quest for the Crown (SCI remake)|King's Quest I: Quest for the Crown]]'' (1990 remake)
 
*''[[Space Quest III: The Pirates of Pestulon]]'' (international versions)
 
*''[[Leisure Suit Larry 3: Passionate Patti in Pursuit of the Pulsating Pectorals]]'' (international versions)
 
*''[[Jones in the Fast Lane]]'' (floppy version)
 
&nbsp;
 
 
 
The last SCI0 game, ''Jones in the Fast Lane'', already used the graphics engine from SCI1 and thus was available in a 256 color version.
 
 
 
&nbsp;
 
  
 
=== SCI0.1 ===
 
=== SCI0.1 ===
Line 65: Line 48:
 
Quest for Glory II has been falsely identified by some as SCI1, but is actually SCI01. Perhaps this is because its debug reports SCI version 1.000.*** even when the interpreter itself is 0.001.0**.
 
Quest for Glory II has been falsely identified by some as SCI1, but is actually SCI01. Perhaps this is because its debug reports SCI version 1.000.*** even when the interpreter itself is 0.001.0**.
  
<blockquote>
+
<!-- <div class="Quote">
 +
{{Quote|Attrib = Corey Cole
 +
}}
 
"Quest for Glory II definitely did *not* use the SCI1 interpreter that Sierra used for King's Quest V and the other 256-color EGA games. That interpreter did not have a parser, so could not handle typed input at all. If they internally called QfG2's interpreter 'SCI1', it was just a PR thing - It was not the same interpreter.
 
"Quest for Glory II definitely did *not* use the SCI1 interpreter that Sierra used for King's Quest V and the other 256-color EGA games. That interpreter did not have a parser, so could not handle typed input at all. If they internally called QfG2's interpreter 'SCI1', it was just a PR thing - It was not the same interpreter.
  
 
"As to *why* QfG2 used the parser and EGA graphics, it's because all of Sierra's other games were running late. Sierra needed a major release for Christmas 1990, and we were the sacrificial lamb. (I think it was partially because I did not fight as hard as Mark Crowe - The choice was between QfG2 and SQ3 as to which game would ship early, but with 16-color graphics.)"
 
"As to *why* QfG2 used the parser and EGA graphics, it's because all of Sierra's other games were running late. Sierra needed a major release for Christmas 1990, and we were the sacrificial lamb. (I think it was partially because I did not fight as hard as Mark Crowe - The choice was between QfG2 and SQ3 as to which game would ship early, but with 16-color graphics.)"
 +
</div>
 +
-->
  
<div align="right">-- Corey Cole</div>
+
[[Sierra Release List#SCI0.1|Games that use SCI0.1]]
</blockquote>
 
  
====<br /> SCI0.1 extensions ====
+
<blockquote>
 +
==== SCI0.1 Extensions ====
  
 +
<blockquote>
 
SCI01 differs only in very few respects: It uses different compression algorithms and a different type of sound resources, which may contain digitized sound effects (PCM data). The basic music data, however, still resembles MIDI data.
 
SCI01 differs only in very few respects: It uses different compression algorithms and a different type of sound resources, which may contain digitized sound effects (PCM data). The basic music data, however, still resembles MIDI data.
  
 
Also, scripts are split into two parts when loaded: A dynamic part, which resides in the heap as before, and a static part, which is stored externally to conserve heap space.<ref>The background for this is that heap space started running out in Quest for Glory 2. In order to compensate for this, changes were made to both the script library and the interpreter.</ref>
 
Also, scripts are split into two parts when loaded: A dynamic part, which resides in the heap as before, and a static part, which is stored externally to conserve heap space.<ref>The background for this is that heap space started running out in Quest for Glory 2. In order to compensate for this, changes were made to both the script library and the interpreter.</ref>
 +
</blockquote>
 +
</blockquote>
  
====<br /> Games using SCI0.1 ====
+
=== SCI1 ===
  
(in order of release):
+
Released in 1990, the most notable improvement in ''SCI1'' (1.000.xxx/T.A00.xxx) was the support of 256 color graphics, still at a resolution of 320×200; EGA 16 color graphics were still available (games were usually sold in separate 16 and 256 color versions). Some people prefer to call the 16-color SCI1 interpreters "SCI01". With the shift to SCI1, Sierra began using a digitized painting process for background artwork, rather than the pixel-by-pixel process of previous engines: the difference is readily apparent if one compares, for example, ''[[King's Quest IV: The Perils of Rosella|King's Quest 4]]'' against ''[[King's Quest V: Absence Makes the Heart Go Yonder|King's Quest 5]]''. SCI1 also introduced a Point&Click interface (a mouse-driven, icon-based), which was implemented by the game's scripts, not the SCI1 interpreter. This is also how Shane Cloud (Cloudee1) of [[scip:|SCI Programming]] created a Point&Click interface to the SCI0 template game for SCI Studio and SCI Companion 3.<!--
  
*''[[King's Quest I: The Quest for the Crown (SCI remake)]]''
+
Most SCI1 games are completely mouse-driven, using an icon-based interface; contrary to popular thought, it is up to the game's script code, not to the interpreter, to implement the user interface. For example, even though ''[[Quest for Glory II: Trial by Fire|Quest for Glory 2]]'' is parser-driven and ''[[King's Quest V: Absence Makes the Heart Go Yonder|King's Quest 5]]'' is mouse-driven, they use compatible interpreters, as it is possible to use the interpreter from QFG2 with the EGA version of KQ5. -->
*''[[Leisure Suit Larry 3: Passionate Patti in Pursuit of the Pulsating Pectorals]]''
 
*''[[Quest for Glory I: So You Want to Be a Hero (EGA)]]''
 
*''[[Quest for Glory II: Trial by Fire]]''
 
*''[[Space Quest III: The Pirates of Pestulon]]''
 
  
===<br /> SCI1 ===
+
The version numbering scheme is somewhat confusing for the reason that the third number in the version string (the build number) has only three digits, even though four are needed. For example, the game ''Space Quest 4'' Version 1.052 ships with an interpreter labeled "1.000.753", whereas the game ''[[Conquests of the Longbow]]'' Version 1.0 ships with an interpreter labeled "1.000.168"; nevertheless, the latter interpreter is newer because the build number is actually 1168, not 168. Also, in some cases the "1.000" is replaced with "T.A00", which however does not indicate a separate development fork.
  
Released in 1990, the most notable improvement in ''SCI1'' (1.000.xxx/T.A00.xxx) was the support of 256 color graphics, still at a resolution of 320×200; EGA 16 color graphics were still available (games were usually sold in separate 16 and 256 color versions). Some people prefer to call the 16-color SCI1 interpreters "SCI01". With the shift to SCI1, Sierra began using a digitized painting process for background artwork, rather than the pixel-by-pixel process of previous engines: the difference is readily apparent if one compares, for example, ''[[King's Quest IV: The Perils of Rosella|King's Quest 4]]'' against ''[[King's Quest V: Absence Makes the Heart Go Yonder|King's Quest 5]]''.
+
[[Sierra Release List#SCI1|Games that use SCI1]]
  
Most SCI1 games are completely mouse-driven, using an icon-based interface; contrary to popular thought, it is up to the game's script code, not to the interpreter, to implement the user interface. For example, even though ''[[Quest for Glory II: Trial by Fire|Quest for Glory 2]]'' is parser-driven and ''[[King's Quest V: Absence Makes the Heart Go Yonder|King's Quest 5]]'' is mouse-driven, they use compatible interpreters, as it is possible to use the interpreter from QFG2 with the EGA version of KQ5.
+
<blockquote>
 
+
==== SCI1 Extensions ====
The version numbering scheme is somewhat confusing for the reason that the third number in the version string (the build number) has only three digits, even though four are needed. For example, the game ''Space Quest 4'' Version 1.052 ships with an interpreter labeled "1.000.753", whereas the game ''[[Conquests of the Longbow]]'' Version 1.0 ships with an interpreter labeled "1.000.168"; nevertheless, the latter interpreter is newer because the build number is actually 1168, not 168. Also, in some cases the "1.000" is replaced with "T.A00", which however does not indicate a separate development fork.
 
 
 
====<br /> SCI1 extensions ====
 
  
 
SCI1 introduced new concepts like Palettes, scaled bitmap images and several new compression algorithms. In SCI1.0, the resource limit was first increased to 16383<ref>This appears to be the limit- none of the SCI1.0 games tested used resource numbers beyond 16383</ref>, and then to 65535 in SCI1. Because of the inherent limitations of the FAT file system the primary target OS of Sierra's SCI interpreter was limited to, patch file names were altered accordingly, with the resource number (not padded) before the dot and a three-letter resource ID behind it; examples are "0.scr" or "100.v56".
 
SCI1 introduced new concepts like Palettes, scaled bitmap images and several new compression algorithms. In SCI1.0, the resource limit was first increased to 16383<ref>This appears to be the limit- none of the SCI1.0 games tested used resource numbers beyond 16383</ref>, and then to 65535 in SCI1. Because of the inherent limitations of the FAT file system the primary target OS of Sierra's SCI interpreter was limited to, patch file names were altered accordingly, with the resource number (not padded) before the dot and a three-letter resource ID behind it; examples are "0.scr" or "100.v56".
Line 103: Line 86:
 
The complete list of suffixes is as follows:
 
The complete list of suffixes is as follows:
  
* <div id="V56"></div>80: '''V56''': 256 color views
+
* <div id="V56"></div>80: '''[[V56]]''': 256 color views
* <div id="P56"></div>81: '''P56''': 256 color background pictures
+
* <div id="P56"></div>81: '''[[P56]]''': 256 color background pictures
* <div id="SCR"></div>82: '''SCR''': Scripts (static data)
+
* <div id="SCR"></div>82: '''[[SCR]]''': Scripts (static data)<ref name="ResourceSplit">The script resource split introduced in SCI01 was incorporated into the actual resource layout in SCI1.<sup>[[:Category:Pages Requiring Citation|Requires Citation]]</sup>[[Category:Pages Requiring Citation]]</ref>
* <div id="TEX"></div>83: '''TEX''': Texts (deprecated in favor of messages)
+
* <div id="TEX"></div>83: '''[[TEX]]''': Texts (deprecated in favor of messages)
* <div id="SND"></div>84: '''SND''': Sound data (MIDI music)
+
* <div id="SND"></div>84: '''[[SND]]''': Sound data (MIDI music)
 
* 85: No extension: Type 0x85 resources are 'memory' resources, which are only used internally.
 
* 85: No extension: Type 0x85 resources are 'memory' resources, which are only used internally.
* <div id="VOC"></div>86: '''VOC''': Vocabulary (not used)
+
* <div id="VOC"></div>86: '''[[VOC]]''': Vocabulary (not used)
* <div id="FON"></div>87: '''FON''': Fonts
+
* <div id="FON"></div>87: '''[[FON]]''': Fonts
* <div id="CUR"></div>88: '''CUR''': Mouse cursors (deprecated in favor of v56-based cursors)
+
* <div id="CUR"></div>88: '''[[CUR]]''': Mouse cursors (deprecated in favor of v56-based cursors)
* <div id="PAT"></div>89: '''PAT''': Audio patch files
+
* <div id="PAT"></div>89: '''[[PAT]]''': Audio patch files
* <div id="BIT"></div>8a: '''BIT''': Bitmap files (purpose unknown)
+
* <div id="BIT"></div>8a: '''[[BIT]]''': Bitmap files (purpose unknown)
* <div id="PAL"></div>8b: '''PAL''': 256 color palette files
+
* <div id="PAL"></div>8b: '''[[PAL]]''': 256 color palette files
* <div id="CDA"></div>8c: '''CDA''': CD Audio resources
+
* <div id="CDA"></div>8c: '''[[CDA]]''': CD Audio resources
* <div id="AUD"></div>8d: '''AUD''': Audio resources (voice and digital sound effects)
+
* <div id="AUD"></div>8d: '''[[AUD]]''': Audio resources (voice and digital sound effects)
* <div id="SYN"></div>8e: '''SYN''': Sync (purpose unknown)
+
* <div id="SYN"></div>8e: '''[[SYN]]''': Sync (purpose unknown)
* <div id="MSG"></div>8f: '''MSG''': Message resources: Text plus metadata
+
* <div id="MSG"></div>8f: '''[[MSG]]''': Message resources: Text plus metadata
* <div id="MAP"></div>90: '''MAP''': Map (purpose unknown)
+
* <div id="MAP"></div>90: '''[[MAP]]''': Maps location of resources for interpreter
* <div id="HEP"></div>91: '''HEP''': Heap resources: Dynamic script data
+
* <div id="HEP"></div>91: '''[[HEP]]''': Heap resources: Dynamic script data<ref name="ResourceSplit" />
* <div id="SEQ"></div>??: '''SEQ''': Sequence resources for cut scenes
+
* <div id="SEQ"></div>??: '''[[SEQ]]''': Sequence resources for cut scenes
 
+
</blockquote>
Apparently, the script resource split introduced in SCI01 was incorporated into the actual resource layout in SCI1.
 
 
 
====<br /> Games using SCI1 ====
 
 
 
(in order of release):
 
 
 
*''[[Christmas Card VGA 1990 - The Seasoned Professional]]''
 
*''[[Hoyle Official Book of Games, Volume 3: Great Board Games]]''
 
*''[[King's Quest V: Absence Makes the Heart Go Yonder]]'' (disk version)
 
*''[[Leisure Suit Larry 1: In the Land of the Lounge Lizards SCI]]'' (enhanced remake)
 
*''[[Space Quest IV: Roger Wilco and the Time Rippers]]'' (disk version)
 
*''[[Mixed-Up Mother Goose VGA]]'' (CD-ROM version)
 
  
Interpreters with build numbers >1000 have slightly modified file formats and improved foreign language support (resulting from a code merge with SCI0's S.OLD fork), but are otherwise like earlier SCI1 versions. Games include:
+
=== SCI1.1 ===
 
 
*''[[Leisure Suit Larry 5: Passionate Patti Does a Little Undercover Work]]''
 
*''[[EcoQuest: The Search for Cetus]]'' (disk version 1.0)
 
*''[[Jones in the Fast Lane]]'' (CD-ROM version)
 
*''[[King's Quest V: Absence Makes the Heart Go Yonder]]'' (CD-ROM & international disk versions)
 
*''[[Mixed-Up Fairy Tales]]''
 
*''[[Police Quest 3: The Kindred]]''
 
*''[[Space Quest I: The Sarien Encounter SCI|Space Quest I: The Sarien Encounter]]'' (enhanced remake)
 
*''[[Space Quest IV: Roger Wilco and the Time Rippers]]'' (international versions)
 
*''[[Conquests of the Longbow: The Legend of Robin Hood]]''
 
*''[[Castle of Dr. Brain]]''
 
 
 
===<br /> SCI1.1 ===
 
  
 
Apart from considerable internal changes, ''SCI1.1'' (1.001.xxx) added support for animated movie sequences (first used in KQ6) as well as scaling sprites: characters would become smaller as they walk into the distance, giving a pseudo-3D effect. (The interpreters from some early SCI1.1 games bear a "2.000.000" version stamp; this is most likely an inconsistency which should be ignored.)
 
Apart from considerable internal changes, ''SCI1.1'' (1.001.xxx) added support for animated movie sequences (first used in KQ6) as well as scaling sprites: characters would become smaller as they walk into the distance, giving a pseudo-3D effect. (The interpreters from some early SCI1.1 games bear a "2.000.000" version stamp; this is most likely an inconsistency which should be ignored.)
Line 155: Line 113:
 
Separate 16-color packages were no longer available; EGA owners instead would be presented a 640×200 graphics display that simulated 256 colors via dithering.
 
Separate 16-color packages were no longer available; EGA owners instead would be presented a 640×200 graphics display that simulated 256 colors via dithering.
  
====<br /> SCI1.1 extensions ====
+
[[Sierra Release List#SCI1.1|Games that use SCI1.1]]
  
&nbsp;
+
<blockquote>
 +
==== SCI1.1 Extensions ====
  
====<br /> Games using SCI1.1 ====
+
* <div id="Audio36"></div> '''[[Audio36]]''': Audio36 resources
 +
* <div id="Sync36"></div> '''[[Sync36]]''': Sync36 resources
 +
</blockquote>
  
(in order of release):
+
=== SCI 32 ===
  
*''[[Season's Greeting Card 1992]]''
+
Often called ''SCI32'' (along with ''SCI3''), ''SCI2'' (2.xxx.xxx) runs in 32-bit mode by using the ''[[w:DOS/4G|DOS/4GW]]'' extender or by running it in Windows 3.1's Win32s. Most notable is the support of high-resolution 640×480 graphics, as well as better movie support.
*''[[EcoQuest: The Search for Cetus]]'' (disk version 1.1, CD-ROM version)
 
*''[[EcoQuest 2: Lost Secret of The Rainforest]]''
 
*''[[Freddy Pharkas: Frontier Pharmacist]]''
 
*''[[Island of Dr. Brain]]''
 
*''[[King's Quest VI: Heir Today, Gone Tomorrow]]''
 
*''[[Dagger of Amon Ra, The|The Dagger of Amon Ra]]''
 
*''[[Leisure Suit Larry 6: Shape Up or Slip Out!]]'' (floppy and low-res CD-ROM version)
 
*''[[Mixed-Up Mother Goose]]'' (Version 2.000)
 
*''[[Pepper's Adventures in Time]]''
 
*''[[Police Quest 1: In Pursuit of the Death Angel SCI|Police Quest 1: In Pursuit of the Death Angel VGA]]'' (enhanced remake)
 
*''[[Quest for Glory I: So You Want to Be a Hero (VGA)]]'' (256 color remake)
 
*''[[Quest for Glory III: Wages of War]]''
 
*''[[Space Quest IV: Roger Wilco and the Time Rippers]]'' (CD-ROM version)
 
*''[[Space Quest V: The Next Mutation]]''
 
  
===<br /> SCI2 ===
+
==== SCI2 ====
Often called ''SCI32'' (along with ''SCI3''), ''SCI2'' (2.xxx.xxx) runs in 32-bit mode by using the ''[[w:DOS/4G|DOS/4GW]]'' extender or by running it in Windows 3.1's Win32s. Most notable is the support of high-resolution 640×480 graphics, as well as better movie support. There are two known revisions, 2.000.000, and 2.100.002. Games include:
 
  
====<br /> SCI2 extensions ====
+
There are two known revisions, 2.000.000, and 2.100.002.
  
&nbsp;
+
[[Sierra Release List#SCI2|Games that use SCI2]]
  
====<br /> Games using SCI2 ====
+
<blockquote>
 +
===== SCI2 Extensions =====
  
(in order of release):
+
* <div id="WAV"></div> '''[[WAV]]''': PCM audio resources (external)
 +
</blockquote>
  
*''[[Gabriel Knight: Sins of the Fathers]]''
+
====<br /> SCI2.1 ====
*''[[Beast Within: A Gabriel Knight Mystery, The|The Beast Within: A Gabriel Knight Mystery|]]''
 
*''[[King's Quest VII: The Princeless Bride]]''
 
*''[[Leisure Suit Larry 6: Shape Up or Slip Out!]]'' (hi-res CD-ROM version)
 
*''[[Mixed-Up Mother Goose]] Deluxe''
 
*''[[Phantasmagoria]]''
 
*''[[Police Quest 4: Open Season]]''
 
*''[[Quest for Glory IV: Shadows of Darkness]]''
 
*''[[Shivers]]''
 
*''[[Space Quest VI: The Spinal Frontier]]''
 
*''[[Torin's Passage]]''
 
  
===<br /> SCI2.1 ===
+
&nbsp;<!-- Add SCI2.1 description here -->
  
&nbsp;
+
[[Sierra Release List#SCI2.1|Games that use SCI2.1]]
  
====<br /> SCI2.1 extensions ====
+
<blockquote>
 +
===== SCI2.1 Extensions =====
  
 
Early versions used a modified SCI2 kernel table. Most of these games maintain the "old school" Sierra graphics. Robot videos were introduced, in the DOS version of KQ7.
 
Early versions used a modified SCI2 kernel table. Most of these games maintain the "old school" Sierra graphics. Robot videos were introduced, in the DOS version of KQ7.
Line 212: Line 151:
 
<div id="RBT"></div>Middle versions include the finalized kernel function table, the addition of '''VMD''' video resource and a more heavy usage of '''RBT''' (robot) videos. Graphics in these games were generally either cartoonish or 3D pre-rendered from filmed actors.
 
<div id="RBT"></div>Middle versions include the finalized kernel function table, the addition of '''VMD''' video resource and a more heavy usage of '''RBT''' (robot) videos. Graphics in these games were generally either cartoonish or 3D pre-rendered from filmed actors.
  
====<br /> Games using SCI2.1 ====
+
* <div id="Robot"></div> '''[[RBT]]''': RBT (robot) video resources (external)
 +
* <div id="VMD"></div> '''[[VMD]]''': VMD video resources (external)
 +
</blockquote>
  
(in order of release):
+
==== SCI3 ====
  
* [[King's Questions]]
+
A.K.A. "SCI32" The last version, ''SCI32'' (3.000.000) could not only run under DOS or Windows 3.1, but also natively under Windows 95.
  
=== SCI3 ===
+
[[Sierra Release List#SCI3|Games that use SCI3]]
  
A.K.A. "SCI32" The last version, ''SCI32'' (3.000.000) could not only run under DOS or Windows 3.1, but also natively under Windows 95.
+
<blockquote>
 
+
===== SCI3 Extensions =====
====<br /> SCI3 extensions ====
 
  
 
Middle versions include the finalized kernel function table (which was also used in the SCI3 games)
 
Middle versions include the finalized kernel function table (which was also used in the SCI3 games)
 +
</blockquote>
 +
</blockquote>
 +
</blockquote>
  
====<br /> Games using SCI3 ====
+
==<br /> Non-SCI ==
 
 
(in order of release):
 
 
 
*''[[Leisure Suit Larry 7: Love for Sail!]]''
 
*''[[Lighthouse: The Dark Being]]''
 
*''[[Phantasmagoria: A Puzzle of Flesh]]''
 
*''[[RAMA]]''
 
 
 
&nbsp;
 
 
 
=== Non-SCI ===
 
  
 +
<blockquote>
 
Some Sierra games used SCI resources, such as graphics and sounds, but did not use the SCI script interpreter itself. Games include:
 
Some Sierra games used SCI resources, such as graphics and sounds, but did not use the SCI script interpreter itself. Games include:
  
 
*''[[Shivers Two: Harvest of Souls]]''
 
*''[[Shivers Two: Harvest of Souls]]''
 +
</blockquote>
  
&nbsp;
+
==<br /> Related software ==
== Related software ==
 
  
 +
<blockquote>
 
SCI editors can be used to uncover unfinished game elements that had been concealed in the game's resource files by the developer during the game's development. These hidden resources include unfinished artworks, puzzles, scenery, voiceover or music recordings as well as gags inserted by the development team. <ref>Beebe, Jess (2008-08-18) [http://www.adventureclassicgaming.com/index.php/site/features/374/ "Resource Quest: hidden treasures in Sierra’s adventure games"] Adventure Classing Gaming Retrieved 2008-09-14</ref> Examples of game titles from which such hidden resources have been uncovered include ''[[King's Quest V: Absence Makes the Heart Go Yonder]]'' (SCI1.1), ''[[Space Quest IV: Roger Wilco and the Time Rippers]]'' (SCI1.1), ''[[Leisure Suit Larry 6: Shape Up or Slip Out!]]'' (SCI1.1), ''[[King's Quest VII: The Princeless Bride]]'' (SCI2), and ''[[Space Quest 6: The Spinal Frontier]]'' (SCI2).
 
SCI editors can be used to uncover unfinished game elements that had been concealed in the game's resource files by the developer during the game's development. These hidden resources include unfinished artworks, puzzles, scenery, voiceover or music recordings as well as gags inserted by the development team. <ref>Beebe, Jess (2008-08-18) [http://www.adventureclassicgaming.com/index.php/site/features/374/ "Resource Quest: hidden treasures in Sierra’s adventure games"] Adventure Classing Gaming Retrieved 2008-09-14</ref> Examples of game titles from which such hidden resources have been uncovered include ''[[King's Quest V: Absence Makes the Heart Go Yonder]]'' (SCI1.1), ''[[Space Quest IV: Roger Wilco and the Time Rippers]]'' (SCI1.1), ''[[Leisure Suit Larry 6: Shape Up or Slip Out!]]'' (SCI1.1), ''[[King's Quest VII: The Princeless Bride]]'' (SCI2), and ''[[Space Quest 6: The Spinal Frontier]]'' (SCI2).
  
&nbsp;
+
===<br /> In-house Tool Screenshots ===
 +
 
 +
{| align="center" width="80%"
 +
|-
 +
| align="center"|[[Image:PicEdit.png|320px]]|| align="center"|[[Image:ViewEdit.png|320px]]
 +
|-
 +
| align="center"| SCI0 Picture Editor<br />with the mansion from [[The Colonel's Bequest]]<br />&nbsp;
 +
| align="center"| SCI View Editor<br />with the statue in front of the mansion from [[The Colonel's Bequest]]<br />&nbsp;
 +
|}
 +
 
 +
{| align="center" width="80%"
 +
|-
 +
| align="center"| <!-- [[Image:.png|320px]] --> || align="center"| [[Image:DouglassHerringsDesk.png|320px]]
 +
|-
 +
| align="center"| &nbsp; || align="center"| SCI View Editor on [[Douglass Herring|Douglass Herring's]] Desk
 +
|}
 +
</blockquote>
  
== See Also ==
+
==<br /> See Also ==
  
 +
* [[SCI Specifications|FreeSCI's SCI Specifications]]
 +
* [[Sierra Release List|List of the Sierra SCI games]]
 +
* [[:Category:Sierra Releases|Games using SCI (category)]]
 
* [[SCI Specifications|Sierra Creative Interpreter Specifications]]
 
* [[SCI Specifications|Sierra Creative Interpreter Specifications]]
* [http://www.scriptinterpreter.com/home Lance Ewing's SCript Interpreter]
+
* [[:Category:All SCI Releases|All SCI Releases]]
* [[w:Sierra's Creative Interpreter|SCI on Wikipedia]]
 
* [[:Category:All SCI Releases|SCI Releases]]
 
 
* [[:Category:SCI Resources|SCI Resources]]
 
* [[:Category:SCI Resources|SCI Resources]]
* [[w:SCUMM|SCUMM]]
 
 
* [[agiw:Adventure Game Interpreter|Adventure Game Interpreter]]
 
* [[agiw:Adventure Game Interpreter|Adventure Game Interpreter]]
* [[w:Game engine recreation|Game engine recreation]]
 
  
&nbsp;
+
==<br /> References ==
 
 
== References ==
 
  
 
<references/>
 
<references/>
 +
         
 +
==<br /> External Links ==
  
&nbsp;
+
* [http://www.scriptinterpreter.com/home Lance Ewing's SCript Interpreter]
== External Links ==
+
<!-- * [[w:Sierra's Creative Interpreter|SCI on Wikipedia]] -->
 
+
* [[agiw:Adventure Game Interpreter|Adventure Game Interpreter]]
*[http://web.archive.org/web/20110724131221/http://www.welovedosgames.net/article.php?article=The%20success%20of%20Sierras%20Creative%20Interpreter%20%28SCI%29 The success of Sierra's Creative Interpreter (SCI)] (web archive)
+
* [http://web.archive.org/web/20110724131221/http://www.welovedosgames.net/article.php?article=The%20success%20of%20Sierras%20Creative%20Interpreter%20%28SCI%29 The success of Sierra's Creative Interpreter (SCI)] (web archive)
<!-- *[http://www.welovedosgames.net/article.php?article=The%20success%20of%20Sierras%20Creative%20Interpreter%20%28SCI%29 The success of Sierra's Creative Interpreter (SCI)] -->
+
* [http://web.archive.org/web/20090221115724/http://freesci.linuxgames.com/ FreeSCI homepage] (web archive)
*[http://web.archive.org/web/20090221115724/http://freesci.linuxgames.com/ FreeSCI homepage] (web archive)
+
* [[scip:|The SCI Programming Community]]
*[http://sciprogramming.com The SCI Programming Community]
+
* [http://scistudio.sourceforge.net/ SCI Studio: The Complete SCI Game Development System]
*[http://scistudio.sourceforge.net/ SCI Studio: The Complete SCI Game Development System]
+
* [http://web.archive.org/web/20091012094351/http://agisci.classicgaming.gamespy.com/ The Ultimate AGI & SCI Web Site] (web archive)
*[http://web.archive.org/web/20091012094351/http://agisci.classicgaming.gamespy.com/ The Ultimate AGI & SCI Web Site] (web archive)
+
<!-- * [[w:Sierra's_Creative_Interpreter|SCI on Wikipedia]] -->
 
* [http://www.dmoz.org/Games/Video_Games/Adventure/Graphical_Adventures/Design_and_Development/Authoring_Systems/Sierra/SCI/ Sierra's Creative Interpreter] on the [[w:Open Directory Project]]
 
* [http://www.dmoz.org/Games/Video_Games/Adventure/Graphical_Adventures/Design_and_Development/Authoring_Systems/Sierra/SCI/ Sierra's Creative Interpreter] on the [[w:Open Directory Project]]
*[http://sierrahelp.com/Patches-Updates/NewSierraInstallers.html Modern installers for the Sierra AGI and SCI games]
+
* [[shp:Patches-Updates/NewSierraInstallers.html|Modern installers for the Sierra AGI and SCI games]]
*[http://www.squirtthecat.com/ Updates to run SCI3 based games on XP/Vista]
+
* [http://www.squirtthecat.com/ Updates to run SCI3 based games on XP/Vista]
 +
* [[mobygrp:game-engine-sierras-creative-interpreter-sci|SCI on MobyGames]]
  
 
&nbsp;
 
&nbsp;
  
 
[[Category:ToDo Pages]]
 
[[Category:ToDo Pages]]
<!--[[Category:1988 software]]-->
+
<!--[[Category:Game Engines]]-->
<!--[[Category:Adventure game engines]]-->
+
<!-- [[Category:Video Game Development Software]] -->
<!--[[Category:Sierra Entertainment]]-->
+
<!-- [[Category:Interpreters]] -->
<!--[[Category:Video game development software]]-->
 

Latest revision as of 11:46, 4 February 2023

Sierra Creative Interpreter (SCI)


SCI
Dates Used: 1988-1996
Company: Sierra
Original Developer(s):  Jeff Stephenson






Description

The SCript Interpreter or later, Sierra Creative Interpreter, (SCI), or as it later became known as, Sierra Creative Interpreter, is the scripting language created by Jeff Stephenson for Sierra On-Line, which was used between the years of 1989 to 1997. It superseded Sierra's earlier interpreter or engine, AGI, and the runtime environment for such adventure games. SCI was used to create such games as King's Quest IV to VII, Space Quest III to 6, Quest for Glory I to IV and Gabriel Knight I and II, and the runtime environment for these games. Although ports for the Amiga, Atari ST, Macintosh and PC-9801 platforms exist, the primary development was for MS-DOS and Windows on the IBM PC platform.


Design

While AGI was a procedural language, SCI is completely object-oriented. For more detailed information, see the SCI Specifications.


Versions

Although continuously developed between 1988 and 1996, five major versions can be isolated:

SCI0

First used for King's Quest IV: The Perils of Rosella in 1988, SCI0 (0.000.xxx) allowed for 320×200 graphics with 16 colors as well as a music-card compatible soundtrack. It also supported parser-based keyboard input which a game could be scripted to use if it wishes to do so (non-adventure games usually didn't).

Games that use SCI0

SCI0 Resources

The resource types of SCI0 can be roughly grouped into four sets:

SCI0.1

Quest for Glory II has been falsely identified by some as SCI1, but is actually SCI01. Perhaps this is because its debug reports SCI version 1.000.*** even when the interpreter itself is 0.001.0**.


Games that use SCI0.1

SCI0.1 Extensions

SCI01 differs only in very few respects: It uses different compression algorithms and a different type of sound resources, which may contain digitized sound effects (PCM data). The basic music data, however, still resembles MIDI data.

Also, scripts are split into two parts when loaded: A dynamic part, which resides in the heap as before, and a static part, which is stored externally to conserve heap space.[1]

SCI1

Released in 1990, the most notable improvement in SCI1 (1.000.xxx/T.A00.xxx) was the support of 256 color graphics, still at a resolution of 320×200; EGA 16 color graphics were still available (games were usually sold in separate 16 and 256 color versions). Some people prefer to call the 16-color SCI1 interpreters "SCI01". With the shift to SCI1, Sierra began using a digitized painting process for background artwork, rather than the pixel-by-pixel process of previous engines: the difference is readily apparent if one compares, for example, King's Quest 4 against King's Quest 5. SCI1 also introduced a Point&Click interface (a mouse-driven, icon-based), which was implemented by the game's scripts, not the SCI1 interpreter. This is also how Shane Cloud (Cloudee1) of SCI Programming created a Point&Click interface to the SCI0 template game for SCI Studio and SCI Companion 3.

The version numbering scheme is somewhat confusing for the reason that the third number in the version string (the build number) has only three digits, even though four are needed. For example, the game Space Quest 4 Version 1.052 ships with an interpreter labeled "1.000.753", whereas the game Conquests of the Longbow Version 1.0 ships with an interpreter labeled "1.000.168"; nevertheless, the latter interpreter is newer because the build number is actually 1168, not 168. Also, in some cases the "1.000" is replaced with "T.A00", which however does not indicate a separate development fork.

Games that use SCI1

SCI1 Extensions

SCI1 introduced new concepts like Palettes, scaled bitmap images and several new compression algorithms. In SCI1.0, the resource limit was first increased to 16383[2], and then to 65535 in SCI1. Because of the inherent limitations of the FAT file system the primary target OS of Sierra's SCI interpreter was limited to, patch file names were altered accordingly, with the resource number (not padded) before the dot and a three-letter resource ID behind it; examples are "0.scr" or "100.v56".

The complete list of suffixes is as follows:

  • 80: V56: 256 color views
  • 81: P56: 256 color background pictures
  • 82: SCR: Scripts (static data)[3]
  • 83: TEX: Texts (deprecated in favor of messages)
  • 84: SND: Sound data (MIDI music)
  • 85: No extension: Type 0x85 resources are 'memory' resources, which are only used internally.
  • 86: VOC: Vocabulary (not used)
  • 87: FON: Fonts
  • 88: CUR: Mouse cursors (deprecated in favor of v56-based cursors)
  • 89: PAT: Audio patch files
  • 8a: BIT: Bitmap files (purpose unknown)
  • 8b: PAL: 256 color palette files
  • 8c: CDA: CD Audio resources
  • 8d: AUD: Audio resources (voice and digital sound effects)
  • 8e: SYN: Sync (purpose unknown)
  • 8f: MSG: Message resources: Text plus metadata
  • 90: MAP: Maps location of resources for interpreter
  • 91: HEP: Heap resources: Dynamic script data[3]
  • ??: SEQ: Sequence resources for cut scenes

SCI1.1

Apart from considerable internal changes, SCI1.1 (1.001.xxx) added support for animated movie sequences (first used in KQ6) as well as scaling sprites: characters would become smaller as they walk into the distance, giving a pseudo-3D effect. (The interpreters from some early SCI1.1 games bear a "2.000.000" version stamp; this is most likely an inconsistency which should be ignored.)

Separate 16-color packages were no longer available; EGA owners instead would be presented a 640×200 graphics display that simulated 256 colors via dithering.

Games that use SCI1.1

SCI1.1 Extensions

SCI 32

Often called SCI32 (along with SCI3), SCI2 (2.xxx.xxx) runs in 32-bit mode by using the DOS/4GW extender or by running it in Windows 3.1's Win32s. Most notable is the support of high-resolution 640×480 graphics, as well as better movie support.

SCI2

There are two known revisions, 2.000.000, and 2.100.002.

Games that use SCI2

SCI2 Extensions
  • WAV: PCM audio resources (external)


SCI2.1

 

Games that use SCI2.1

SCI2.1 Extensions

Early versions used a modified SCI2 kernel table. Most of these games maintain the "old school" Sierra graphics. Robot videos were introduced, in the DOS version of KQ7.

Middle versions include the finalized kernel function table, the addition of VMD video resource and a more heavy usage of RBT (robot) videos. Graphics in these games were generally either cartoonish or 3D pre-rendered from filmed actors.

  • RBT: RBT (robot) video resources (external)
  • VMD: VMD video resources (external)

SCI3

A.K.A. "SCI32" The last version, SCI32 (3.000.000) could not only run under DOS or Windows 3.1, but also natively under Windows 95.

Games that use SCI3

SCI3 Extensions

Middle versions include the finalized kernel function table (which was also used in the SCI3 games)


Non-SCI

Some Sierra games used SCI resources, such as graphics and sounds, but did not use the SCI script interpreter itself. Games include:


Related software

SCI editors can be used to uncover unfinished game elements that had been concealed in the game's resource files by the developer during the game's development. These hidden resources include unfinished artworks, puzzles, scenery, voiceover or music recordings as well as gags inserted by the development team. [4] Examples of game titles from which such hidden resources have been uncovered include King's Quest V: Absence Makes the Heart Go Yonder (SCI1.1), Space Quest IV: Roger Wilco and the Time Rippers (SCI1.1), Leisure Suit Larry 6: Shape Up or Slip Out! (SCI1.1), King's Quest VII: The Princeless Bride (SCI2), and Space Quest 6: The Spinal Frontier (SCI2).


In-house Tool Screenshots

PicEdit.png ViewEdit.png
SCI0 Picture Editor
with the mansion from The Colonel's Bequest
 
SCI View Editor
with the statue in front of the mansion from The Colonel's Bequest
 
DouglassHerringsDesk.png
  SCI View Editor on Douglass Herring's Desk


See Also


References

  1. The background for this is that heap space started running out in Quest for Glory 2. In order to compensate for this, changes were made to both the script library and the interpreter.
  2. This appears to be the limit- none of the SCI1.0 games tested used resource numbers beyond 16383
  3. 3.0 3.1 The script resource split introduced in SCI01 was incorporated into the actual resource layout in SCI1.Requires Citation
  4. Beebe, Jess (2008-08-18) "Resource Quest: hidden treasures in Sierra’s adventure games" Adventure Classing Gaming Retrieved 2008-09-14


External Links