Open main menu

Difference between revisions of "ScummVM Tools"

7,072 bytes added ,  10:39, 10 September 2023
m
adding instructions for compress_gob
m (→‎extract_agos: add example of use)
m (adding instructions for compress_gob)
 
(53 intermediate revisions by 12 users not shown)
Line 1: Line 1:
{{HelpWithManual}}
{| border="0" cellpadding="2" cellspacing="1"  style="margin:1em; background:#FF0000;"
{| border="0" cellpadding="2" cellspacing="1"  style="margin:1em; background:#FF0000;"
|- style="background:#ffffff"
|- style="background:#ffffff"
Line 5: Line 4:
|}
|}


This is a collection of various tools that may be useful to use in conjunction with ScummVM. Please note that although a tool may support a feature, certain ScummVM versions may not. ScummVM 0.6.x does not support FLAC audio, for example.
This is a collection of various tools that may be useful to use in conjunction with ScummVM. To download the Tools package, go to the ScummVM [https://www.scummvm.org/downloads/#tools Downloads page]


== Using the GUI ==
==Using the GUI==
The recommended way to use the tools are using the tool GUI, run the program tool program.
The recommended way to use the tools are using the tool GUI, run the program tool program.


Line 15: Line 14:


Next select the input file, depending on the tool you are using, this file to be selected differs greatly. You can look in the list below for the expected extension or filename, if you don't know it already. For some games this is obvious as there only is a single data file. For games that ship on multiple disks, select the first disk on this page, you will be asked for the second disk on the next page.
Next select the input file, depending on the tool you are using, this file to be selected differs greatly. You can look in the list below for the expected extension or filename, if you don't know it already. For some games this is obvious as there only is a single data file. For games that ship on multiple disks, select the first disk on this page, you will be asked for the second disk on the next page.
Sometime a tool is applied on a single file, but the game may contain many such file. By selecting ''Run on all files with the same extension'' you can automatically run the tool on all the files with the same extension and present in the same directory as the selected input file. For example you can run [[User_Manual/Appendix:_Tools#compress_scumm_san|compress_scumm_san]] on all the SAN file of a game.


In most cases, the tool to be used will be automatically detected, if there are multiple options, you must manually select the correct tool to be used, this is usually obvious from the name of the tool, if you are unsure, check the list of tools below.
In most cases, the tool to be used will be automatically detected, if there are multiple options, you must manually select the correct tool to be used, this is usually obvious from the name of the tool, if you are unsure, check the list of tools below.
Line 41: Line 42:
[[Image:Toolguide7.png]]
[[Image:Toolguide7.png]]


== Using the CLI ==
==Using the CLI==
You can access all tools through the command line interface using the following syntax:
You can access all tools through the command line interface using the following syntax:


Line 58: Line 59:
  ./scummvm-tools-cli --tool <tool name> [audio mode params] [params] [-o output] <inputfile N ...>
  ./scummvm-tools-cli --tool <tool name> [audio mode params] [params] [-o output] <inputfile N ...>


=== Audio mode params ===
===Audio mode params===
You can specify what compression method to use. Use '''--mp3''', '''--flac''' or '''--vorbis''' first to select a special format, default is MP3.
You can specify what compression method to use. Use '''--mp3''', '''--flac''' or '''--vorbis''' first to select a special format, default is MP3.


==== MP3 mode params ====
====MP3 mode params (version 1.1.1)====
*'''-b ''rate''''' &mdash; ''rate'' is the target bitrate(ABR)/minimal bitrate(VBR).
*'''-b ''rate''''' &mdash; ''rate'' is the target bitrate(ABR)/minimal bitrate(VBR).
*'''-B ''rate''''' &mdash; ''rate'' is the maximum VBR/ABR bitrate.
*'''-B ''rate''''' &mdash; ''rate'' is the maximum ABR/VBR bitrate.
*'''--vbr''' &mdash; LAME Uses the VBR mode (default).
*'''--vbr''' &mdash; LAME Uses the VBR mode (default).
*'''--abr''' &mdash; LAME Uses the ABR mode.
*'''--abr''' &mdash; LAME Uses the ABR mode.
Line 69: Line 70:
*'''-q ''value''''' &mdash; Specifies the MPEG algorithm quality (0 - 9) (0 being the best quality).
*'''-q ''value''''' &mdash; Specifies the MPEG algorithm quality (0 - 9) (0 being the best quality).
*'''--silent''' &mdash; The output of LAME is hidden.
*'''--silent''' &mdash; The output of LAME is hidden.
*'''--lame-path''' &mdash; Specifies the path to lame (default: lame).


==== Vorbis mode params ====
====MP3 mode params (version 1.2.0svn)====
*'''--vbr''' &mdash; LAME Uses the VBR mode (default).
*'''--abr ''rate''''' &mdash; LAME Uses the ABR mode with the given target bit rate.
*'''--cbr ''rate''''' &mdash; LAME Uses the CBR mode with the given bit rate.
*'''-b ''rate''''' &mdash; ''rate'' is the minimum ABR/VBR bitrate (undefined by default).
*'''-B ''rate''''' &mdash; ''rate'' is the maximum ABR/VBR bitrate (undefined by default).
*'''-V ''value''''' &mdash; Specifies the value (0 - 9) of VBR quality (0 being the best quality).
*'''-q ''value''''' &mdash; Specifies the MPEG algorithm quality (0 - 9) (0 being the best quality).
*'''--silent''' &mdash; The output of LAME is hidden.
*'''--lame-path''' &mdash; Specifies the path to lame (default: lame).
 
====Vorbis mode params====
*'''-b ''rate''''' &mdash; ''rate'' is the nominal bitrate.
*'''-b ''rate''''' &mdash; ''rate'' is the nominal bitrate.
*'''-m ''rate''''' &mdash; ''rate'' is the minimum bitrate.
*'''-m ''rate''''' &mdash; ''rate'' is the minimum bitrate.
*'''-M ''rate''''' &mdash; ''rate'' is the maximum bitrate.
*'''-M ''rate''''' &mdash; ''rate'' is the maximum bitrate.
*'''-q ''value''''' &mdash; Specifies the value (0 - 10) of VBR quality 10 is best quality.
*'''-q ''value''''' &mdash; Specifies the value (-1 - 10) of VBR quality 10 is best quality.
*'''--silent''' &mdash; The output of oggenc is hidden.
*'''--silent''' &mdash; The output of oggenc is hidden.


==== Flac mode params ====
====Flac mode params====
*'''--fast''' &mdash; FLAC uses compression level 0.
*'''--fast''' &mdash; FLAC uses compression level 0.
*'''--best''' &mdash; FLAC uses compression level 8.
*'''--best''' &mdash; FLAC uses compression level 8.
Line 85: Line 98:
*'''--silent''' &mdash; The output of FLAC is hidden.
*'''--silent''' &mdash; The output of FLAC is hidden.


== Compression Tools ==
==Compression Tools==


=== compress_agos ===
===compress_agos===
Used to compress the Feeble Files or Simon 1/2 voc/wav files
Used to compress the Feeble Files or Simon 1/2 voc/wav files
to MP3, Vorbis or FLAC.
to MP3, Vorbis or FLAC.
Line 94: Line 107:
   ./scummvm-tools-cli --tool compress_agos --vorbis -q 7 SIMON2.WAV
   ./scummvm-tools-cli --tool compress_agos --vorbis -q 7 SIMON2.WAV


=== compress_gob ===
===compress_gob===
Pending content...
* Used for compressing a extracted .STK/.ITK/.LTK/.JTK file.
Usage: compress_gob [-o <output path>] [-f] <conf file>
* <conf file> is a .gob file generated extract_gob_stk
* <-f> forces compression for all files


=== compress_kyra ===
===compress_kyra===
Used to compress The Legend of Kyrandia's speech files with
Used to compress The Legend of Kyrandia's speech files with
MP3, Vorbis or FLAC.
MP3, Vorbis or FLAC.
Line 111: Line 127:
Used to rebuild the datafile of Flight of the Amazon Queen,
Used to rebuild the datafile of Flight of the Amazon Queen,
and allow optional MP3, Vorbis or FLAC compression.
and allow optional MP3, Vorbis or FLAC compression.
For this tool you need both the original uncompressed ''queen.1'' data file and the ''queen.tbl'' file that is distributed with ScummVM.


Example of usage:
Example of usage:
Line 117: Line 135:
The default output file is "queen.1c"
The default output file is "queen.1c"


=== compress_saga ===
=== compress_saga===
Used to compress SAGA engine digital sound files to MP3, Vorbis
Used to compress SAGA engine digital sound files to MP3, Vorbis
or FLAC.  
or FLAC.  
Line 136: Line 154:
There is no compression support yet for the following versions:
There is no compression support yet for the following versions:
- The Mac CD Guild version of Inherit the Earth (uses MacBinary *.bin files)
*The Mac CD Guild version of Inherit the Earth (uses MacBinary *.bin files)
- The unsupported early DOS demo of Inherit the Earth
*The unsupported early DOS demo of Inherit the Earth
 
===compress_sci ===
Used to compress Sierra resource.aud/.sfx and AUDIO001.002 files. This tool is not compatible with SCI32 games!
 
Example of usage:
  ./scummvm-tools-cli --tool compress_sci --vorbis [-o output] resource.aud
 
===compress_scumm_bun===
<font color=red>Since version 2.6.0 ScummVM no longer supports playing the Dig with compressed BUN files.</font>


=== compress_scumm_bun ===
Used to the compress '.bun' music/voice files with MP3, Vorbis
Used to the compress '.bun' music/voice files with MP3, Vorbis
or FLAC.
or FLAC.
Line 149: Line 175:
than the original, for The Curse of Monkey Island!
than the original, for The Curse of Monkey Island!


=== compress_scumm_san ===
===compress_scumm_san ===
Compresses '.san' smush animation files. It uses lossless
Compresses '.san' smush animation files. It uses lossless
zlib for compressing FOBJ gfx chunks inside a san file.
zlib for compressing FOBJ gfx chunks inside a san file.
Line 171: Line 197:
move the '.flu' files, too!
move the '.flu' files, too!


=== compress_scumm_sou ===
===compress_scumm_sou===
<font color=red>Since version 2.6.0 ScummVM no longer supports playing Full Throttle with a compressed MONSTER.SOU file. Compressed files still work with other games.</font>
 
Used to compress .sou files to .so3 (MP3), .sog (Vorbis),
Used to compress .sou files to .so3 (MP3), .sog (Vorbis),
or .sof (FLAC).
or .sof (FLAC).
Line 180: Line 208:
   ./scummvm-tools-cli --mp3 MONSTER.SOU
   ./scummvm-tools-cli --mp3 MONSTER.SOU


=== compress_sword1 ===
===compress_sword1 ===
Used to compress Broken Sword 1's music and speech files to MP3 or Vorbis or FLAC.
Used to compress Broken Sword 1's music and speech files to MP3 or Vorbis or FLAC.
Only the PC and the Mac version are currently supported. The PSX version is not supported by this tool.
Only the PC and the Mac version are currently supported. The PSX version is not supported by this tool.
Line 194: Line 222:
   ./scummvm-tools-cli --tool compress_sword1 --vorbis --speech-only BS1/swordres.rif
   ./scummvm-tools-cli --tool compress_sword1 --vorbis --speech-only BS1/swordres.rif


=== compress_sword2 ===
===compress_sword2===
Used to compress Broken Sword 2's music and speech .clu
Used to compress Broken Sword 2's music and speech .clu
files to .cl3 (MP3), .clg (Vorbis) or .clf (FLAC).
files to .cl3 (MP3), .clg (Vorbis) or .clf (FLAC).
Line 202: Line 230:
use lossy compression.
use lossy compression.


=== compress_tinsel ===
===compress_tinsel===
Pending content...
Used to compress tinsel .smp files.


=== compress_touche ===
===compress_touche===
Used to compress and pack Touche speech files ('Vxxx' and
Used to compress and pack Touche speech files ('Vxxx' and
'OBJ') to MP3, Vorbis or FLAC to a single file named
'OBJ') to MP3, Vorbis or FLAC to a single file named
Line 213: Line 241:


Example of usage:
Example of usage:
   ./scummvm-tools-cli --tool compress_touche <flags here> [-o outputfile] <file>
   ./scummvm-tools-cli --tool compress_touche <flags here> [-o outputfile] <inputdir>


Default outpufile is the name of the input file with modified extension (depends on compression method).
If no ''outputfile'' is provided, or if it is a directory, the file will be named ''TOUCHE.XXX'', where XXX depends on the compression method, and will be created in the output directory if one is given, or the current directory otherwise.


=== compress_tucker ===
The ''inputdir'' should be the directory that contains all the touche data files (''TOUCHE.DAT'', ''OBJ'' and the ''Vxxx'' files).
 
===compress_tucker===
Used to compress .wav files from FX/MUSIC/SPEECH directories to a single file named TUCKER.SOx Once compressed, the 3 directories aren't required to play the game under ScummVM.
Used to compress .wav files from FX/MUSIC/SPEECH directories to a single file named TUCKER.SOx Once compressed, the 3 directories aren't required to play the game under ScummVM.


== Encoder Tools ==
==Encoder Tools==


=== encode_dxa <filename> ===
===encode_dxa <filename>===
Creates DXA file out of extracted Smacker video.
Creates DXA file out of extracted Smacker video.


Line 250: Line 280:
and conversion options work the same.
and conversion options work the same.


=== convert_dxa.bat, convert_dxa_one.bat ===
=== convert_dxa.bat, convert_dxa_one.bat===
To ease your life we also provide batch files to autoconvert
To ease your life we also provide batch files to autoconvert
all files. It should work with any game version.
all files. It should work with any game version.
Line 263: Line 293:
press OK
press OK


=== convert_dxa.sh ===
===convert_dxa.sh===
Same as above convert_dxa.bat, just for *nix-based systems.
Same as above convert_dxa.bat, just for *nix-based systems.
It uses Wine to run RAD Game Tools.
It uses Wine to run RAD Game Tools.


== Extraction Tools ==
==Extraction Tools==
Many games package together all their game data in a few big archive files. The following tools can be used to extract these archives, and in some cases are needed to make certain game versions usable with ScummVM. In general, though, they are mostly intended for ScummVM developers and not useful to end users.
Many games package together all their game data in a few big archive files. The following tools can be used to extract these archives, and in some cases are needed to make certain game versions usable with ScummVM. In general, though, they are mostly intended for ScummVM developers and not useful to end users.


=== extract_agos ===
===extract_agos ===
Extracts the packed files used in the Amiga and AtariST
Extracts the packed files used in the Amiga and AtariST
versions of Elvira 1/2, Waxworks and Simon the Sorcerer 1.
versions of Elvira 1/2, Waxworks and Simon the Sorcerer 1.


Example of use:
Example of usage:
  ./scummvm-tools-cli --tool extract_agos <infile 1> ... <infile n>
  ./scummvm-tools-cli --tool extract_agos <infile 1> ... <infile n>


=== extract_cine ===
===extract_cge===
...
Unpack Soltys and Sfinx game data files.
 
Example of usage:
./scummvm-tools-cli --tool extract_cge [-o outputdir] <inputfile>
 
The <inputfile> has to be either the vol.cat or the vol.dat file.
See also the [[#pack_cge|re-packaging tool]] for the Soltys game files.
 
=== extract_cine===
Unpacks Delphine's Cinematique engine's archive files. Should work at least with Future Wars and Operation Stealth. It seems to also work with Cruise for a Corpse.
It accepts only one input file. This may be either one of the archive file, in which case only this file is unpacked, or the 'vol.cnf' file, in which case all archive files listed in the 'vol.cnf' file are unpacked.
 
Example of usage:
./scummvm-tools-cli --tool extract_cine [-o outputdir] <infile>
 
===extract_cruise_pc===
Unpack the E1, E4 and E5 files found in some versions of Cruise for a Corpse. To extract the D1 to D5 files, use the extract_cine tool instead.
 
Example of usage:
./scummvm-tools-cli --tool extract_cruise_pc [-o outputdir] <infile>
 
===extract_fascination_cd===
Extract the hidden STK from Fascination CD. It's designed to work on ISO files of the first data track only i.e. ~11M, not 652M. If your CD reading tool does not support single track ISO creation, this can be created using a tool such as "dd" to truncate the ISO dump.


=== extract_gob_stk ===
=== extract_gob_stk===
...
* Extract the files from a Stick file used by 'gob' engine (.STK/.ITK/.LTK/.JTK).
* Usage: extract_gob_stk [-o outputname] stickname
* ouputname is used to force the gob config filename (used by compress_gob) stickname is the name of the file to extract/decompress


=== extract_kyra ===
=== extract_kyra===
Unpacks .PAK files from Kyrandia games.
Unpacks .PAK files from Kyrandia games.


=== extract_loom_tg16 ===
It is also able to extract the installer package files from Hand of Fate DOS floppy version. You should be sure you got all WESTWOOD.### files for that, since they are one big package file splitted into several, so with -x you will extract *all* files from the installer files.
 
This tool takes some additional arguments, run ./scummvm-tools-cli --help extract_kyra for details.
 
Example of usage:
./scummvm-tools-cli --tool extract_kyra -x [-o outputdir] <infile>
 
===extract_loom_tg16===
Extracts data files from the PC-Engine version of Loom.
Extracts data files from the PC-Engine version of Loom.


Line 293: Line 354:
'''Windows'''
'''Windows'''


Use dumpcd [[http://www.zeograd.com/misc_download.php dumpcd]]/[[http://gracesdisposal.bpweb.net/LOOM/ISO%20TOOLS/DUMPCD%20WIN/ GUI]]
Use dumpcd [[http://www.zeograd.com/misc_download.php dumpcd Link]]/[[https://adrianastley.com/files/scummvm/dumpcd.exe.gz Alternative Link]]
 
Alternatively use TurboRip from [[http://pcedev.net/utils/ here]].
There is also a version with a GUI available [[https://adrianastley.com/files/scummvm/windumpcd.rar here.]]
 
Alternatively use TurboRip from [[https://adrianastley.com/files/scummvm/TurboRipV100.rar here]].


Another alternative is to use the PC-Engine emulator [http://www.ouma.jp/ootake/ Ootake] (You will need to own an original console because Ootake requires that you dump the system card)   
Another alternative is to use the PC-Engine emulator [http://www.ouma.jp/ootake/ Ootake] (You will need to own an original console because Ootake requires that you dump the system card)   
Line 301: Line 364:
'''Linux'''
'''Linux'''


Use dumpcd [[http://gracesdisposal.bpweb.net/LOOM/ISO%20TOOLS/DUMPCD%20LINUX/dumpcd-bin-0.1.tar.bz2 dumpcd]]
You may compile dumpcd using the source code available [[https://adrianastley.com/files/scummvm/dumpcd-0.1.zip here]].
 
Alternatively you may compile dumpcd using the source code available [[http://gracesdisposal.bpweb.net/LOOM/ISO%20TOOLS/DUMPCD%20SOURCE%20LINUX/ here]].


=== extract_mm_apple ===
===extract_mm_apple===
Extracts data files from the Apple II version of Maniac
Extracts data files from the Apple II version of Maniac
Mansion.
Mansion.


=== extract_mm_c64 ===
===extract_mm_c64 ===
Extracts data files from the Commodore 64 version of Maniac
Extracts data files from the Commodore 64 version of Maniac
Mansion.
Mansion.


=== extract_mm_nes ===
===extract_mm_nes ===
Extracts data files from the NES version of Maniac Mansion.
Extracts data files from the NES version of Maniac Mansion.


=== extract_parallaction ===
===extract_parallaction===
Extracts the contents of archives used by Nippon Safes
Extracts the contents of archives used by Nippon Safes


=== extract_scumm_mac ===
===extract_scumm_mac ===
Extracts Macintosh "single file" SCUMM games into their
Extracts Macintosh "single file" SCUMM games into their
component parts, for use with ScummVM.
component parts, for use with ScummVM.
Line 327: Line 388:


=== extract_t7g_mac ===
=== extract_t7g_mac ===
...
Extract data files from the The 7th Guest Macintosh data file.


=== extract_zak_c64 ===
===extract_zak_c64===
Extracts data files from the Commodore 64 version of Zak
Extracts data files from the Commodore 64 version of Zak
McKracken.
McKracken.
===pack_cge===
Pack Soltys and Sfinx game data files (as such this is not really an extraction tool, see [[#extract_cge|extract_cge]] for the extraction tool).
Example of usage:
./scummvm-tools-cli --tool pack_cge [-o outputdir] <inputdir>


== Script Tools ==
== Script Tools ==
The following tools can be used to analyze the game scripts (controlling the behavior of certain scenes and actors in a game). They are intended for use by developers, and as such in general not helpful to normal users.
The following tools can be used to analyze the game scripts (controlling the behavior of certain scenes and actors in a game). They are intended for use by developers, and as such in general not helpful to normal users.


=== descumm ===
===decine===
Decompiles Delphine's Cinematique engine's scripts.
Should work at least with Future Wars and Operation Stealth.
 
Example of usage:
decine [type] [version] [filename]
 
type: -prc or -rel (Use -prc for *.prc-files, -rel for *.rel-files)<br>
version: -v1 or -v2 (Use -v1 for Future Wars, -v2 for Operation Stealth)<br>
filename: The name of the script file to decode
 
=== degob===
Decompiles TOT scripts used in Coktel Vision games
 
Example of usage:
  degob <version> <file.tot> [<file.ext>] [<commun.ext>]
 
<version> describes from which game the script file was taken and is one of "Gob1", "Gob2", "Gob3", "Ween", "Bargon", "Fascination", "Adibou2", "Geisha", "Lost", "Woodruff", "Dynasty" and "Urban".
 
If the script file calls loadMult(), the script file's EXT file must be supplied on the command line as well; some script files also require a commun.ext. degob throws an error to let you know if any of the two should be the case.
 
===dekyra===
Basic script disassembler for Legend of Kyrandia games
 
===descumm===
Decompiles SCUMM scripts.
Decompiles SCUMM scripts.


Line 379: Line 470:
If the script has been "unblocked", it is missing the header information as described in [[SCUMM/Technical_Reference/Script_resources]]. This information is not necessary to interperet the code, but you must tell descumm if is not present via the "-u" option.
If the script has been "unblocked", it is missing the header information as described in [[SCUMM/Technical_Reference/Script_resources]]. This information is not necessary to interperet the code, but you must tell descumm if is not present via the "-u" option.


=== desword2 ===
===desword2===
Disassembles Broken Sword II scripts
Disassembles Broken Sword II scripts


=== dekyra ===
===degroovie===
Basic script disassembler for Legend of Kyrandia games
Disassembles and reassembles Groovie and Groovie 2 scripts. Use -v v2 for Groovie 2.
 
To disassemble:
./decompile -D -e groovie -v v2 ~/The11thHour/GROOVIE/SCRIPT.GRV > ~/script.gasm
To reassemble
./decompile -e groovie -v v2 ~/script.gasm -b ~/script.grv
 
==Other Tools==
 
===pack_bladerunner===
Can be used to pack the four "CDFRAMES.DAT" files from the four Blade Runner CDs into a single "HDFRAMES.DAT" file (this is the file that the original game installer creates) which should be copied into the game's directory.
Syntax:
  ./scummvm-tools-cli --tool pack_bladerunner <inputdir>/CDFRAMES1.DAT
The <inputdir> is the path to the folder that should contain the "CDFRAMES.DAT" files from the game CDs, renamed as ''"CDFRAMES1.DAT", "CDFRAMES2.DAT", "CDFRAMES3.DAT", "CDFRAMES4.DAT"'' copied from the first, second, third and fourth CD respectively.
 
Note that '''an alternative method''', also supported by ScummVM, is to simply copy the "CDFRAMES.DAT" files from each CD directly into the game directory; the "CDFRAMES.DAT" files would still have to be renamed as ''"CDFRAMES1.DAT", "CDFRAMES2.DAT", "CDFRAMES3.DAT", "CDFRAMES4.DAT"'' as above, so that they are properly detected by ScummVM.
 
=== create_sjisfnt===
 
Allows the creation of a Shift JIS Japanese font from a compatible truetype font (sazanami-mincho.ttf / kochi-mincho.ttf)
Syntax:
  create_sjisfnt [compatible font] SJIS.FNT
Can be used for all FM-Towns/PC-98/PC-Engine games which require the original font ROMs.
 


{{ManualFooterLinksNoNext|prev=Appendix: Config file description}}
{{ManualFooterLinksNoNext|prev=Appendix: Config file description}}
2,158

edits