I haven't read in detail the last couple of pages, but I guess you're having problem with preallocation on linux? In wbfs_file, preallocation is #ifdefed only for windows, because that's the only os that needs such measures to prevent fragmentation, and on windows preallocating has no performance impact, only positive effects.
The test options --sparse --defrag and --pa-limit=size will be removed.
I implement a new option --prealloc with an optional parameter.
--prealloc=0 disables preallocation. This is the default for NON-CYGWIN.
--prealloc=1 enables an smart preallocation ignoring unused blocks.
--prealloc=2 or simple --prealloc preallocates the complete CISO or WBFS file. This is the default for CYGWIN because --prealloc=1 doesn't work like thought if the sparse holes are small.
Modes '1' and '2' are only different for WBFS and CISO files. ISO files will always use '1', and WDF and WIA files always '2' if nit disabled.
Later I will implement the preallocation for non image files (e.g. extracted files).
--prealloc=2 or simple --prealloc preallocates the complete CISO or WBFS file. This is the default for CYGWIN because --prealloc=1 doesn't work like thought if the sparse holes are small.
Ok, I have committed v1.23,beta4 (nice digit order) inti the beta branch.
New option: --prealloc
CODE
--prealloc [=mode] This option enables or disables the disc space preallocation. If enabled the tools try to allocate disc space for the new files before writing the data. This reduces the fragmentation but also disables the sparse effect for prealocated areas. The optional parameter decides the preallocation modus: OFF (or 0), SMART (or 1), ALL (or 2). If no parameter is set, ALL is used. Mode 'OFF' disables the preallocation. This is the default for all non Cygwin releases because preallocation has only advantages on Windows systems. Mode 'SMART' looks into the source disc to find out the writing areas. SMART is only avalable for ISO, CISO and WBFS file types. For other file types ALL is used instead. Mode 'ALL' preallocate the whole destination file. This is the default for Cygwin. Because of the large holes in plain ISO images, the SMART mode is used for ISOs instead.
I've used WIA enough to report in. After testing 12 games, I get compression ratios of 50-60% almost every time with 7-zip+LZMA1 (Ultra). Some games do still only compress to 80-90%, but that's still great. I love WIA.
WIT: Wiimms ISO Tools v1.23a.beta5 - 2010-12-03 Beta test version, for EXPERIMENTAL use only.
WIT (Wiimms ISO Tools) is a set of command line tools to manipulate Wii ISO images and WBFS containers. The two main tools are called wit (Wiimms ISO Tool) and wwt (Wiimms WBFS Tool, the WBFS manager).
Preallocation to avoid fragmentation I have implemented disc space preallocation. Under Windows it can avoid fragmentation. Therfor it is only enabled for Cygwin by default. It can be disabled with --prealloc=0 or enabled with --prealloc. See http://wit.wiimm.de/opt/prealloc for more details. .
ID wildcards for some wwt commands The wwt commands EXTRACT + REMOVE + TOUCH + VERIFY wil support now ID wildcards to select different discs. See http://wit.wiimm.de/info/disc-id.html for more details. The needed preallocation function is not avaialable for Mac. So Mac will ignore --prealloc. .
wwt EXTRACT rewritten "wwt EXTRACT" is now able to patch while extracting and to create WIA files like "wit COPY". It support also the options --fst --pmode --psel --raw --files and --sneek. http://wit.wiimm.de/wwt/cmd-extract.html for more details. .
Change log:
CODE
wit v1.23a.beta5 r2068 - 2010-12-03
- Preallocation of disc space implemented. It is only enabled for Cygwin by default. It can be disabled with --prealloc=0 or enabled with --prealloc. The needed preallocation function is not avaialable for mac. - wwt EXTRACT + REMOVE + TOUCH + VERIFY: These commands accept now ID6 pattern like '...P' or '+1'. Each '.' is a wildcard that matches any single character. A '+' matches any number of characters. For details see http://wit.wiimm.de/info/disc-id.html - wwt EXTRACT is now able to patch while extracting and to create WIA files. It support also the options --fst --pmode --psel --raw --files and --sneek.
Known bugs:
- The GameCube support is in development and EXPERIMENTAL! - wit COPY --raw: Copying an image in raw mode to a WBFS file is buggy. - There are new problems while reading from non seekable sources (e.g. pipes). The reason is the complete new and more intelligent wiidisc lib which makes more lookups ==> The best is to use version 1.01c for pipes. - No WIA/bzip2 support for MAC/x86_64. (bug in the Mac bzip2 library)
Missing docu:
- wit commands FILES + EXTRACT => see built in help - Tool wdf => see built in help
The source is published under the license of GPL2. Checkout the sources directly from the SVN repository or browse the source. These URLs are different from the product version. Visit http://wit.wiimm.de/ for more information.
WIT: Wiimms ISO Tools v1.26a.beta1 - 2011-01-11 Beta test version, for EXPERIMENTAL use only.
WIT (Wiimms ISO Tools) is a set of command line tools to manipulate Wii ISO images and WBFS containers. The two main tools are called wit (Wiimms ISO Tool) and wwt (Wiimms WBFS Tool, the WBFS manager).
I have made some changes in the make system to support local libraries with own makefiles (libbz2.a), option -static and cross compiling (Linux/i386 on Linux/x86_64). Hope that all work as usual. Please test it! .
.
Change log:
CODE
wit v1.26a.beta1 r2156 - 2011-01-11
- I have made some changes in the make system to support local libraries with own makefiles (libbz2.a), option -static and cross compiling (Linux/i386 on Linux/x86_64). Hope that all work as usual. - BZIP2 support is now included as source and should work for all systems. This enables WIA/bzip2 support for Mac/x86_64. - The distributions of Linux/i386 and Linux/X86_64 are linked static to to avoid GLIBC version issues (e.g. fallocate() support). - On Linux/x86_64: Enter "M32=1 make ..." to create i386 binaries. I386 libraries and include files are needed. - "wit COPY/CONVERT/EXTRACT/DIFF" support option --sections.
Known bugs:
- The GameCube support is in development and EXPERIMENTAL! - GameCube conversion to WIA fails. - There are new problems while reading from non seekable sources (e.g. pipes). The reason is the complete new and more intelligent wiidisc lib which makes more lookups ==> The best is to use version 1.01c for pipes.
The source is published under the license of GPL2. Checkout the sources directly from the SVN repository or browse the source. These URLs are different from the product version. Visit http://wit.wiimm.de/ for more information.
any chance you could change the makefile to support the jobserver? in prior revisions, "make -j4" works as expected. with whatever changes were made to add the bzib library, it causes make to spit out some crap about the jobserver.
mine says Mac OS X 10.6.4 (10f569) kernel version 10.0.0 if you have any ideas about what i may have done to break it, ill try them. but all i did is checkout the source and type make.