
*******************************************************************************
*******              Wiimms ISO Toolset v2.10a - 2012-10-10             *******
*******************************************************************************

Wiimms ISO Toolset (WIT) is a command line tool set for linux and for other
unix like operating systems including cygwin. The tools manage WBFS partitions
and ISO Images. WWT cotains the following tools:

The both main tools are:
  wit      : Wiimms ISO Tool manage ISO files.
  wwt      : Wiimms WBFS Tool manage WBFS partitions.

And these are special WDF and CISO tools:
  wdf-cat  : a 'cat' like programm with special handling of WDF files.
  wdf-dump : dump the data structure of a WDF file.

The software is developed under the GPL 2.0 license. See file gpl-2.0.txt
or URI http://www.gnu.org/licenses/gpl-2.0.txt for details.

The most current source is available under:
  http://wit.wiimm.de/r/viewvc/
The source of this revision (4118) is available under:
  http://wit.wiimm.de/r/viewvc/?pathrev=4118
You can also checkout the SVN repository:
  http://opensvn.wiimm.de/wii/trunk/wiimms-iso-tools//

See http://wit.wiimm.de/ for announcements and discussions.


*******************************************************************************
*******                     Content of all documents                  *********
*******************************************************************************

The documentation is divided into several files:

  DOCUMENTATION.txt : General overview.
  FAQ.txt           : FAQ of all tools.
  HISTORY.txt       : Complete development history.

  wit.txt           : Documentation about the tool 'wit'.
  wwt.txt           : Documentation about the tool 'wwt'.

  WDF.txt           : Definition of a WDF file.
  WBFS.txt          : Interesting things about WBFS



*******************************************************************************
*******                           HISTORY v2.*                          *******
*******************************************************************************

wit v2.00a r2834 - 2011-07-08

 - Because no bugs (exclude installing) reported since months my WIT tools
   seems to be perfect (or ready to use or something between). So it's time
   to increase the major version and to proclaim v2.00a. The whole project
   consists about 100 000 code lines.
 - Bug fix for Windows install script: Remove duplicate WIT entries.


wit v2.00b r2855 - 2011-07-13
 - Bug fix: If creating a Wii image and using hard links (option --links) the
   offsets of some hard linked files are wrong for some special situations.


wit v2.01a r3138 - 2011-10-27

 - Windows version only: Update to Cygwin DLL 1.7.9-1
 - Bug fix (thanx to fig2k4): Special characters in FST file names with code
   >127 will now be translated into UTF-8 to list and create files correct.
 - New option for "wwt LIST": --fragments: Print fragments and a ratio instead
   of the region info. A summary line is printed too.
 - New command: wwt LIST-F|LF: Short cut for "wwt LIST --fragments"
 - Option --sort=fragments sort some listings by the number of wbfs fragments.
 - Option --fast is ignored and will be removed in the near future.
   Please don't use --fast any longer.
 - New option: --copy-gc: If extracting a GameCube disc image, don't extract
   the real files to '/files/...'. Instead create a copy of the source image
   and store it as 'game.iso'. If the source image have the correct format and
   option --no-link is not set, try a hard link first.
 - Option --neek replaces the old --sneek, but --sneek is also accepted.
   Option --neek includes now option --copy-gc.
 - "wit extract --neek --dest %i": Extract like DiscEx (but faster!).
   The only change is for GameCube discs because of implied --copy-gc.


wit v2.02a r3240 - 2011-11-25

 - The default output filename for WBFS files changed from "ID6.wbfs" ("%+")
   to "TITLE [ID6].wbfs" ("%X").
 - The file order for composed files is now Nintendo like.
 - If extracting an image, a new files called 'align-files.txt' is created. It
   stores information about file alligning. If creating a new image and option
   --align-files is set, this file is read to align files, that have a previous
   aligning of >=0x8000 (Wii sector size). This fixes the bug for "Super Paper
   Mario" and perhaps for some other games.
 - wit FILES: If the file list is sorted by offset, than an 'unused' column is
   added before the 'offset' column.
 - wfuse for Mac is back again. It was lost because non installed FUSE package.


wit v2.03a r3309 - 2011-12-30

 - wit+wwt SKELETON: Support of GameCube images.
 - New command: wwt DUP: Duplicate an existing WBFS to a new file including
   block assigning errors. The idea is to have a command, that can duplicate
   a defect WBFS for tests.
 - Command "wwt DUMP" accept now --show for a fine control of printed data.
   The dump may now contain also a usage table and a integrity check report.

 - For a long time the code contains a WBFS extension. Now I have ompleted,
   enabled and tested it. With this extension the WBFS "free blocks table" is
   managed in a total different way:
    - WBFS access: While opening a WBFS the free blocks table is ignored.
      Instead of using the stored one an internal memory map of used blocks is
      built. This needs only a part of a second. Some advantages:
       - Errors in the free blocks table are irrelevant.
       - Blocks overlaps and invalid block assignings are automatically
         detected, reported, and fixed for internal usage.
       - If removing a discs with overlaps, the blocks are still marked used.
       - Blocks, that are not handled by the free blocks tables (the table is
         sometiems to small -> a result of a calculation bug in the original
         libwbfs) can be used. If closing, a new and fixed free blocks table
         will be written. This makes the whole process compatible to other
         WBFS managers and USB loaders.
    - wwt ADD: Before adding a disc its size is compared against the free size
      of the WBFS. This allows an early "disc full" error message.
    - wwt ADD: If adding a disc to a partition a continuous memory block is
      searched to minimize the (non existent) fragmentation. This disabled for
      WBFS files by default because a file itself can be fragmented. 
    - wwt ADD+PHANTOM --wbfs-alloc=mode: Set the WBFS block allocation mode.
    - The commands "wwt CHECK", "wwt REPAIR" and "wwt EDIT" have been modified
      to work with the new interface.


wit v2.04a r3554 - 2012-03-10

 - New option: wit --force: Ignore partition size errors and allow access to
   damaged partitions. "wwt --force" works similar.
 - New options: --disc-id=id, --boot-id=id, --ticket-id=id, --tmd-id=id and
   --wbfs-id=id: Patch only the specific ID. These options are handled after
   the --id and --modify options. Patching the WBFS ID while adding a game is
   now also possible.
 - New implementation of command "wit ID6": It generates an ID6 list of all
   sources. This is similar as before, only the meaning of the parameters
   changed. If option --long is set, a table with 5 IDs (DISC, BOOT, TICKET,
   TMD and WBFS) is printed. BOOT, TICKET and TMD IDs are taken from the main
   partition. If --long is set twice, all IDs of all partitions are printed.
 - wwt LLLL: List contains date and time (in seconds) columns.


wit v2.05a r3591 - 2012-04-14

 - "wit VERIFY" will now ignore extracted file systems.
 - wit --id=.....X: ID change failed if only the sixt character was modified.
 - All ID patching options (--id, --disc-id, ...) accept now a plus sign '+' as
   wildcard for multiple '.' to fill the complete entered ID to 4/6 characters.
 - The listing command "wit ID6" accepts now all ID patching options to test
   the effect of them.


wit v2.05b r3611 - 2012-04-20

 - Bug fix for assertion failure in "wwt RECOVER".


wit v2.06a r3832 - 2012-06-15

 - Windows version only: Update to Cygwin DLL 1.7.15-1
 - wit CERT --long: Print keys and signatures as hex or base64 dump.


wit v2.07a r3955 - 2012-07-14

 - Bug fix: The automatic directory creation if using %-escapes in destination
   file names was gone and is now back again.
 - Bug fix: Extracting files of directories beginning with '.' fails sometimes.
 - Bug fix: "wit edit --id=... a.wbfs" may now change the WBFS id too.
 - Bug fix: wwt (but not wit) ignored the parameter of option --include-path.
 - Because of compiler warnings: Switched from utime() to utimes().


wit v2.08a r4027 - 2012-08-31

 - New command: wit IMGFILES: Print a list (1 file per line) with all image
   files inlcuding their associated split files. If option --null (-0) is set,
   the list is NULL terminated to support all possible file names.
 - New command: wit REMOVE: Removes the image files including their associated
   split files.
 - New option --scan-progress: Print a log message is printed for each found
   image while scanning the local file system.
 - Bug fix: "wit COPY --source a --dest b" threw an error, because the tool
   thought, that no source was defined.
 - Bug fix for "wwt ADD --raw": wwt copied to large (double layer) images.


wit v2.09a r4047 - 2012-09-08

 - Option --scan-progress prints more info and flush every log output.
 - Bug fix: "wit MOVE a.wbfs ..." will work now.
 - New escapes for output files: The old '%f' is the source filename without
   path (like 'name.ext'). Now we have also '%g' and '%h' as split of '%f':
   '%g' is file name without extension ('name') and '%h' is the extension
   ('.ext').
 - Bug fix: "wit COPY --recurse a --dest b" threw an error, because the tool
   thought, that no source was defined (same as with --source before).


wit v2.09b r4053 - 2012-09-09

 - Bug fix: Because of the --recurse bug fix of v2.08a, "wit COPY" failed.


wit v2.10a r4118 - 2012-10-10

 - Write privileges are not longer needed, if a WBFS file or partiton is only
   read.
 - New command: wit ANAID (ANAlyze ID): Analyze the entered IDs and print one
   line for each ID with 3 columns: HEX_ID, ASCII_ID, Game title.
 - Little (compatible) changes for WDF v1.
 - New command: wit FRAGMENTS: Print the image fragments and, if possible,
   their filesystem mapping. Add option --brief (-b) to print only a summary
   with the fragment counts. Add option --long (-l) to print additonally
   alignment infos.
   *NOTE: Filesystem mapping is only supported on real linux systems (yet),
          but neither for Mac nor for Cygwin.
 - The image builder search now the file 'exclude.fst' to exclude files from
   the composing. See http://wit.wiimm.de/info/composing.html#part for details.



Road map (for some point in the future):

 I have already stopped the development in favor of my SZS tools. But there
 are some already planned extensions:

 - GameCube support is still incomplete.
    - Creation of GameCube disc is not possible.

 - There are already code fragments implemented to trim discs in three levels:
    - Move partitions as whole to eliminate disc holes.
    - Move partition sectors to reduce partition size (alternative for
      partition scrubbing). Fake signing is necessary.
    - Move files of partitons to optimize the step above a little.
   For all trimming levels alignment factors may be set and it should be
   possible to set special alignments for GameCube sound files.

 - On the fly patching: Create a new image as combination of 2 or more sources.
   Therefor trimming (sector or file level) is needed.


*******************************************************************************
*******                              END                                *******
*******************************************************************************
