Revelations From Exploring Disk Images
Introduction
Exploring the disk images created for a digital archival project has been revealing some undisclosed information about the Sierra game development and disk production process. These are from stings within fragments found in the images from the original disks.
Lance Ewing
These Discoveries were uncovered by Lance Ewing.
Lance Ewing wrote:I've found some more data at the end of another partially used cluster that is further evidence of it having previously had BRIEF macros on it. The data appears to be two and a bit directory entries, which I think is suggesting that this cluster was previously used as a subdirectory that stored entries for BRIEF macros. The partial macro text for the BUFFERS.M file would have been one file in that sub-directory, and these two and a bit directory entries are suggesting that the sub-directory also contained RESTORE.M, RESTORE.CM and ROUTINES.CM. The size of the ROUTINES.CM file (according to the directory entry data) exactly matches the size of the file as shown in the following guy's copy of BRIEF here:
http://koti.mbnet.fi/juhal87/juhallebackupit/taimiDOSclevy/BR/MACROS/
The above appears to be version 2.1 of BRIEF from about 1988.
For the other 2 files in the sub-directory directory entry data, the sizes do not exactly match the 2.1 versions, but they are very close in size (18215 vs 18318 in one case, 4004 vs 4054 in the other). Given the sizes are slightly larger, and given that SQ3 came out in 1989, I'm tempted to suggest that the version of BRIEF that the files related to might have been slightly newer that 2.1, but for all intents and purposes, I think we can say that the above URL linking to a copy of BRIEF that some guy has kindly placed there for all to view on the Internet is roughly what would have been in use at the time that the first SCI games were coming out. And I think it's quite likely that Sierra were using that editor.
I've done a bit of reading on BRIEF and it was apparently "the" programmer's editor of the 80s. It was very popular for developers building DOS apps at that time.
One of the things it had was a LISP-like macro language, which all of those .M macro files are written in. The .CM files I think are the compiled versions, and I read someone online that its compiled to a bytecode of some sort. I wonder to what degree this LISP-like macro language influenced Jeff when he designed the SCI language. Sierra may have been using BRIEF pre-SCI, i.e. in the AGI days, and given that BRIEF is a reconfigurable editor (done via change the macros), then they were probably quite used to writing in that type of language prior to using SCI.
I'm guessing that the name of the partial sub-directory I found on the SQ3 disk was called MACROS, as shown in the above install of BRIEF. And if the macros were on the disk, chances are that a lot of the other files for BRIEF were also on there. I might be able to find evidence for this but as yet I have only been looking for recognisable text and not binary data."
According to an ex-Sierra employee that Lance contacted: Citation Required[2]
"Not surprising to find traces of Brief considering it was the editor of choice of ALL programmers at Sierra until it was obsoleted by the move to Windows.
This exploration is even revealing the names of some of the original development tools: From KQ4 and LSL2 there is a PE.EXE mentioned, a SC.EXE and a MESSAGES.EXE. I think these might have been some of their tools, perhaps PE for Picture Editor and SC for Script Compiler.
Lance Ewing wrote:I had some interesting comments from the ex-Sierra employee regarding the directory entry tables I'm finding. He confirmed that SC.EXE was the name of the script compiler tool, but he claims that MESSAGES.EXE was a message compiler that wasn't used until about 1992, perhaps initially with QFG3. I think he might be remembering incorrectly though because this directory entry table has a date on it of Sept 1988 against MESSAGES.EXE and that makes sense given that LSL2 was released in 1988. Perhaps there was an earlier version of MESSAGES.EXE that was an earlier incarnation of what he recalls.
It does seem to reveal something of the process they used for production. Anyone that wants to see what the Sierra Developers used for scripting these games you can find BRIEF here http://www.oldskool.org/guides/texteditors. It should run OK in DOSBox. It is interesting to note that the BRIEF macro language was [w:Lisp %28programming language%29|LISP]] like, just as the SCI scripting language was.
It also appears that they used FastBack for a backup utility.
Examples
Space Quest II
From the Space Quest II disk comes this fragment:
Code:ark (atoi (substr button_text (+ (rindex button_text ";") 1)))) (_dialog_esc) (returns TRUE) ) ) ) )A bit of Googling reveals this is from a BRIEF macro. And here is the actual code:
Code:(macro _bookmark_action ( (int event_type) (string button_text) (get_parm 0 event_type) (switch event_type DIALOG_MOVE_MENU ( (get_parm 2 button_text) (if (index button_text ";") (returns TRUE) ;else (returns FALSE) ) ) DIALOG_PICK_MENU NULL DIALOG_F10 ( (get_parm 2 button_text) (= _bookmark (atoi (substr button_text (+ (rindex button_text ";") 1)))) (_dialog_esc) (returns TRUE) ) ) ) )http://koti.mbnet.fi/juhal87/juhallebackupit/taimiDOSclevy/BR/MACROS/DIALOG.M
King's Quest 1 SCI
And this from King's Quest 1 SCI:
kq1.SC 14141 12-Sep-1990 13:38:58 [cluster=5810] RM270.SC 24553 03-Oct-1990 09:25:40 [cluster=8035] RM360.SC 33038 12-Sep-1990 13:42:16 [cluster=5735] RM450.SC 16780 25-Sep-1990 09:13:34 [cluster=5340] RM898.SC 2748 12-Sep-1990 09:43:04 [cluster=5639] RM260.SC 50661 07-Sep-1990 14:50:46 [cluster=5682] RM340.SC 2178 07-Sep-1990 14:52:08 [cluster=5709] RM370.SC 16338 07-Sep-1990 15:03:22 [cluster=5863] RM250.SC 41033 01-Oct-1990 18:20:58 [cluster=8050] RM200.SC 27202 01-Oct-1990 15:22:16 [cluster=1791]The original SCI scripts had the ".SC" extension just as SCI Studio/Companion uses.
A tool to facilitate this exploration is in development. It is starting to be an exciting time for AGI/SCI again with a number of new tools for digital archival efforts and for AGI/SCI game development.