with significant contributions from Petr Vyhnak and Vladimir Gneushev
In order to allow games to be both distributeable and playable from several floppy disks, SCI was designed to support multi-volume data. The data
itself could therefore be spread into separate files, with some of the more common resources present in more than one of them. The global index for
these files was a "resource.map" file, which was read during startup and present on the same disk as the interpreter itself. This file contained
a linear lookup table that mapped resource type/number tuples to a set of resource number/ offset tuples, which they could subsequently be read from.
The SCI0 map file format is pretty simple: It consists of 6-byte entries, terminated by the sequence 0xffff ffff ffff. The first 2 bytes, interpreted as little endian 16 bit integer, encode resource type (high 5 bits) and number (low 11 bits). The next 4 bytes are a 32 bit LE integer that contains the resource file number in the high 6 bits, and the absolute offset within the file in the low 26 bits. SCI0 performs a linear search to find the resource; however, multiple entries may match the search, since resources may be present more than once (the inverse mapping is not injective).
SCI0 resource entries start with a four-tuple of little endian 16 bit words, which we will call (id, comp_size, decomp_size,
method). id has the usual SCI0 semantics (high 5 are the resource type, low 11 are its number). comp_size and decomp_size
are the size of the compressed and the decompressed resource, respectively. The compressed size actually starts counting at the record position of decomp_size, so it counts
four bytes in addition to the actual content. method, finally, is the compression method used to store the data.
Top
You can help keep The Sierra Help Pages and its affiliates alive by helping to defray some of the costs of hosting this site. If it has been of help to you, please consider contributing to help keep it online.Thank you.
The Sierra Help Pages | Sierra Game Help | Walkthroughs | Hints, Tips & Spoilers | Utilities | Links | SHP Forums | Search
© 2013 to present The Sierra Help Pages. All rights reserved. All Sierra games, artwork and music © Sierra.