nice to be helpful ... 




Usage: quickbms [options] <script.BMS> <input_archive/folder> <output_folder>
Options:
-l list the files without extracting them, you can use . as output folder
-f W filter the files to extract using the W wildcard, example -f "*.mp3"
-F W as above but works only with the files in the input folder (if used)
-o if the output files already exist this option will overwrite them
automatically without asking the user's confirmation
-r experimental reimport option that should work with some archives:
quickbms script.bms archive.pak output_folder
modify the needed files in output_folder and maybe remove the others
quickbms -w -r script.bms archive.pak output_folder
-w enable the write mode required to write phisical input files with Put*
-d automatically creates an additional output folder with the name of the
input file processed without extension
-E experimental option for automatically reversing the endianess of any
memory file simply reading it field by field
-c quick list of BMS commands and some notes about them and this tool
-v verbose debug informations, useful for verifying possible errors
-L F dump the offset/size/name of the files inside the file F
-x use the hexadecimal notation in myitoa (debug)
-0 no extraction of files, useful for testing a script without using space
As already said QuickBMS is a primarly an extraction tool, anyway from
version 0.4.9 it supports also the -r option that transforms the tool
in a simple reimporter/reinjector and so could be useful in some cases
for who wants to mod or translate a game.
The idea consists in being able to reimport ("inject back") the
modified files in the majority archives without touching a single line
of the script, yeah just reusing the same bms scripts that already
exist!
Using this feature is really trivial and the following is an example
step-by-step:
- make a backup copy of the original archive!
- extract the files or only those you want to modify (-f option) as you
do normally via the GUI (double-click on quickbms.exe) or via
command-line:
quickbms script.bms archive.pak output_folder
- do your modifications to the extracted files and I suggest to delete
the files that have not been modified so that the reimporting process
will be faster, so if you can it's better if in the folder you leave
only the files you have changed
note that their size must be minor or equal than the original!
- reimport the files in the archive via the GUI (like the file.bat
containing quickbms.exe -w -r) or command-line:
quickbms -w -r script.bms archive.pak output_folder
- test the game with the modified archive
Obviously you can use the GUI also for the reimporting procedure
because it's enough to create a batch file called reimport.bat
containing the following line and then double clicking on it when you
need to do this job:
quickbms.exe -w -r
Now some important notes about this particular reimporting process:
- you CANNOT increase the size of the files you want to reimport, so
the new files must be minor or equal than the originals
- for the maximum compatibility within the thousands of available file
formats I have decided to not use tricks for modifying the original
size and compressed_size values (think to those formats that use
encrypted information tables or the scripts that use MEMORY_FILEs
for such tables or that use things like "math SIZE *= 0x800")
- the script is just the same for both the extraction and the
reimporthing phase which means that many of the scripts written by me
and the other users already work
- the reimporting of compressed files is perfectly possible because
the tool automatically switches to the relative compression algorithm
if available (for example zlib->zlib_compress)
- if the original archive uses complex encryptions that require the
usage of MEMORY_FILEs to perform temporary decryptions then it's NOT
supported and the same is valid for chunked content (like the usage
of the command Append)
- FileXor, FileRot, Encryption and Filecrypt should work correctly
- things like CRCs and hashes can't be supported
- it's possible to reimport also the nameless files (log "" OFFSET SIZE)
but you must first change their extension in DAT so that QuickBMS
will find and load them, for example 00001234.txt must be renamed to
00001234.dat




