Community

SCI Programming => SCI Development Tools => Topic started by: OmerMor on June 17, 2016, 07:41:20 PM

Title: Sierra's Internal SCI Tools
Post by: OmerMor on June 17, 2016, 07:41:20 PM
Hi,
here's my collection of Sierra's internal SCI tools (https://drive.google.com/file/d/0B5j-_ZMS8_UoUFFGTVVUbTY3cVU/view?usp=sharing&resourcekey=0-vvoJXsoV55WI33BoER8baw) (I have some AGI tools as well - stay tuned).
It's far from complete, but it spans from as early as 1987 to as late as 1996.
Some of the tools are available in several versions. For these, I suffixed their name with an underscore (_) and their version or their date (in case no version was available), e.g. SC_4.100.EXE.
Some of the tools had a protection that only allowed them to be run from a specific network share. I removed that protection.

Here're the descriptions for the tools that have it:
AMIGAPAL.EXE -
ATOS.EXE     - AGI to SCI source code translator
AUDADD.EXE   - Add audio header
AUDAIFF.EXE  -
AUDBITS.EXE  -
AUDCHANS.EXE - AUDCHANS converts stereo audio files to mono or visa-versa or reports the number of channels that audio files currently have.
AUDCHECK.EXE -
AUDCOMP.EXE  - Audio compress
AUDDCOMP.EXE - AUDDCOMP is used to decompress audio volumes during install.
AUDDISK.EXE  - Flag AUD files for disk-resident playback
AUDMAP.EXE   -
AUDMEM.EXE   - Flag AUD files for memory-resident playback
AUDPCM.EXE   - Decompress AUD to SOL files
AUDPLAY.EXE  - Audio player
AUDRATE.EXE  - Change or report rate of AUD files
AUDSCRAM.EXE - Audio scrambler
AUDSOL.EXE   -
AUDSTRIP.EXE - Strip audio header
AUDSYNC.EXE  - Remove sync editor info
AUDUCOMP.EXE - Audio decompress
AUDUSCRM.EXE - Audio unscrambler
AUDWAVE.EXE  - Rewrite AUD files in Microsoft's WAVE format
BASE36.EXE   - BASE36 converts message components into base-36 filenames or vice-versa.
BASENAME.EXE -
BETAW.EXE    -
BIT2CEL.EXE  - Convert 16 color bitmap to 16 color cel
BIT2LBM.EXE  -
BLAST.EXE    - Sound Blaster Record/Playback Utility
BUILDADL.EXE - Builds 3.PAT for use with Sierra's ADL (128 patch) driver.
BUILDGEN.EXE - Builds 4.PAT for use with Sierra's GSMIDI driver.
BUILDTDY.EXE - TANDY PATCH EDITOR
CE.EXE       - Cursor Editor
CEL2BIT.EXE  -
CEL2LBM.EXE  - Converts 256 Color Cel to LBM file
CEL2NEW.EXE  -
CEL2PCX.EXE  - Converts Cel to PCX file
CEL2RE.EXE   - Converts 256 Color Cel to Targa 16 file (.T16) for RE
CEL2TGA.EXE  - Converts 256 Color Cel to Targa 16 file (.T16)
CHKVIEW.EXE  - Checks integrity of view files
CVTPAL.EXE   -
CVTSCI.EXE   - Converts SC scripts to new syntax
DC.EXE       - Word derivative Compiler
DIMWIT.EXE   -
DIMWITSX.EXE -
DROPTGA.EXE  -
FE.EXE       - Font Editor
FIXCEL.EXE   - Correct 256 color cel file(s)
FIXVIEW.EXE  - Correct 256 color view file(s)
FIXVIEWS.EXE - Correct all 256 color view files
FORCEPAL.EXE -
GETTGA.EXE   -
GETTGA16.EXE -
INC_IT.EXE   - Increments the ASCII version number in 'version_file'.
INCVER.EXE   - Increment version number
LBM2BIT.EXE  -
LBM2CEL.EXE  - Converts LBM file to Cel file
LBM2PAL.EXE  - Creates new palette file from LBM file
LBM2VIEW.EXE - Converts LBM file back to 256 color view file
MACPIC.EXE   -
MACVIEW.EXE  -
MAKCDVOL.EXE -
MAKECEL.EXE  -
MAKEMAPS.EXE - MAKEMAPS reads individual audio and sync files creating RESOURCE.AUD and room-specific *.MAP resource files.
MAKEP16.EXE  - Converts 256 Color Pic to 16 color pic (controls & priority)
MAKEPIC.EXE  - Makes an SCI32 P56 file from 2 pcx files
MAKEV.EXE    - Converts any view to use colors in new.pal
MAKEV16.EXE  - Converts 256 Color View to 16 color view
MAKEV256.EXE -
MAKEV64.EXE  - Converts 256 Color View to standard 64 color view
MAKEV72.EXE  - Converts 256 Color View to standard 72 color view
MAKEVAUD.EXE -
MAKEVOLS.EXE -
MAKEVSEQ.EXE -
MATCHV.EXE   -
MC.EXE       - Message Compiler
ME.EXE       - SCI Message Editor
ME_ALT.EXE   - (Music Editor? Original name was ME)
MEAUDFIL.EXE - Message Audio File Utility
MECNV3_4.EXE - Message Editor Conversion v.3 to v.4
MEDUMP.EXE   - Message File Dumper
MESCRIPT.EXE -
MESSAGES.EXE -
MEXLTDIF.EXE - Message File Translation Differencer
MOVIE.EXE    -
MOVIE256.EXE -
MSCIV.EXE    -
MTEST.EXE    - Music Test
NEWPAL.EXE   - Creates new palette file from LBM file
NIGHTPAL.EXE - Creates nighttime palette from file
NO255.EXE    -
NORM.EXE     - This program normalizes audio files.
ONELINE.EXE  -
PAL.EXE      - Allows you to redefine the standard palette in pic file(s)
PAL2NEW.EXE  -
PAL2OLD.EXE  - Conversion of New Pallete to Old
PALPIC.EXE   - Allows you to redefine the standard palette in pic file(s)
PALVIEW.EXE  - Allows you to redefine the standard palette in view file(s)
PCX2CEL.EXE  - Converts PCX to Cel file
PCX2VIEW.EXE - Converts PCX file back to 256 color view file
PE.EXE       - Picture Editor (16 colors)
PE256.EXE    - Picture Editor (256 colors)
PIC2CEL.EXE  - Program converts 256 color PICTOR files to 256 color cels
PIC2NEW.EXE  -
PIC2PCX.EXE  - Converts Pic to PCX file
PICTEST.EXE  -
PMAKEVOL.EXE -
PSCIDH.EXE   -
PSCIDHV.EXE  -
PUTTGA.EXE   -
RAW2MST.EXE  -
RE.EXE       -
READPAL.EXE  -
REDOPIC.EXE  -
RENRESRC.EXE - Resource File Renamer
RESBUILD.EXE -
RESBUST.EXE  -
RESDIR.EXE   -
RESMIX.EXE   -
RMESSAGE.EXE - SCI message translator
SC.EXE       - Script Compiler
SCI.EXE      - Script Interpreter (debug)
SCID.EXE     -
SCIDH.EXE    -
SCIH.EXE     -
SCIP.EXE     -
SCITESTR.EXE - Script Interpreter (debug, menu bars enabled)
SCIUB.EXE    -
SCIV.EXE     -
SCIWH.EXE    -
SCPP.BAT     - front-end batch file for SCPPRINT.EXE
SCPPRINT.EXE - a pretty printer for SCRIPT code
SE.EXE       - Sound Editor
SIERRA.EXE   - Script Interpreter (no debug)
SIERRAH.EXE  -
SIERRAM.EXE  - Script Interpreter (no debug, menu bars enabled)
SIERRAWH.EXE -
SMF.EXE      -
SMIDI.EXE    -
SND_EDIT.EXE - SMF SOUND FILE EDITOR
STAMPVER.EXE -
STAMPVOL.EXE -
SYNCONLY.EXE -
TC.EXE       -
TESTPAL.EXE  -
TGA2MST.EXE  -
TGAPIC.EXE   -
V16LBM.EXE   - Converts 16 color views to Lbm files
V16TO72.EXE  - Converts 16 Color View to standard 72 color view
V256LBM.EXE  - Converts 'Full Color' views to Lbm files
VC.EXE       - Vocabulary Compiler
VCPP.EXE     -
VE.EXE       - View Editor (16 colors)
VE256.EXE    - View Editor (256 colors)
VIEW2LBM.EXE - Converts 256 color views to Lbm files
VIEW2NEW.EXE -
VIEW2OLD.EXE - Conversion of New View Format to Old View Format
VIEW2PCX.EXE - Converts 256 color view to PCX file
VIEWCHK.EXE  - View File Comparison Utility
VIEWMARK.EXE -
VIEWPAL.EXE  - Allows you to redefine the standard palette in view file(s)
VOLCHECK.EXE -
WE.EXE       -
WHATSON.EXE  -
XE.EXE       -
XE_RAVE.EXE  -
XEBATCH.EXE  -
XMESSAGE.EXE - SCI message extractor


I hope there'll be a community effort to document the tools more thoroughly.

Enjoy!  8)
Title: Re: Sierra's Internal SCI Tools
Post by: lskovlun on June 17, 2016, 08:52:23 PM
My my, you have been busy. The interp called SCIUB looks like it's got complete debug symbols (as do a number of other executables).
Title: Re: Sierra's Internal SCI Tools
Post by: MusicallyInspired on June 17, 2016, 08:56:10 PM
Can't wait to download this when I get home! I love this stuff.
Title: Re: Sierra's Internal SCI Tools
Post by: Collector on June 17, 2016, 08:58:05 PM
I will certainly be going through them. I want to put the tools and any documentation on the Wikis. Nice to see that the files in this batch still have the original dates. Do you know if there are any of these that are server bound like the pic and view editors of the last batch?
Title: Re: Sierra's Internal SCI Tools
Post by: lskovlun on June 17, 2016, 09:06:01 PM
I will certainly be going through them. I want to put the tools and any documentation on the Wikis. Nice to see that the files in this batch still have the original dates. Do you know if there are any of these that are server bound like the pic and view editors of the last batch?
That seems to be what Omer refers to when writing
Quote
Some of the tools had a protection that only allowed them to be run from a specific network share. I removed that protection.
Whether he's got rid of all of them, I can't say.
Title: Re: Sierra's Internal SCI Tools
Post by: Collector on June 17, 2016, 10:04:14 PM
I guess I just skimmed over the opening statement and went right to the list itself.
Title: Re: Sierra's Internal SCI Tools
Post by: troflip on June 17, 2016, 10:06:28 PM
Some of the tools had a protection that only allowed them to be run from a specific network share. I removed that protection.

Out of curiosity, how did you do that? Use a hex editor on the binary and search for path names an modify them?

Maybe we can re-construct the complete original development environment, for those who not only want to play retro games, but also program in a retro IDE, lol...
Title: Re: Sierra's Internal SCI Tools
Post by: Collector on June 17, 2016, 11:51:40 PM
Probably the way Lars mentioned after Omer released the first bunch of tools.
Title: Re: Sierra's Internal SCI Tools
Post by: OmerMor on June 18, 2016, 04:35:56 AM
Out of curiosity, how did you do that? Use a hex editor on the binary and search for path names an modify them?

Maybe we can re-construct the complete original development environment, for those who not only want to play retro games, but also program in a retro IDE, lol...

I used a disassembler (IDA Pro) and the DosBox Debugger to learn what's going on.
Most of the executables are checking if the there's a file server named "DEVELOPMENT" in NetWare's file server name table (using Int 21/AX=EF04h (http://www.ctyme.com/intr/rb-3636.htm)).
I *think* they later validate the user is logged on to it.
Other executables check for the existence of the same executable on drive X:.

I simply replaced the call to this check with NOPs.

It's interesting to note that beside the DEVELOPMENT string, there are also PROGRAMMING, RESEARCH, CS and APPS. It appears they aren't in use, but I guess these are the names of Sierra's other file servers.

BTW, I just recently taught myself how to use IDA Pro, as part of my work on the INN Revival project. I needed that to disassemble the modem driver and the TSN Executive. It's fun (in a perverted way)!   :D
Title: Re: Sierra's Internal SCI Tools
Post by: OmerMor on June 18, 2016, 04:37:38 AM
Whether he's got rid of all of them, I can't say.

I hope I did. Let me know if you find any others and I'll rty to take care of that as well.
Title: Re: Sierra's Internal SCI Tools
Post by: OmerMor on June 18, 2016, 04:55:33 AM
The interp called SCIUB looks like it's got complete debug symbols (as do a number of other executables).

Cool.

On a somewhat related note, Sierra clearly had a naming convention for their interpreter file names.
We all know SCIDHUV.EXE, but there are many others.
SCI is usually the prefix, but sometimes it's MSCI* and PSCI*. And they also used SIERRA (no debugger) and BETA (requires dongle).
The suffix is a combination of letters from the following set: {W,D,H,U,V,P,B}.
I am sure each suffix letter has a meaning, but I don't know what it is yet.
Any ideas?

I just noticed all the EGA games use SCIDUV.EXE and not SCIDHUV.EXE, so I guess the 'H' stands for VGA graphics.
I also *suspect* the 'D' stands for stripped debugger.
Title: Re: Sierra's Internal SCI Tools
Post by: MusicallyInspired on June 18, 2016, 12:04:18 PM
Also, SCI0 games use simply SCIV. The addition of DU for SCI1 EGA games and DHU for SCI1/.1 VGA games is interesting. I remember realizing this quite a ways back. No idea what it meant, though. By SCI2 they went back to just SIERRA.
Title: Re: Sierra's Internal SCI Tools
Post by: Collector on June 18, 2016, 01:17:48 PM
The SCI 2 games also had SIERRAW for the Windows interpreter. LSL7 had SIER (DOS), SIERW (Win16) and SIERW5 (Win32).
Title: Re: Sierra's Internal SCI Tools
Post by: lskovlun on June 24, 2016, 03:21:58 PM
Any ideas?
V is for Volumes (the interps without it do not use RESOURCE.* files, but search for the individual resources in various specified directories).
EDITEDIT: P is for parser (they have special debug code in them).
EDIT: It is also interesting to note that the LSL3 interp found in the TOOLS package (0.000.572) has a non-volume counterpart, numbered 0.000.571. Back in the FreeSCI days we used the version numbers directly, always trying to figure out when a particular change took place. It looks like the system build procedure would build several interps in a row for different uses (volume, non-volume, vga, ega, etc.) and some version numbers can be inferred from that.
Title: Re: Sierra's Internal SCI Tools
Post by: claudehuggins on October 27, 2016, 08:37:05 PM
Man, sorry to reply to an old topic, but this somehow managed to slip past my radar and I am pretty darn excited to see it.

Maybe we can re-construct the complete original development environment, for those who not only want to play retro games, but also program in a retro IDE, lol...
Call me weird, but that sounds EXACTLY like my kind of jam. I'm all for this. Go big or go home.
Title: Re: Sierra's Internal SCI Tools
Post by: lance.ewing on October 28, 2016, 04:41:51 AM
Call me weird, but that sounds EXACTLY like my kind of jam. I'm all for this. Go big or go home.

troflip was probably half joking, but I've also thought the same thing a few times. A year or so ago, we even identified what "IDE" they were using back then and found a site online that appeared to have a version of it that roughly matched what Sierra would have been using. This was based on a partial match between a fragment in an unused part of an original game disk with one of the standard BRIEF macro files that comes with BRIEF, and based on the publish date of that particular version of BRIEF.

One thing I haven't heard of turning up yet though are the custom BRIEF macros that Sierra used. They clearly used a lot of them. They are referenced in some of the documentation that Omer released, and we've seen a few fragments from original disk slack space, but I don't think anyone has any full macro files.

The AGDS document included in the AGI Original Documentation thread mentioned BRIEF a number of times. Here is an interesting bit:

Code: [Select]
CG -- the game compiler.
This is the most used. Assuming you use BRIEF to edit the source code files,
call the compile macro (often assigned to the F9 key). It saves your file,
calls the CG game compiler, routes CG's output to your LGC subdirectory, and
if errors are found, displays them in the current window.

...and this bit as well:

Code: [Select]
MACROS
The BRIEF macros "allfiles.m" and "modify.m" allow you to modify all of
your source files at once. To use them, edit the file "\brief\macro\modify.m"
to do whatever you want done to your files. Compile it (use F9) until it iscorrect, and automatically loaded.
enter "allfiles."
Title: Re: Sierra's Internal SCI Tools
Post by: Kawa on October 28, 2016, 05:49:25 AM
Me, I just want compression and maybe multiple volume files. But I can't get MAKEVOLS to work.
Title: Re: Sierra's Internal SCI Tools
Post by: lskovlun on October 28, 2016, 08:31:08 AM
Me, I just want compression and maybe multiple volume files. But I can't get MAKEVOLS to work.
This reminds me of how the first decompressor I wrote for SCI1.1 abused a command-line tool from Logitech that happened to use the same compression library. Christoph's first comment to that was, predictably, "WTF?"
But it worked.
Title: Re: Sierra's Internal SCI Tools
Post by: NewRisingSun on October 28, 2016, 11:42:31 AM
Quote from: Kawa
Me, I just want compression and maybe multiple volume files. But I can't get MAKEVOLS to work.
I did get it to work to rebuild Space Quest I with compression. What exactly is your problem, and what version of MAKEVOLS are you using, and for what SCI version are you building?
Quote from: Iskovlun
This reminds me of how the first decompressor I wrote for SCI1.1 abused a command-line tool from Logitech that happened to use the same compression library. Christoph's first comment to that was, predictably, "WTF?" But it worked.
Ah, ye olde PKWare Data Compression Library. I first extracted it from SIERRA.EXE to create a linkable library version of it, then debugged it and wrote my own implementation of the decompressor using assembly language. Of course, with the C implementations available in open-source, that effort has become useless. I'm not positive though whether the compressor has ever been rewritten in Assembly or C as well, or whether an official linkable library has ever been leaked. PKWDCL seems to have been used quite widely --- not only did Sierra use it, but LucasArts would distribute Monkey Island 2 and Indiana Jones 4 using their own custom archive format (LFG) that compressed using the library. And many mid-90s floppy-based games used the INSTALIT installation package. Its built-in decompressor first used the old PAK compression from NoGate Consulting but later switched to PKWDCL in later versions. I know that from writing my own InstalIt .PVL archive extractor.
Title: Re: Sierra's Internal SCI Tools
Post by: Kawa on October 28, 2016, 11:47:35 AM
I did get it to work to rebuild Space Quest I with compression. What exactly is your problem, and what version of MAKEVOLS are you using, and for what SCI version are you building?
The one from OmerMor's SCI16 release, and the one from OmerMor's SCI16 release. The problem: I know now what RESOURCE.TXT should be, but MAKEVOLS wants a WHERE file. I have one of those, adjusted to the best of my knowledge but all I get is a blank RESOURCE.000 and RESOURCE.MAP. I'll try again so I can document the error after dinner, which is now.

Given the following:
WHERE
Code: [Select]
vocab=c:
script=c:
text=c:
heap=c:
message=c:
videoDrv=c:\vga320.drv
soundDrv=c:\std.drv
kbdDrv=c:\ibmkbd.drv
joyDrv= NO
mouse = YES
minHunk=1k
pic=.;c:\*.p56;c:
view=.;c:\*.v56;..\art\view\*.v56;c:
palette=.;c:
font=.;c:
sound=.;c:

RESOURCES.TXT
(Loosely based on http://symphoniae.com/nrs/sciprogramming/RESOURCE.TXT (http://symphoniae.com/nrs/sciprogramming/RESOURCE.TXT))
Code: [Select]
(volumes
volume 0
script 255
heap 255

script 0
script 10
script 11
script 14
script 15
script 20
script 21
script 24
script 26
script 100
)

Result
(Running this from DOSBox, where C: is my game's folder, with all resources extracted.)
Code: [Select]
MAKEVOLS 3.01 Copyright Sierra On-Line, Inc., Apr 27 1993. All rights reserved.

MAKEVOLS: (2) Object (volume) not found.
MAKEVOLS: (3) Object (umes) not found.
MAKEVOLS: (3) End of file while building (null).
resource.000 is 0 bytes long.
Bytes read: 0
Bytes written: 0
Compression: 100%
Sorting...

Resource.000: 0 bytes
Resource.map: 7 bytes

Removing particular script lines from resource.txt yields a shitton of Object (olume) not found. errors.
Title: Re: Sierra's Internal SCI Tools
Post by: OmerMor on October 28, 2016, 12:47:16 PM
One thing I haven't heard of turning up yet though are the custom BRIEF macros that Sierra used. They clearly used a lot of them. They are referenced in some of the documentation that Omer released, and we've seen a few fragments from original disk slack space, but I don't think anyone has any full macro files.

Here's an archive with BRIEF, some utilities, and compiled macros I managed to scrape off my stuff:
https://drive.google.com/file/d/0B5j-_ZMS8_UoYVJIVEtnZk5lbWc/view?usp=sharing&resourcekey=0-qPC6H-efAXoDFphQ7nquyQ (https://drive.google.com/file/d/0B5j-_ZMS8_UoYVJIVEtnZk5lbWc/view?usp=sharing&resourcekey=0-qPC6H-efAXoDFphQ7nquyQ)
Title: Re: Sierra's Internal SCI Tools
Post by: NewRisingSun on October 28, 2016, 01:40:34 PM
I have just rebuilt KQ6 floppy using the MAKEVOLS utility from OmerMor's SCI16 archive. The resulting RESOURCE.000 and RESOURCE.MAP are not byte-for-byte identical, as the MAKEVOL.EXE seems to be of a later version that inserts an additional 0x12 0x34 0x00 0x00 into RESOURCE.MAP. A few of the files also compress differently, indicating a different version of the PKWare Data Compression Library. But the result still works nicely with the original interpreter included with the game. Attached find my WHERE and RESOURCE.TXT file for KQ6 Floppy. I put my individual game resources are in a subdirectory named INPUT\ under the current directory from which MAKEVOLS is launched.
Title: Re: Sierra's Internal SCI Tools
Post by: Kawa on October 28, 2016, 02:10:13 PM
That works much better!
Title: Re: Sierra's Internal SCI Tools
Post by: NewRisingSun on October 28, 2016, 02:31:59 PM
MAKEVOLS is actually quite flexible, which in the case of SCI0/10 with multiple volumes is very useful. Basically, you can have as many lists as you want, with one list calling up another. For example, you could do the following (stylized example):
Code: [Select]
(CDROM ; all resources in one volume file
system
rm1
rm2
)

(360K
volume 0
system

volume 1
rm1

volume 2
rm2
)

(720K
volume 0
system

volume 1
rm1
rm2
)

(system
script 999
script 998
)

(rm1
script 1
pic 1
)

(rm2
script 2
pic 2
)
Anything that is not a recognized keyword is interpreted as a reference to a separate list. When MAKEVOLS is run without a list name, it just takes the first one in RESOURCE.TXT. If you specified "MAKEVOLS 360k" with the RESOURCE.TXT above, only the "360K" list would be built, which puts all resources associated with rm1 and rm2 in separate volumes 1 and 2, whereas "MAKEVOLS 720K" would put them in the same volume 1. That flexibility still exists in MAKEVOLS 3.01, though it is somewhat useless since that version of MAKEVOLS/SCI does not support multiple volumes anymore.

Some early versions of MAKEVOLS, but not 1.10 and not 3.xx, apparently specified the paths in RESOURCE.TXT as well using the "resource" keyword (from INN):
Code: [Select]
resource view     0x80 /app24/ll/view/%d.v56;/app24/appshare/view/%d.v56
It seems that the paths were moved out of RESOURCE.TXT into the WHERE file at some point in time, possibly because SCI.EXE (without V) requires a WHERE file anyway which could be reused.
Title: Re: Sierra's Internal SCI Tools
Post by: Kawa on October 28, 2016, 04:22:30 PM
Haha. "Unable to allocate inBuffer", try again, "unable to allocate work buffer" X3
Title: Re: Sierra's Internal SCI Tools
Post by: lskovlun on October 28, 2016, 05:59:48 PM
The resulting RESOURCE.000 and RESOURCE.MAP are not byte-for-byte identical, as the MAKEVOL.EXE seems to be of a later version that inserts an additional 0x12 0x34 0x00 0x00 into RESOURCE.MAP.
That very much sounds like it's meant for the version-stamping utility to find and change... the thing is that there is a version stamp in the resource map and the executable that must match, but they differ by 0x1234. I helped troflip handle this for the LSL6 interpreter, and I believe it has a base stamp of 360 (dec), so the resource map must have 360+0x1234=0x139c.
Title: Re: Sierra's Internal SCI Tools
Post by: robbo007 on October 24, 2025, 11:04:21 AM
Just trying to run the makevols.exe on my extracted SCI0 resource files to see if this makes any difference to the size of my resource.001

I get the following errors for all resources. Is there a certain naming convention its looking for? Mine are for example:
fonts
font.000, font.004 etc etc

Code: [Select]
MAKEVOLS: (731) Object (vocab) not found.

I've created the sub directories and my where file
Code: [Select]
view    = C:\Studio\testcomp\INPUT\view\
pic     = C:\Studio\testcomp\INPUT\pic\
script  = C:\Studio\testcomp\INPUT\script\
text    = C:\Studio\testcomp\INPUT\text\
sound   = C:\Studio\testcomp\INPUT\sound\
vocab   = C:\Studio\testcomp\INPUT\vocab\
font    = C:\Studio\testcomp\INPUT\font\
cursor  = C:\Studio\testcomp\INPUT\cursor\
patch   = C:\Studio\testcomp\INPUT\patch\

I've created a resource.txt
Code: [Select]
(volumes
; Cursors
cursor 768
cursor 992
cursor 997
cursor 999

; Fonts
font 000
font 001
font 004
font 007
font 009
font 100
font 200
font 300
font 600
font 601
font 603
font 999

; Patches
patch 001
patch 002
patch 003
patch 004
patch 007
patch 101

; Pictures
pic 001
pic 002
pic 003
pic 004
pic 005
pic 006
pic 007
pic 008
pic 009
pic 010
pic 011
pic 012
pic 013
pic 014
pic 015
pic 016
pic 017
pic 018
pic 019
pic 020
pic 021
pic 022
pic 023
pic 024
pic 025
pic 026
pic 027
pic 028
pic 029
pic 030
pic 031
pic 032
pic 033
pic 034
pic 035
pic 036
pic 037
pic 038
pic 039
pic 040
pic 041
pic 042
pic 043
pic 044
pic 045
pic 046
pic 047
pic 048
pic 050
pic 051
pic 052
pic 053
pic 055
pic 056
pic 057
pic 058
pic 059
pic 060
pic 061
pic 062
pic 063
pic 064
pic 065
pic 072
pic 073
pic 079
pic 080
pic 083
pic 089
pic 090
pic 091
pic 092
pic 093
pic 094
pic 095
pic 096
pic 097
pic 098
pic 099
pic 100
pic 101
pic 102
pic 103
pic 104
pic 105
pic 106
pic 107
pic 108
pic 109
pic 110
pic 111
pic 120
pic 121
pic 122
pic 123
pic 124
pic 140
pic 377
pic 500
pic 501
pic 502
pic 503
pic 505
pic 506
pic 507
pic 509
pic 510
pic 511
pic 512
pic 514
pic 515
pic 516
pic 517
pic 518
pic 520
pic 521
pic 522
pic 523
pic 524
pic 525
pic 650
pic 653
pic 654
pic 655
pic 656
pic 658
pic 800

; Scripts
script 000
script 001
script 002
script 003
script 004
script 005
script 006
script 007
script 008
script 009
script 010
script 011
script 012
script 013
script 014
script 015
script 016
script 017
script 018
script 019
script 020
script 021
script 022
script 023
script 024
script 025
script 026
script 027
script 028
script 029
script 030
script 031
script 032
script 033
script 034
script 035
script 036
script 037
script 038
script 039
script 040
script 041
script 042
script 043
script 044
script 045
script 046
script 047
script 048
script 050
script 051
script 052
script 053
script 055
script 056
script 057
script 058
script 059
script 060
script 061
script 062
script 063
script 064
script 065
script 072
script 073
script 079
script 080
script 083
script 089
script 090
script 091
script 092
script 093
script 094
script 095
script 096
script 097
script 098
script 100
script 101
script 102
script 103
script 104
script 105
script 106
script 107
script 108
script 109
script 110
script 111
script 120
script 121
script 122
script 123
script 124
script 265
script 290
script 300
script 301
script 302
script 303
script 304
script 305
script 306
script 500
script 501
script 503
script 505
script 506
script 507
script 508
script 509
script 510
script 511
script 512
script 514
script 515
script 516
script 517
script 518
script 521
script 522
script 523
script 524
script 525
script 526
script 600
script 650
script 651
script 652
script 653
script 654
script 655
script 656
script 797
script 799
script 800
script 809
script 810
script 811
script 969
script 970
script 971
script 972
script 973
script 974
script 975
script 976
script 977
script 978
script 979
script 980
script 981
script 982
script 983
script 984
script 985
script 986
script 987
script 988
script 989
script 990
script 991
script 992
script 993
script 994
script 995
script 996
script 997
script 998
script 999

; Sounds
sound 001
sound 002
sound 004
sound 005
sound 007
sound 010
sound 021
sound 022
sound 023
sound 024
sound 025
sound 026
sound 033
sound 100
sound 101
sound 107
sound 110
sound 120
sound 140
sound 141
sound 206
sound 207
sound 253
sound 261
sound 265
sound 299
sound 323
sound 330
sound 335
sound 340
sound 341
sound 395
sound 399
sound 431
sound 435
sound 452
sound 500
sound 540
sound 560
sound 599
sound 799
sound 800
sound 801
sound 802
sound 899
sound 900

; Text
text 000
text 001
text 002
text 003
text 004
text 005
text 006
text 007
text 008
text 009
text 010
text 011
text 012
text 013
text 014
text 015
text 016
text 017
text 020
text 021
text 022
text 023
text 024
text 025
text 026
text 027
text 028
text 029
text 030
text 032
text 033
text 034
text 035
text 039
text 040
text 055
text 057
text 058
text 070
text 071
text 094
text 100
text 102
text 104
text 105
text 107
text 108
text 120
text 124
text 140
text 141
text 142
text 143
text 144
text 145
text 146
text 147
text 148
text 149
text 150
text 151
text 152
text 153
text 154
text 155
text 156
text 157
text 158
text 159
text 160
text 161
text 162
text 163
text 164
text 165
text 166
text 265
text 290
text 301
text 306
text 341
text 503
text 506
text 507
text 509
text 510
text 512
text 514
text 515
text 516
text 517
text 518
text 522
text 523
text 525
text 655
text 656
text 797
text 809
text 976

; Views
view 000
view 001
view 003
view 004
view 005
view 006
view 007
view 008
view 009
view 010
view 011
view 012
view 013
view 017
view 018
view 020
view 021
view 023
view 024
view 026
view 027
view 028
view 029
view 030
view 031
view 032
view 033
view 034
view 035
view 036
view 037
view 038
view 039
view 040
view 041
view 042
view 043
view 044
view 045
view 046
view 047
view 048
view 050
view 051
view 052
view 053
view 055
view 056
view 057
view 058
view 072
view 073
view 079
view 080
view 083
view 090
view 091
view 092
view 093
view 094
view 095
view 096
view 097
view 098
view 100
view 101
view 102
view 103
view 104
view 105
view 106
view 107
view 108
view 109
view 110
view 111
view 112
view 120
view 121
view 122
view 123
view 124
view 125
view 126
view 140
view 200
view 201
view 202
view 203
view 204
view 205
view 206
view 207
view 208
view 209
view 210
view 211
view 212
view 213
view 214
view 215
view 216
view 217
view 218
view 219
view 220
view 221
view 222
view 223
view 224
view 225
view 226
view 227
view 228
view 229
view 230
view 231
view 232
view 233
view 234
view 235
view 240
view 290
view 315
view 502
view 503
view 504
view 505
view 506
view 508
view 509
view 510
view 511
view 512
view 513
view 514
view 515
view 516
view 517
view 518
view 519
view 520
view 522
view 523
view 524
view 525
view 526
view 527
view 528
view 529
view 530
view 531
view 532
view 533
view 534
view 536
view 538
view 539
view 540
view 541
view 542
view 543
view 544
view 545
view 546
view 547
view 548
view 549
view 550
view 551
view 552
view 553
view 554
view 600
view 601
view 602
view 603
view 604
view 605
view 606
view 607
view 608
view 609
view 610
view 611
view 612
view 613
view 614
view 615
view 616
view 617
view 618
view 650
view 651
view 652
view 653
view 654
view 655
view 656
view 705
view 706
view 707
view 708
view 710
view 712
view 714
view 715
view 716
view 717
view 718
view 719
view 720
view 721
view 722
view 723
view 725
view 726
view 727
view 728
view 729
view 730
view 731
view 732
view 733
view 734
view 901
view 914
view 915
view 916
view 917
view 918
view 950
view 994
view 995
view 996
view 997
view 998

; Vocabulary
vocab 000
vocab 900
vocab 901
vocab 994
vocab 995
vocab 996
vocab 997
vocab 998
vocab 999
)
Title: Re: Sierra's Internal SCI Tools
Post by: lskovlun on October 24, 2025, 03:28:48 PM
MAKEVOLS doesn't use a where file as far as I know (it's possible that some versions do). Instead you need to have a section in your resource.txt that defines the resource types:
The one from LSL3 looks like this:
Code: [Select]
(setpaths
        resource        view            0x80    ../../view/view
        resource        pic             0x81    ../../pic/pic
        resource        script  0x82    ../../script/script
        resource        text            0x83    ../../script/text
        resource        sound           0x84    ../../sound/sound
;       resource memory 0x85    ;       (can not be loaded from disk)
        resource        vocab           0x86    ../../script/vocab
        resource        font            0x87    s:font
        resource        cursor  0x88    s:cursor
        resource        patch           0x89    ../../sound/patch
)
Then you reference that in your main section before actually building any volumes.
Title: Re: Sierra's Internal SCI Tools
Post by: robbo007 on October 26, 2025, 07:45:25 AM
ok thanks,
I've added that to the start of my resource.txt and it seems it likes the paths and locations but fails with a runtime error:

Code: [Select]
C:\STUDIO\TESTCOMP\INPUT>makevols -f resource.txt volume
Volume.000 is 0 bytes long.

run-time error R6003
- integer divide by 0

C:\STUDIO\TESTCOMP\INPUT>

Running the -xv paramter does not show any errors. Could it be the path format I'm using to declare the resource location is not correct?

Code: [Select]
;**
;** Resource list for both 360K and 720K floppy-based games.
;**
;** LSL4:  Never Say Nontoonyt
;**        Copyright 2025
;** by Robbbo
;**
;** Last Update: October 26, 2025
;**

(setpaths
        resource        view            0x80    C:\Studio\testcomp\INPUT\view
        resource        pic             0x81    C:\Studio\testcomp\INPUT\pic
        resource        script  0x82    C:\Studio\testcomp\INPUT\script
        resource        text            0x83    C:\Studio\testcomp\INPUT\text
        resource        sound           0x84    C:\Studio\testcomp\INPUT\sound
;       resource memory 0x85    ;       (can not be loaded from disk)
        resource        vocab           0x86    C:\Studio\testcomp\INPUT\script\vocab
        resource        font            0x87   C:\Studio\testcomp\INPUT\font
        resource        cursor  0x88    C:\Studio\testcomp\INPUT\cursor
        resource        patch           0x89    C:\Studio\testcomp\INPUT\patch
)
(volume
; Cursors
cursor 768
cursor 992
cursor 997
cursor 999

; Fonts
font 000
font 001
font 004
font 007
font 009
font 100
font 200
font 300
font 600
font 601
font 603
font 999

; Patches
patch 001
patch 002
patch 003
patch 004
patch 007
patch 101

; Pictures
pic 001
pic 002
pic 003
pic 004
pic 005
pic 006
pic 007
pic 008
pic 009
pic 010
pic 011
pic 012
pic 013
pic 014
pic 015
pic 016
pic 017
pic 018
pic 019
pic 020
pic 021
pic 022
pic 023
pic 024
pic 025
pic 026
pic 027
pic 028
pic 029
pic 030
pic 031
pic 032
pic 033
pic 034
pic 035
pic 036
pic 037
pic 038
pic 039
pic 040
pic 041
pic 042
pic 043
pic 044
pic 045
pic 046
pic 047
pic 048
pic 050
pic 051
pic 052
pic 053
pic 055
pic 056
pic 057
pic 058
pic 059
pic 060
pic 061
pic 062
pic 063
pic 064
pic 065
pic 072
pic 073
pic 079
pic 080
pic 083
pic 089
pic 090
pic 091
pic 092
pic 093
pic 094
pic 095
pic 096
pic 097
pic 098
pic 099
pic 100
pic 101
pic 102
pic 103
pic 104
pic 105
pic 106
pic 107
pic 108
pic 109
pic 110
pic 111
pic 120
pic 121
pic 122
pic 123
pic 124
pic 140
pic 377
pic 500
pic 501
pic 502
pic 503
pic 505
pic 506
pic 507
pic 509
pic 510
pic 511
pic 512
pic 514
pic 515
pic 516
pic 517
pic 518
pic 520
pic 521
pic 522
pic 523
pic 524
pic 525
pic 650
pic 653
pic 654
pic 655
pic 656
pic 658
pic 800

; Scripts
script 000
script 001
script 002
script 003
script 004
script 005
script 006
script 007
script 008
script 009
script 010
script 011
script 012
script 013
script 014
script 015
script 016
script 017
script 018
script 019
script 020
script 021
script 022
script 023
script 024
script 025
script 026
script 027
script 028
script 029
script 030
script 031
script 032
script 033
script 034
script 035
script 036
script 037
script 038
script 039
script 040
script 041
script 042
script 043
script 044
script 045
script 046
script 047
script 048
script 050
script 051
script 052
script 053
script 055
script 056
script 057
script 058
script 059
script 060
script 061
script 062
script 063
script 064
script 065
script 072
script 073
script 079
script 080
script 083
script 089
script 090
script 091
script 092
script 093
script 094
script 095
script 096
script 097
script 098
script 100
script 101
script 102
script 103
script 104
script 105
script 106
script 107
script 108
script 109
script 110
script 111
script 120
script 121
script 122
script 123
script 124
script 265
script 290
script 300
script 301
script 302
script 303
script 304
script 305
script 306
script 500
script 501
script 503
script 505
script 506
script 507
script 508
script 509
script 510
script 511
script 512
script 514
script 515
script 516
script 517
script 518
script 521
script 522
script 523
script 524
script 525
script 526
script 600
script 650
script 651
script 652
script 653
script 654
script 655
script 656
script 797
script 799
script 800
script 809
script 810
script 811
script 969
script 970
script 971
script 972
script 973
script 974
script 975
script 976
script 977
script 978
script 979
script 980
script 981
script 982
script 983
script 984
script 985
script 986
script 987
script 988
script 989
script 990
script 991
script 992
script 993
script 994
script 995
script 996
script 997
script 998
script 999

; Sounds
sound 001
sound 002
sound 004
sound 005
sound 007
sound 010
sound 021
sound 022
sound 023
sound 024
sound 025
sound 026
sound 033
sound 100
sound 101
sound 107
sound 110
sound 120
sound 140
sound 141
sound 206
sound 207
sound 253
sound 261
sound 265
sound 299
sound 323
sound 330
sound 335
sound 340
sound 341
sound 395
sound 399
sound 431
sound 435
sound 452
sound 500
sound 540
sound 560
sound 599
sound 799
sound 800
sound 801
sound 802
sound 899
sound 900

; Text
text 000
text 001
text 002
text 003
text 004
text 005
text 006
text 007
text 008
text 009
text 010
text 011
text 012
text 013
text 014
text 015
text 016
text 017
text 020
text 021
text 022
text 023
text 024
text 025
text 026
text 027
text 028
text 029
text 030
text 032
text 033
text 034
text 035
text 039
text 040
text 055
text 057
text 058
text 070
text 071
text 094
text 100
text 102
text 104
text 105
text 107
text 108
text 120
text 124
text 140
text 141
text 142
text 143
text 144
text 145
text 146
text 147
text 148
text 149
text 150
text 151
text 152
text 153
text 154
text 155
text 156
text 157
text 158
text 159
text 160
text 161
text 162
text 163
text 164
text 165
text 166
text 265
text 290
text 301
text 306
text 341
text 503
text 506
text 507
text 509
text 510
text 512
text 514
text 515
text 516
text 517
text 518
text 522
text 523
text 525
text 655
text 656
text 797
text 809
text 976

; Views
view 000
view 001
view 003
view 004
view 005
view 006
view 007
view 008
view 009
view 010
view 011
view 012
view 013
view 017
view 018
view 020
view 021
view 023
view 024
view 026
view 027
view 028
view 029
view 030
view 031
view 032
view 033
view 034
view 035
view 036
view 037
view 038
view 039
view 040
view 041
view 042
view 043
view 044
view 045
view 046
view 047
view 048
view 050
view 051
view 052
view 053
view 055
view 056
view 057
view 058
view 072
view 073
view 079
view 080
view 083
view 090
view 091
view 092
view 093
view 094
view 095
view 096
view 097
view 098
view 100
view 101
view 102
view 103
view 104
view 105
view 106
view 107
view 108
view 109
view 110
view 111
view 112
view 120
view 121
view 122
view 123
view 124
view 125
view 126
view 140
view 200
view 201
view 202
view 203
view 204
view 205
view 206
view 207
view 208
view 209
view 210
view 211
view 212
view 213
view 214
view 215
view 216
view 217
view 218
view 219
view 220
view 221
view 222
view 223
view 224
view 225
view 226
view 227
view 228
view 229
view 230
view 231
view 232
view 233
view 234
view 235
view 240
view 290
view 315
view 502
view 503
view 504
view 505
view 506
view 508
view 509
view 510
view 511
view 512
view 513
view 514
view 515
view 516
view 517
view 518
view 519
view 520
view 522
view 523
view 524
view 525
view 526
view 527
view 528
view 529
view 530
view 531
view 532
view 533
view 534
view 536
view 538
view 539
view 540
view 541
view 542
view 543
view 544
view 545
view 546
view 547
view 548
view 549
view 550
view 551
view 552
view 553
view 554
view 600
view 601
view 602
view 603
view 604
view 605
view 606
view 607
view 608
view 609
view 610
view 611
view 612
view 613
view 614
view 615
view 616
view 617
view 618
view 650
view 651
view 652
view 653
view 654
view 655
view 656
view 705
view 706
view 707
view 708
view 710
view 712
view 714
view 715
view 716
view 717
view 718
view 719
view 720
view 721
view 722
view 723
view 725
view 726
view 727
view 728
view 729
view 730
view 731
view 732
view 733
view 734
view 901
view 914
view 915
view 916
view 917
view 918
view 950
view 994
view 995
view 996
view 997
view 998

; Vocabulary
vocab 000
vocab 900
vocab 901
vocab 994
vocab 995
vocab 996
vocab 997
vocab 998
vocab 999
)
Title: Re: Sierra's Internal SCI Tools
Post by: Kawa on October 26, 2025, 08:29:55 AM
It's either the fact you're using absolute paths where the example uses relative, or it's because you're using backslashes where the example uses forward slashes. Take your pick.

For the former, either specify it like ./view instead of C:\Studio\testcomp\INPUT\view, or as just view etc.
Title: Re: Sierra's Internal SCI Tools
Post by: robbo007 on October 26, 2025, 06:14:36 PM
It's either the fact you're using absolute paths where the example uses relative, or it's because you're using backslashes where the example uses forward slashes. Take your pick.

For the former, either specify it like ./view instead of C:\Studio\testcomp\INPUT\view, or as just view etc.

I've tried every combination. I don't think the issue comes from the paths being mal formed. Could it be certain versions of makevols.exe only work with SCI0 resources?
Regards,
Title: Re: Sierra's Internal SCI Tools
Post by: lskovlun on October 26, 2025, 06:46:36 PM
It looks like you're not specifying the section to "execute" on your command line. Again, from LSL3:
Code: [Select]
makevols LL3%1 -F..\floppy.src -st >> ..\%1.err
The idea was that you would specify either 360 or 720 on the command line and MAKEVOLS would execute either section LL3360 or LL3720 (MAKEVOLS is not case sensitive, as I have just confirmed by inspection of resource.txt). I don't know what MAKEVOLS does in the absence of that first argument, but selecting the first one would be a good guess. And if that is your setpaths section, that would lead to an empty output file (and hence a divide-by-zero exception).
Title: Re: Sierra's Internal SCI Tools
Post by: lskovlun on October 26, 2025, 06:57:09 PM
Could it be certain versions of makevols.exe only work with SCI0 resources?
Regards,
I don't think so. After all, makevols is agnostic of the types of resources that the interpreter uses. As we've seen, the programmer specifies that in resource.txt. On the other hand, the interpreter might well barf at the resulting files (because SCI0 and SCI01 are different in that respect). How did the conversion to SCI01 go?

EDIT: This is not true of SCI1, where you have the preprocessing steps that improve the compression ratio. And possibly not in SCI11 either.
Title: Re: Sierra's Internal SCI Tools
Post by: robbo007 on October 28, 2025, 06:58:42 AM
Amazing thanks lskovlun :)

30% compression, from 7MB to 5MB.

Volume.000 is 5130409 bytes long.
Volume.001 is 5061709 bytes long.
Bytes read: 7204754
Bytes written: 5061709
Compression: 30%

If I then compress on top with Winrar I get the entire game to 4MB. But if I just use Winrar I get down to 3mb. So in the end I won't use makevols just Winrar. I'll have to use a new installer to unzip to hard disk. I'm still on my 10x 360kb floppy disk limit. But still need to add sfx and music. Ouch!

Here is my resource.txt that works: using the syntax: makevols ll4 -f resource.txt

Code: [Select]
;**
;** Resource list for both 360K and 720K floppy-based games.
;**
;** LSL4:  Never Say Nontoonyt
;**        Copyright 2025
;** by Robbbo
;**
;** Last Update: October 28, 2025
;**

(setpaths
        resource        view            0x80   ./view/view
        resource        pic             0x81    ./pic/pic
        resource        script  0x82    ./script/script
        resource        text            0x83    ./text/text
        resource        sound           0x84    ./sound/sound
        resource        vocab           0x86    ./script/vocab/vocab
        resource        font            0x87   ./font/font
        resource        cursor  0x88   ./cursor/cursor
        resource        patch           0x89   ./patch/patch
)
(ll4
volumes 1
setpaths
volume1

)
(volume1
; Cursors
cursor 768
cursor 992
cursor 997
cursor 999

; Fonts
font 000
font 001
font 004
font 007
font 009
font 100
font 200
font 300
font 600
font 601
font 603
font 999

; Patches
patch 001
patch 002
patch 003
patch 004
patch 007
patch 101

; Pictures
pic 001
pic 002
pic 003
pic 004
pic 005
pic 006
pic 007
pic 008
pic 009
pic 010
pic 011
pic 012
pic 013
pic 014
pic 015
pic 016
pic 017
pic 018
pic 019
pic 020
pic 021
pic 022
pic 023
pic 024
pic 025
pic 026
pic 027
pic 028
pic 029
pic 030
pic 031
pic 032
pic 033
pic 034
pic 035
pic 036
pic 037
pic 038
pic 039
pic 040
pic 041
pic 042
pic 043
pic 044
pic 045
pic 046
pic 047
pic 048
pic 050
pic 051
pic 052
pic 053
pic 055
pic 056
pic 057
pic 058
pic 059
pic 060
pic 061
pic 062
pic 063
pic 064
pic 065
pic 072
pic 073
pic 079
pic 080
pic 083
pic 089
pic 090
pic 091
pic 092
pic 093
pic 094
pic 095
pic 096
pic 097
pic 098
pic 099
pic 100
pic 101
pic 102
pic 103
pic 104
pic 105
pic 106
pic 107
pic 108
pic 109
pic 110
pic 111
pic 120
pic 121
pic 122
pic 123
pic 124
pic 140
pic 377
pic 500
pic 501
pic 502
pic 503
pic 505
pic 506
pic 507
pic 509
pic 510
pic 511
pic 512
pic 514
pic 515
pic 516
pic 517
pic 518
pic 520
pic 521
pic 522
pic 523
pic 524
pic 525
pic 650
pic 653
pic 654
pic 655
pic 656
pic 658
pic 800

; Scripts
script 000
script 001
script 002
script 003
script 004
script 005
script 006
script 007
script 008
script 009
script 010
script 011
script 012
script 013
script 014
script 015
script 016
script 017
script 018
script 019
script 020
script 021
script 022
script 023
script 024
script 025
script 026
script 027
script 028
script 029
script 030
script 031
script 032
script 033
script 034
script 035
script 036
script 037
script 038
script 039
script 040
script 041
script 042
script 043
script 044
script 045
script 046
script 047
script 048
script 050
script 051
script 052
script 053
script 055
script 056
script 057
script 058
script 059
script 060
script 061
script 062
script 063
script 064
script 065
script 072
script 073
script 079
script 080
script 083
script 089
script 090
script 091
script 092
script 093
script 094
script 095
script 096
script 097
script 098
script 100
script 101
script 102
script 103
script 104
script 105
script 106
script 107
script 108
script 109
script 110
script 111
script 120
script 121
script 122
script 123
script 124
script 265
script 290
script 300
script 301
script 302
script 303
script 304
script 305
script 306
script 500
script 501
script 503
script 505
script 506
script 507
script 508
script 509
script 510
script 511
script 512
script 514
script 515
script 516
script 517
script 518
script 521
script 522
script 523
script 524
script 525
script 526
script 600
script 650
script 651
script 652
script 653
script 654
script 655
script 656
script 797
script 799
script 800
script 809
script 810
script 811
script 969
script 970
script 971
script 972
script 973
script 974
script 975
script 976
script 977
script 978
script 979
script 980
script 981
script 982
script 983
script 984
script 985
script 986
script 987
script 988
script 989
script 990
script 991
script 992
script 993
script 994
script 995
script 996
script 997
script 998
script 999

; Sounds
sound 001
sound 002
sound 004
sound 005
sound 007
sound 010
sound 021
sound 022
sound 023
sound 024
sound 025
sound 026
sound 033
sound 100
sound 101
sound 107
sound 110
sound 120
sound 140
sound 141
sound 206
sound 207
sound 253
sound 261
sound 265
sound 299
sound 323
sound 330
sound 335
sound 340
sound 341
sound 395
sound 399
sound 431
sound 435
sound 452
sound 500
sound 540
sound 560
sound 599
sound 799
sound 800
sound 801
sound 802
sound 899
sound 900

; Text
text 000
text 001
text 002
text 003
text 004
text 005
text 006
text 007
text 008
text 009
text 010
text 011
text 012
text 013
text 014
text 015
text 016
text 017
text 020
text 021
text 022
text 023
text 024
text 025
text 026
text 027
text 028
text 029
text 030
text 032
text 033
text 034
text 035
text 039
text 040
text 055
text 057
text 058
text 070
text 071
text 094
text 100
text 102
text 104
text 105
text 107
text 108
text 120
text 124
text 140
text 141
text 142
text 143
text 144
text 145
text 146
text 147
text 148
text 149
text 150
text 151
text 152
text 153
text 154
text 155
text 156
text 157
text 158
text 159
text 160
text 161
text 162
text 163
text 164
text 165
text 166
text 265
text 290
text 301
text 306
text 341
text 503
text 506
text 507
text 509
text 510
text 512
text 514
text 515
text 516
text 517
text 518
text 522
text 523
text 525
text 655
text 656
text 797
text 809
text 976

; Views
view 000
view 001
view 003
view 004
view 005
view 006
view 007
view 008
view 009
view 010
view 011
view 012
view 013
view 017
view 018
view 020
view 021
view 023
view 024
view 026
view 027
view 028
view 029
view 030
view 031
view 032
view 033
view 034
view 035
view 036
view 037
view 038
view 039
view 040
view 041
view 042
view 043
view 044
view 045
view 046
view 047
view 048
view 050
view 051
view 052
view 053
view 055
view 056
view 057
view 058
view 072
view 073
view 079
view 080
view 083
view 090
view 091
view 092
view 093
view 094
view 095
view 096
view 097
view 098
view 100
view 101
view 102
view 103
view 104
view 105
view 106
view 107
view 108
view 109
view 110
view 111
view 112
view 120
view 121
view 122
view 123
view 124
view 125
view 126
view 140
view 200
view 201
view 202
view 203
view 204
view 205
view 206
view 207
view 208
view 209
view 210
view 211
view 212
view 213
view 214
view 215
view 216
view 217
view 218
view 219
view 220
view 221
view 222
view 223
view 224
view 225
view 226
view 227
view 228
view 229
view 230
view 231
view 232
view 233
view 234
view 235
view 240
view 290
view 315
view 502
view 503
view 504
view 505
view 506
view 508
view 509
view 510
view 511
view 512
view 513
view 514
view 515
view 516
view 517
view 518
view 519
view 520
view 522
view 523
view 524
view 525
view 526
view 527
view 528
view 529
view 530
view 531
view 532
view 533
view 534
view 536
view 538
view 539
view 540
view 541
view 542
view 543
view 544
view 545
view 546
view 547
view 548
view 549
view 550
view 551
view 552
view 553
view 554
view 600
view 601
view 602
view 603
view 604
view 605
view 606
view 607
view 608
view 609
view 610
view 611
view 612
view 613
view 614
view 615
view 616
view 617
view 618
view 650
view 651
view 652
view 653
view 654
view 655
view 656
view 705
view 706
view 707
view 708
view 710
view 712
view 714
view 715
view 716
view 717
view 718
view 719
view 720
view 721
view 722
view 723
view 725
view 726
view 727
view 728
view 729
view 730
view 731
view 732
view 733
view 734
view 901
view 914
view 915
view 916
view 917
view 918
view 950
view 994
view 995
view 996
view 997
view 998

; Vocabulary
vocab 000
vocab 900
vocab 901
vocab 994
vocab 995
vocab 996
vocab 997
vocab 998
vocab 999
)
Title: Re: Sierra's Internal SCI Tools
Post by: lskovlun on November 01, 2025, 12:56:08 AM
I would assume that something with a Burrows-Wheeler Transform stage would be good for SCI0 pics. I tried bzip2, but it somehow was worse than expected.
Title: Re: Sierra's Internal SCI Tools
Post by: robbo007 on November 04, 2025, 04:33:04 PM
The best compression is 7zip hands down. The trouble is the fork/hack for MSDOS requires DOS extended mode. I don't want to do "an Ultima 7" type thing here (Voodoo memory). I feel the pain of the 1980's programmers and the limitations they had to deal with. I'll work it out when I get to the golden version. Beta by Christmas is my milestone right now and god that seems far.. hahahaha
Title: Re: Sierra's Internal SCI Tools
Post by: Charles on November 05, 2025, 09:20:46 AM
I'm not an expert on compression, but I know the biggest gain from 7zip is the file format and not the compression algorithm.  Both 7z and zip are largely based on the LZ77 compression algorithm, but the reason 7zip often gives much better results is because it's a solid-archive format.

That means it treats all the files as a single entry, whereas zip compresses each file individually. There's ups and downs to each approach. The place where 7z really shines is when you're compressing several similar files together.

Like for example, rom hacks. You could 7z up 100 different Super Mario World rom hacks together and because the variation between each file is pretty minimal, you'd get a file that's not much larger than compressing a single rom with zip.

The downside is if you want to add a file to an existing archive, you need to decompress then re-compress the whole thing. Plus, I assume, if there's a data corruption issue, the entire archive is compromised instead of just a single file.
Title: Re: Sierra's Internal SCI Tools
Post by: Kawa on November 05, 2025, 09:59:14 AM
I take it you meant pre-patched SMW hacks. Assuming the recurring non-varying parts are things like engine code and such, and that the patches don't move any of that (which IPS is notoriously bad for and would require the patches to contain copyrighted data, unlike BPS), a plain ZIP file with one (1) original smw.sfc file and 100 .ips files could give a 7z file with 100 pre-patched SMW roms a run for its money. Probably not overtake it, but it'd be a lot closer of a race.

The bigger issue with compression, especially SCI stuff, is that things like Views already have their own compression (RLE on views for example) and already-compressed data generally tends not to double-stuff all that well. I'm sure there's some techniques that work better in certain combinations, but a zip file, or even 7zip, may not compress all that much if most of the effort goes into stuff like graphics.

That's why zipping a PNG file doesn't do all that much: PNG files already use zip deflate internally. I just tested it myself. Crunching a PNG (just throwing more CPU at the task) reduced my test pic from 53.3 KB to 29.5 KB, half of it by just throwing out the unused alpha. Zipping that saved me all of fifty bytes. All the overhead of compressing away the PNG header reduced it by 200 bytes, but the zip file itself almost undid it all.

Cos one big problem besides solid versus plain compression is that the archive itself requires file headers to specify which file goes where in the archive, its name, checksum, all that jazz. No matter what the exact format is, general-use archives need to know this. The simplest I can think of, .tar, takes 512 bytes per file to describe them and doesn't even include any compression (hence .tar.gz, combining it with a zip-like that takes almost no header at all). Now imagine an SCI resource file. It has its own directory, files have no names or path structures so all it needs is a type, a number, what compression it uses, a size, and for the older versions a volume index. That's all the per-file header overhead it needs. Zip files would be huge if you couldn't get away with like... six or seven files for the whole game -- if those resources were separate files, the zip archive would waste so much space on file headers. Twice, even, considering the central directory at the end of the file!
Title: Re: Sierra's Internal SCI Tools
Post by: lskovlun on November 05, 2025, 11:36:56 AM
Yes, obviously the BWT algorithm I was talking about would have to be a performed by the interpreter. A new addition to the resource volume format.