By Enrico Rolfi (Endroz)
TraduSCI was made by Enrico Rolfi and is open source (GPL license), it can be freely used and modified. This program is distributed without any warranty and the author does not respond of eventual damages provoked in any way by its use.
In this SCI1.1/SCI32 translation package the following third party tools are also present: SCI Resource Dumper by Vladimir Gneushev, that is supplied in a version from me purposely modified. SCI Decoder VGA is by Carl Muckenhoupt and has been modified by me as well.
Audio.exe for playing game voices is a tool from the SCI1Utils.7z package available at the SCI Viewer web page.
WinGraph32 is a version for Windows of the VCG open source tool, compiled by DataRescue and whose sources are available from their web site.
None of these persons (myself included) is in any way affiliated to Sierra, that holds copyright on SCI technologies and on all the games listed in this handbook.
This handbook speaks about SCI and teaches how to translate a SCI game.
This is made much simpler by the use of these tools of translation. In particular SCIaMano offers a file format which is backward compatible and usable with every SCI game.
Lets start opening SCIaMano and selecting the command Open Volume…
Now we will have to select a file whose name is typically RESOURCE.MAP, that is a map of all the files contained in the Volume (typically called RESOURCE.000).
At this point we will be able to select from a list the file of Messages (with extension .MSG) that we want to modify. Messages are simply the sentences visualized in the game. If problems occur during this operation, it will be possible to use another extractor tool for the data in the volume, the program named SCI Resource Dumper, as described in the Appendix of this handbook.
Once chosen and loaded the file that we want to modify, it is suggested to save a copy in a working directory. For being able to use these files in the game, therefore replacing the original sentences with our translations, it will be enough to place these files in the same directory of the game, or in an appropriate directory PATCHES where present, or wherever specified in the configuration file RESOURCE.CFG/ RESOURCE.WIN of the game.
Please pay attention cause there might already be other Messages files in the directory of the game, then in order to create our translation we will have to translate these latter in place of the old ones extracted from the volume. We can load them in SCIaMano using the command Load file…
Once loaded a file, we will be shown a list of all the sentences in the file, with a series of labels (initially numerical).
The labels of the list (noun, verb, case) identify the event as a result of which the current message will be visualized in the game.
As an example if we have the sentence “I cannot open the door because it is locked!”, then the noun could be “door”, the verb “open” and the case “the door is locked”. Often we will need to associate to every number a symbolic name, for better clarity.
The label “talker” identifies the game character that will read the sentence associated to the event. The label “sequence” is used when the occurring of an event triggers the visualization of more than a single sentence; that typically happens in a cutscene, for example.
The Index label simply represents the order in which the sentences are stored in a file.
It is possible to order messages by any of these labels, by clicking on the respective column of the list. A clearer vision may be obtained, for example, of all the sentences that involved a particular noun.
Names can be assigned to every number that identifies a label, using the fields in the bar at the top of the interface. This modification will affect all the sentences that share the same label number. It is possible, moreover, from the Labels menu, to export the associations “number = name” in a text file in order to Import them in another Msg file (but consider that this only makes sense for certain types of labels. Talkers and Verbs are surely of global meaning, while Nouns have different numbers in every file.)
But the names of the nouns can be imported from an heap file (extension .HEP), using the appropriate menu command and selecting a Volume as made previously, or from a standalone .hep file.
For better clarity, it is possible to visualize the sentences in a graph, that is in the format of WinGraph.
Note: if the graph window is left open and a sentence is modified, these modifications will not be updated in the graph automatically!
In order to visualize a message for more than a single event, it can be cloned, thus assigning the same text to a different event. The messages whose text is not modifiable are clones.
In order to modify a clone, select the Cloning command in the Navigation menu. Selecting this same command it is also possible to create a new clone, in case the sentence currently selected was not a clone already.
If the cloned text is not that of a single sentence, but rather that of a sequence of sentences, then you will be offered the opportunity to duplicate the entire sequence of sentences so as to be able to modify them all. The alternative to this will be to banally replace the entire sequence with a single sentence, that -obviously- is not advised.
After doing some cloning operations, it is recommended to verify in game the functionality of the sentences being involved, because in some cases of unconventional use of the scripts, it would be possible to cause fatal errors.
One of the problems inherent to cloning is that clones typically references directly to the audio of its original sentences. When a clone gets transformed to a normal sentence by the user, it is necessary to also specify a new audio reference for it, since the reference to the original sentence is gone. This is made in automatic by the program, which creates a copy of the reference to the original audio. But for that to be possible it is necessary to modify the file that contains the references to the audio, that is an Audio MAP file (extension .map, not to be confused with the maps of the Volumes). In order to do this you can -again- load a MAP file from a Volume.
Obviously, should our game not offer audio voices, then we won't have any MAP files to modify.
When saving changes to a message file with a MAP loaded inside, a MAP file will be created in the same directory of the MSG, also overwriting a potentially existing MAP file with the same name!
ATTENTION: For games with voices, if you choose not to modify the .MAP file during the transformation of a clone, the sentence will never be visualized in the game! The game will not find the audio for the sentence, and therefore the sentence will disappear quickly from the screen. In order to verify that all the sentences in our file of messages have a reference in the file of map of the audio, you can choose Verify messages in Map... from the Audio menu and then select the .map that you will use in the game. A list of eventual omissions will be shown. Obviously, clones will figure between the omissions, and so will the sentences that are not spoken in the game, like those written in the interfaces -and this is totally normal. Once a MAP file is loaded, it is also possible to load the RESOURCE.AUD file that contains the waveforms, by means of the appropriate command in the Audio menu. From the same menu it will also be possible to play the voices through your speakers!
The glossary is a text file in which we can take note of all the translations of important words, names, places and any other thing that we want the program to verify for us. In order to add a word to the glossary, just select it in both the field MESS and the field TRANS and choose the command "Add selection" from the Glossary menu. Definitions in the wordlookup.txt file can also be added manually, but the glossary must first be created and it must be in the same directory of the Messages file.
When we will choose to verify the words in the current file of messages -through the menu command “Check words”- the program will analyze every sentence and will count every occurrence of each definition, and then try to find them in the translations text. SCIaMano simply checks that N occurrences of each definition are present N times in the corresponding translated sentence.
This mechanism is mostly reliable, although it can sometimes get confused as it does not try to match the exact words (i.e., it would assume both lampaDARIO and Dario as valid occurrences of Dario).
Other functions are available from the File menu.
It is possible to Import the sentences directly from another Messages file using “Import from Message”, or to compare the sentences in the current file with those of another file using “Compare with Message”.
Moreover it is possible to export all the sentences to a text file in order to import them back later on. As an example, it is good practice to export the sentences in order to perform a grammar check using a word processor, and then import them back in.
Basically SCI does not offer accented characters in the Font files used by the games, so we will have to supply them using alternative font files. Often it is possible to find them in other SCI games which were already translated (like German versions). Some of these fonts are included in the Fonts directory of TraduSCI. You can rename them accordingly to replace them to those used by the game (i.e. we want to replace the 0.fon, then we can rename one of the fonts that I have supplied as 0.fon and put it in the game directory.)
As an alternative, it is possible to create our own font or to modify the original ones of the game being translated, using third party programs, like SCI Studio by Brian Provinciano.
The code page used by SCI games is the IBM437 shown above.
It is possible to view and to modify images using FotoSCIhop, the supplied program. You can load .p56 and .v56 files using the procedure previously described of reading from a Volume, or you can load a single file.
We can use the arrow keys of our keyboard in order to slide between the several images of animated sequences.
Displaying images is useful in order to understand which context the contained sentences in a Message file are associated with. Just by selecting a .p56 file that has the same index of our .msg file of interest, we will be able to collect more information for a particular room of the game.
Modifying images is way more complex, and you must use a third party drawing software that is trusted to not compromise some aspects of our original images.
Color lookup table
A SCI image is always associated to a Color Table. This palette is essential for the correct visualization of an image, therefore the FotoSCIhop tool will not allow you to modify the colors of a palette, or at least it will try to avoid doing so. A modification might indeed cause problems in the visualization of the images in the game. Let’s take, for example, a typical SCI Palette like the one shown in the above figure; the last color (that, among other things, is not defined in the table, as indicated by the cross) is transparent, and represents an area that must not appear in the image (it will be replaced by other images). Now, try to think what would happen if this color would be changed; the blue areas would also appear in the game!
The first colors in the sample image, those enclosed by the green rectangle, are invariant almost in all the rooms of the game, because they are the colors used to draw the characters of the game.
The last red colors are the so-called translucent colors. The objects drawn using those colors will appear like shadows on the underlying image.
However these are just general rules, but they can change from game to game. For example not every SCI game has support for translucent colors or the same number of constant colors. Therefore it is important to try to preserve the characteristics of the original image palette.
Some files, also, do not have an associated color table. In these cases, FotoSCIhop automatically creates a fake color table made of grays (that will not be included in the file when saving changes). A table of colors from the corresponding menu command can eventually be inserted (but, unlike the table of grays, it will be saved within the file in case of modifications).
Poorly designed software, like Microsoft Paint for example, tend to change the order of the colors used in the image; but also professional programs like Adobe Photoshop (Adobe has surely taken this name from our tool!) can be inadequate, since they are studied to work on 24 bit or 32 bit graphics, and not on 256 colors, palette-based graphics.
A similar situation could happen in an inadequate software: suppose that the color 250 is blue, but also color number 15 has the exact same tonality of blue, and that the unreliable drawing software associates all the blues of the same tonality to color number 15 of the palette. Suppose that color 250 was transparent in the game, while color 15 was not. Then, in the game, the blue colors will also appear, where they should have been transparent instead.
It is therefore suggested to use software that respects the order of the colors duplicated in the palette. Following is a list of freeware software that responds to this need:
-iDraw Chara Maker
As an alternative you can also use the following shareware tools:
In order to modify an image, it must be exported to a Bitmap file by means of the Image menu. After the exported Bitmap file has been modified, it must be imported again from the same menu. Then a new file can be created or you can simply save changes to the original file.
An important thing to remember is that SCI files often have various images inside, that obviously will have to be modified where necessary. On the bar on top of the program it's indicated how many cells and cycles are contained in the current file (every cycle is composed of a number of cells).
Modifying a script is a very rarely necessary operation to being able to translate a SCI game. In some cases, like that of Quest for Glory I (VGA), some strings are present inside the Heap that must be translated, and this can be made without problems with an hex editor, using the usual techniques of “modify-without-changing-the-length-of-the-original-word” and of “adding-blank-spaces-if-the-new-word-is-shorter”.
Relatively to SCI32, a program is available in the TraduSCI package that is named SCI Dumper Script and that allows to disassemble the scripts.
Remember that all the files that you modify (MSG, MAP, P56, V56, FON, SCR, HEP, and whatever) must be placed in the directory of the game to be used.
Now there is a list that offers a general overview on the several possibilities offered by the existing tools, at the moment that I’m writing this handbook. Some of these programs, those so to speak “essential”, have been already included in TRADUSCI!
SCI Resource Dumper by Vladimir Gneushev allows you to extract data from the majority of SCI1.1 and SCI32 games. For games unsupported by SCI Resource Dumper we will use the program SCI Decoder VGA, that it is also good to visualize the images. The version that I have included has a few modifications from the original one of Carl Muckenhoupt. All these programs can be found in the Tools directory.
A program that I have not included but that is useful in order to modify the Fonts, is SCI Studio by Brian Provinciano. Another product of Brian that I have included instead is SCI VGA View Editor, that can be used for Eco Quest I.
|Eco Quest I||No||No*||Extended||Resource file have a number from 0 to 3 as extension.|
|Quest for Glory I (VGA remake)||Yes||Yes||Base||SCIResDump must be 'forced' with the following parameters /m3 /v1 /p1 from command line.|
|Police Quest I (VGA remake)||No||No*||Base||
SCI Decoder is only able to display object images, not backgrounds.
For MSGs, sciresdump must be forced using these parameters /nRESOURCE.MSG MESSAGE.MAP -1
|Quest for Glory III||Yes||Yes||Base||-|
Island of Dr. Brain 1
Island of Dr. Brain 2
|King's Quest 6||Yes||Yes||Base||-|
|Space Quest IV (windows)||?||?||?||Not verified.|
|Eco Quest II||Yes||Yes||Extended||-|
|Space Quest 5||Yes||Yes||Base||-|
|Pepper's Adventures in time (aka Twisty History)||?||?||?||Not verified.|
|Laura Bow 2||Yes||Yes||Base||SCIResDump must be 'forced' with the following parameters /m3 /v1 /p1 for 'RESOURCE.MSG'.|
|Quest for Glory III (Italiano)||Yes||Yes||Extended||-|
|Leisure Suit Larry 6 (dos/win)||Yes||Yes||Base||-|
- You can use SCI Decoder VGA to display the images.
|Quest for Glory IV||Yes||Yes||Base||SCIResDump must be 'forced' to SCI32 mode using the following parameters /m3 /v3 /p3 from the command line.|
|Quest for Glory IV (German)||Yes||Yes||Extended||SCIResDump must be 'forced' to SCI32 mode using the following parameters /m3 /v3 /p3 from the command line.|
|Gabriel Knight (Floppy e CD)||Yes||Yes||Extended||SCIResDump must be 'forced' to SCI32 mode using the following parameters /m3 /v3 /p3 from the command line.|
|Torin's Passage||?||?||?||Not verified.|
|Gabriel Knight 2||Yes||Yes**||?||-|
|King's quest VII||Yes||Yes**||?||-|
|Quest for Glory IV (CD)||Yes||Yes||Base|
|Shivers (Windows)||?||?||?||Not verified.|
|Phantasmagoria 2||?||?||?||Not verified.|
|Leisure Suit Larry 7||Yes||Yes**||Extended||Resource files are named as 'RESMAP.000' and 'RESSCI.000'.|
|Shivers 2||?||?||?||Not verified.|
|Space Quest 6||Yes||Yes**||?||See Notes below...|
Note: this list is not complete and will be likely completed at future time. In columns, SRD stands for SCI Resource Dumper.
- It occurs sometimes that View files contain a strange structure named "Link". You'll be able to edit the images, but any LINK structure will not be saved.
You have to extract game data using SCI Resource Dumper or SCI Decoder VGA. Depending from the version of your game, its data might be contained in different types of archives, but usually you will have a 'RESOURCE.MAP' file (name might slightly differ) which stores references to actual data which is then contained inside one or more numbered files like 'RESOURCE.000'. Sometimes, there are also a 'MESSAGE.MAP' and 'RESOURCE.MSG' files which contains only Message data (which are the strings in the game that you have to translate). You have to tell the program which files to process, and a few directions on their formats. To make things easier, copy your resource files into SCIResDump folder, then in Windows, open a Command Prompt shell and type:
SCIResDump /m<SCI_Version> /v<SCI_Version> /p<SCI_Version> /h /n<Volume> <Resource_Map> -1
where <SCI_Version> should be 1 or 3 and depends on the version of the SCI game you're about to extract (for SCI32 games is 3, for earlier 1); those three arguments identifies the format of data, thus you can play with them if something goes wrong. Also refer to the previous compatibility table for hints. (Notice: sometimes you can omit these parameters and SCIResDumper will try to guess the format by itself, however it's safer to specify them). Replace <Volume> with the path of the file with data, usually 'RESOURCE.000', and <Resource_Map> with the path to the resource map, most likely 'RESOURCE.MAP'. That's what you should get:
SCIResDump /m3 /v3 /p3 /h /nRESOURCE.000 RESOURCE.MAP -1
and the result, if nothing goes the wrong way, will be hundreds of files extracted into the program folder. Now with much patience (luckily enough, this only has to be done once) select them all in Windows and store them in a separate folder.
If the game you are about to translate is not supported by SCI Resource Dumper, you may want to use SCI Decoder VGA instead. To do so, you have to copy all the archives you want to extract files from (usually 'RESOURCE.MSG', 'MESSAGE.MAP', 'RESOURCE.000' and 'RESOURCE.MAP') into the program folder and run it. On the left you'll get a list of all the data from the loaded archive, all of which may be extracted in block by hitting the X key. Should you have the need to only extract one single file, just use the D key instead. Then, by pressing Enter you can display an image, if one is selected of course. Even when using SCI Decoder it is heavily suggested to store extracted files into a separate folder, as described earlier. When a separate MESSAGE archive is present, you'll have to repeat this operation once again, just remember to drag out of the program folder the 'RESOURCE.MAP' file previously processed or the program will try to extract data from that one again.