Short: Neill Corlett's Command-Line Pack Author: Neill Corlett Uploader: Fredrik Wikstrom Type: util/cli Version: 1.03 Architecture: ppc-amigaos URL: http://www.neillcorlett.com/cmdpack/ -------------------------------------------------------------------------------- Command-Line Pack v1.03 Copyright (C) 1996-2011 Neill Corlett http://www.neillcorlett.com/cmdpack/ -------------------------------------------------------------------------------- This is a collection of command-line tools I've written over the years that I decided to clean up and repackage. All of the tools are released under the terms of the GNU General Public License version 3. -------------------------------------------------------------------------------- Contents -------------------------------------------------------------------------------- bin2iso - Convert CD .BIN to .ISO --------------------------------- Converts CD-ROM .BIN images (including full 2352-byte sectors) into .ISO format (2048-byte sectors). Automatically detects mode 1 or 2. Will warn if there are any form 2 sectors, which are not convertible. Usage: bin2iso [-f] input_file output_file -f: Force conversion and bypass checks bincomp - Compare binary files ------------------------------ Similar to the old DOS "FC /B" command. The default output is a side-by-side table showing 16 bytes per line. The "-l" flag will show one byte per line. Usage: bincomp file1 file2 [-l] -l Use long format brrrip - Rip SNES BRR sound samples ----------------------------------- Automatically detects and rips sound samples from SNES ROMs. Works great with uncompressed .SPC files too. Usage: brrrip romfile [samplerate [minblocks]] "samplerate" should be given in Hz. Samples will only be detected if they are at least "minblocks" long (default=50). The output files will be named (hex address).wav. byteshuf - Shuffle or unshuffle bytes in a file ----------------------------------------------- Divides a file into its interleaved even/odd bytes, or recombines them. Can also divide every 3rd, 4th, etc. byte, depending on how many subfiles you specify. Useful for dealing with certain types of ROM images. Usage: To unshuffle: byteshuf [-o] -u source [subfiles...] To shuffle: byteshuf [-o] -s destination [subfiles...] Options: -o Force overwrite For example, "byteshuf -u abc def0 def1" will split all the even bytes from "abc" into "def0", and the odd bytes into "def1". byteswap - Swap byte order of files ----------------------------------- Swaps the byte order of each record in a file, in place. If the record size is 2, this means every even and odd byte is swapped, but the record size can also be larger than 2. Useful for dealing with certain types of ROM images. Usage: byteswap [-q] [-s recordsize] files... -q: Quiet -s: Size, in bytes, of each record to swap (default: 2) cdpatch - CD-XA image insert/extract utility -------------------------------------------- Inserts or extracts files in-place into CD-ROM images in either .BIN or .ISO format. Properly handles CD-XA streams from Mode 2 CDs (Video CDs, PlayStation movie files, etc.) and patches ECC/EDC data as appropriate. Usage: To insert: cdpatch -i bin_or_iso [options] [files...] To extract: cdpatch -x bin_or_iso [options] [files...] Options: -be Favor big-endian values in ISO9660 metadata -boot Insert or extract boot area -d dir Set the base directory for inserted or extracted files (defaults to .) -f Skip filesystem consistency checks -le Favor little-endian values in ISO9660 metadata -o Force overwrite when extracting files -r Recurse into subdirectories -v Verbose By default, cdpatch will attempt to insert or extract every file in the CD image, the same as if you'd specified "-r ." The "-boot" option will insert or extract the 32KiB boot sector area to a file named "boot". Some CD images may have conflicting sets big- and little-endian metadata as a platform-specific quirk or copy protection scheme; the "-be" and "-le" options can be used to override this. Specifying both -f and -v will list all filesystem errors, while still ignoring them for extraction purposes. When extracting files via -x, cdpatch preserves file modification times when possible. ecm - Encoder/decoder for Error Code Modeler format --------------------------------------------------- ECM is a compression format for CD images which removes ECC/EDC data where it's possible to do so losslessly. Compressing a CD image with ECM first, then compressing the ECM file with a general-purpose compressor such as 7z or RAR, can result in better compression than 7z or RAR alone. See http://www.neillcorlett.com/ecm/ for more details. Usage: To encode: ecm cdimagefile ecm cdimagefile ecmfile ecm e cdimagefile ecmfile To decode: unecm ecmfile unecm ecmfile cdimagefile ecm d ecmfile cdimagefile fakecrc - Fake the CRC32 of a file ---------------------------------- Modifies a file to force it to have a particular CRC32 checksum, by patching 4 consecutive bytes anywhere in the file. Can also obtain the CRC32 checksum of a file. Usage: To obtain the CRC32 of a file: fakecrc file To modify the CRC32 of a file: fakecrc file desired_crc [offset] The 4 bytes at "offset" will be modified. If no offset is given, the last 4 bytes of the file are used. hax65816 - Simple 65816 disassembler ------------------------------------ A simple 65c816 disassembler with basic flag following. This is the disassembler I used for the Seiken Densetsu 3 project, among others. Usage: hax65816 imagefile start address [length] [options] Output is written to stdout. All values must be given in hex. If no length is given, disassembly will stop at the end of the bank. Options: -m0 Assume M flag = 0 -m1 Assume M flag = 1 (default) -x0 Assume X flag = 0 (default) -x1 Assume X flag = 1 -noreturn Disable flag reset after RTS/RTL/RTI -noguess Disable flag guess on BRK/COP/WDM/STP -nofollow Disable REP/SEP following (not recommended) id3point - Pointless ID3v1 Tagger --------------------------------- A basic ID3v1 tagger for MP3 files. Probably superseded by newer tools, but included here nonetheless. Usage: id3point [options] mp3file(s) Options: -t title Set ID3 title -t- Clear ID3 title -a artist Set ID3 artist -a- Clear ID3 artist -m album Set ID3 album -m- Clear ID3 album -y year Set ID3 year -y- Clear ID3 year -c comment Set ID3 comment -c- Clear ID3 comment -k track# Set ID3 track # -k- Clear ID3 track # -g genre# Set ID3 genre # -g- Clear ID3 genre # -tf Set ID3 title based on the filename Notes: - Only ID3v1 tags are supported. - The track number increments automatically for each additional file. - The -tf option will turn "Artist - Title.mp3" into "Title", but be sure to check the titles by hand in case it gets confused. pecompat - Maximize compatibility of a Win32 PE file ---------------------------------------------------- Patches a Windows 32-bit PE executable file to maximize its compatibility with older versions of Windows. - Clears the linker timestamp - Sets the required OS version and subsystem version to "4.00" - Recalculates the PE file checksum - Warns if any Unicode import functions are used Usage: pecompat pe_exe_file(s) rels - Relative Searcher ------------------------ Searches for a string in a group of files by comparing the relative difference between each letter. This allows finding strings in non-ASCII character sets. Also attempts double values (e.g. 00=A, 02=B, 04=C) and wide values (every other byte, as in UCS-2). A staple ROM hacking tool. Usage: rels string files Search strings may include '.' characters as wildcards, but must include at least two non-wildcard characters. screamf - .AMF to .S3M converter -------------------------------- Converts AMF music files to S3M. AMF was a format used exclusively by Otto Chrons' DOS Sound and Music Interface (DSMI) library and Dual Module Player. Various DOS games and demos in the 1990s used this format. AMF files were the result of running MOD2AMF on an existing S3M or other module; screamf does the opposite. It's round-trippable for the most part. Usage: screamf inputfile.amf outputfile.s3m subfile - Extract a portion of a file ------------------------------------- Extracts a portion of a file, given a starting offset and length, in bytes. Offset and length may be specified in C style "0x123" or "0123" notation for hexadecimal or octal. Usage: subfile infile offset length outfile uips - Universal IPS patch create/apply utility ----------------------------------------------- UIPS is a command-line utility for creating and applying IPS patches. IPS is an old patch format for binary files, limited to 16 MiB in size, and not to be confused with the newer UPS format. Multiple source files and IPS v2 truncation are supported. Usage: To create an IPS patch: uips c patch_file source_file(s) target_file To apply an IPS patch: uips a patch_file target_file For example, "uips c patch.ips file1 file2 file3 file4" will create a patch file capable of transforming any of file1, file2, or file3 to file4. usfv - Universal SFV create/verify utility ------------------------------------------ USFV is a utility for creating and verifying SFV (Simple File Verification) files, such as those created by Win-SFV32. A SFV file contains a list of filenames and their corresponding CRC32 checksums. Caveat: CRC32 is not a cryptographic hash and cannot be used to ensure that a file was not maliciously modified (see fakecrc, above). Usage: To create a SFV file: usfv c sfvfile filenames To verify a SFV file: usfv v sfvfile vb2rip - VB2 sound format ripping utility ----------------------------------------- Rips music in .VB2 and various similar formats found in PlayStation and PlayStation 2 games. See http://www.neillcorlett.com/vb2rip/ for more details. Usage: vb2rip [options] inputfile(s) Options: -fmt format Specify the input file format -o path Specify the output filename (if one input file is given) or specify the output directory (if several are given) -mono Treat input file as monaural -stereo Treat input file as stereo -rate n Specify the sample rate -interleave n Specify the block interleave size -skip n Skip this many bytes after each block -offset n Start at the given offset in the input file -endflag Stop decoding when the sample end flag is reached -noendflag Ignore the sample end flag -maxbytes n Set the maximum number of input bytes to decode Supported input formats: Format Description ------------------------------------------------------------ raw Raw data (for experimentation) vb2 Konami multi-song .BIN/.VB2 file (Dance Dance Revolution, etc.) 8 .8 file (Suikoden) msa .MSA file (Psyvariar, possibly other PS2 games) xa2 .XA2 file (Extreme-G 3, possibly other PS2 games) wordadd - Addition word puzzle solver ------------------------------------- Finds solutions to letter/digit substitution puzzles of the "WORD + WORD = OTHER" variety. Supports multiple addends and digits mixed in with letters. Usage: wordadd words... sum Examples: wordadd BEEF BACON MEATS zerofill - Create a large, empty file ------------------------------------- Creates a file filled with bytes of value zero. Similar to "dd if=/dev/zero", except not all platforms have dd, and there's a progress indicator. Inside a virtual machine, zerofill can be used to create a large dummy file in order to zero out all the unused sectors before compressing the drive image. (zerofill is also useful for creating drive images in the first place.) Usage: zerofill [-f] [-q] size filename -f: Force overwrite -q: Quiet "size" may be specified in C style "0x123" or "0123" notation for hexadecimal or octal. -------------------------------------------------------------------------------- Terms of use -------------------------------------------------------------------------------- All of the programs included in Command-Line Pack are subject to the following terms of use: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . --------------------------------------------------------------------------------