Hacking wwt+wit: Wiimms WBFS+ISO Tools

Bauldrick

Well-Known Member
Member
Joined
Jan 22, 2009
Messages
103
Trophies
0
XP
100
Country
Wiimm said:
Can anyone do it for Vista and Win7?

Windows 7 Home 64-bit
New Cygwin DLL 1.7.7-1 release
wwt: Wiimms WBFS Tool v1.21a r1980 cygwin - Dirk Clemens - 2010-11-17
Code:
$ cat /proc/partitions
major minorÂÂ#blocksÂÂname

ÂÂÂÂ8ÂÂÂÂ 0 488386584 sda
ÂÂÂÂ8ÂÂÂÂ 1ÂÂÂÂ409600 sda1
ÂÂÂÂ8ÂÂÂÂ 2 243951616 sda2
ÂÂÂÂ8ÂÂÂÂ 3 244023320 sda3
ÂÂÂÂ8ÂÂÂÂ16ÂÂ 1948672 sdb
ÂÂÂÂ8ÂÂÂÂ17ÂÂ 1948606 sdb1

CODE$ wwt find -l

typeÂÂwbfs d.usageÂÂÂÂsizeÂÂfile (sizes in MiB)
-----------------------------------------------
-ÂÂÂÂÂÂ--ÂÂÂÂÂÂÂÂ0ÂÂÂÂÂÂ 0ÂÂ/dev/sda
-ÂÂÂÂÂÂ--ÂÂÂÂÂÂÂÂ0ÂÂÂÂÂÂ 0ÂÂ/dev/sda1
-ÂÂÂÂÂÂ--ÂÂÂÂÂÂÂÂ0ÂÂÂÂÂÂ 0ÂÂ/dev/sda2
-ÂÂÂÂÂÂ--ÂÂÂÂÂÂÂÂ0ÂÂÂÂÂÂ 0ÂÂ/dev/sda3
-ÂÂÂÂÂÂ--ÂÂÂÂÂÂÂÂ0ÂÂÂÂÂÂ 0ÂÂ/dev/sdb
BLOCKÂÂ--ÂÂÂÂÂÂÂÂ0ÂÂÂÂ1903ÂÂ/dev/sdb1
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
wiimms-tools.png


WIT: Wiimms ISO Tools v1.22a - 2010-11-22
A command line ISO+WBFS tool set for various os.

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).

Feature overview:Visit http://wit.wiimm.de/features.html for more details.

Download of the current version:
There are also some GUI available:

Change log:


Code:
wit v1.22a r2012 - 2010-11-22

- New command: wit CERT: Collect certificates and eliminate multiple entries
ÂÂ of the same certificate. Dump all collected certificates to standard
ÂÂ output (stdout) and/or write the certificate as binary to a file. Together
ÂÂ with the new option "--fake-sign filter" is is possible to fake sign some
ÂÂ or all certificates before dumping and/or storing.
- New global option: --cert: Add certificates to the global certificate
ÂÂ database. These certificates are used to check the signatures.
- "wit dump ticket.bin tmd.bin" is now able to dump the certificate chain
ÂÂ following the TICKET or TMD info. This combination is usual for 'cetk'
ÂÂ and 'tmd.1234' files in WADs.
- Workaround for Cygwin bug in /proc/partitions.
- Bug fix for "wit CONVERT --wia" (Segmentation fault).
- Bug fix for 'preserve time' if source is removed.
- Command "wit LIST" supports now --progress while scanning files and dirs.
- The old tools 'wdf-cat' and 'wdf-dump' are removed. Use instead the new
ÂÂ tool 'wdf'. 'wdf' is linked to 'wdf-cat' and 'wdf-dump' to facilitate the
ÂÂ old behavior when calling 'wdf-cat' or 'wdf-dump'.


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 bzip2 (WIA) support for MAC/x86_64. (bug in the 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. Visit http://wit.wiimm.de/ for more information.
 

ice1006

Active Member
Newcomer
Joined
Sep 8, 2009
Messages
30
Trophies
0
XP
55
Country
United States
How can I copy a game(ID=ABCDEF) from a WBFS partiton /dev/sdb1 to another WBFS partiton /dev/sdc1? How to write the command line?
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
wwt -p /dev/sdc1 add /dev/sdb1/ABCDEF

its also possible to use --all instead of "-p /dev/sdc1" to copy ABCDEF to all connected WBFS drives. (self copying is disabled). And use update to avoid warnings for already existing discs:
wwt --auto update /dev/sdb1/ABCDEF
 

ice1006

Active Member
Newcomer
Joined
Sep 8, 2009
Messages
30
Trophies
0
XP
55
Country
United States
Wiimm said:
wwt -p /dev/sdc1 add /dev/sdb1/ABCDEF

its also possible to use --all instead of "-p /dev/sdc1" to copy ABCDEF to all connected WBFS drives. (self copying is disabled). And use update to avoid warnings for already existing discs:
wwt --auto update /dev/sdb1/ABCDEF

Good job~

By the way , I hope the progress could be more detail like wbfs_file.exe when convert/copy/add/extract games -- is that OK in WIT next version?

The progress for wbfs_file.exe:

RMGJ01 SuperMarioGalaxy 0.32%(\-/) ETA:00:05:23 (0.79MB of 4738MB ~ 38.87MB/s) time:3.79s
======================================================================
ID Name Percent (\-/ circle) ETA: TimeLeft (DataCopyed of TotalData ~ CopySpeed) time: TimePassed

Notice: all the value are "double" type, and it looks more fast when running.
 

ice1006

Active Member
Newcomer
Joined
Sep 8, 2009
Messages
30
Trophies
0
XP
55
Country
United States
The progress changes so~~~~~ slowly that I can not konw whether it's still running or dead... If it changes more quickly(by "double" data type), I will also quickly know that it has been dead when the progress stoped.
 

ice1006

Active Member
Newcomer
Joined
Sep 8, 2009
Messages
30
Trophies
0
XP
55
Country
United States
giantpune said:
so you think that if the progress meter is updated faster then it is actually copying your games faster?

I just want to know if the program is dead or crash. If the progress bar updated quickly but suddenly stoped, it is sure that the program is dead. But if the progress bar updated slowly then it seems stoped, it's very difficult to know the program is dead or still working.
 

ice1006

Active Member
Newcomer
Joined
Sep 8, 2009
Messages
30
Trophies
0
XP
55
Country
United States
Oh my god~ Big problem?? I found that the cygwin path does not support unicode?!

For example:

ohnoes.png
\wit>wit copy "D:\wbfs\SVMJ01.wdf" "C:\XX\%6I.%E" --iso -vv -o ('XX' is a unicode string)

* COPY+SCRUB 1/1 WDF:/cygdrive/d/wbfs/SVMJ01.wdf -> ISO:/cygdrive/c/ /SVMJ01.iso

when the windows path "C:\XX\%6I.%E" transformed to cygwin path "/cygdrive/c/ /SVMJ01.iso", the unicode string was filtered and replaced with a space char ' '

what's the matter?? Is there any solution??
 

Wiimm

Developer
OP
Member
Joined
Aug 11, 2009
Messages
2,292
Trophies
1
Location
Germany
Website
wiimmfi.de
XP
1,519
Country
Germany
I can't really understand your problems.The progress bar is updated every second. There is only 2 exceptions: The preallocation system call and compression a large chunk may consume much time outside of the control of wit.

UTF-8 is problematic. For cygwin I have deactivated it, because it doesn't work like expected. But my tests are old with an old cygwin version. --utf-8 may enable utf-8 support.

And for cygwin it is better to switch the escape char to dollar (except calling it from a *nix shell like bash):
wit copy --esc=$ ... "C:\XX\$6I.$E"
wit copy -E$ ... "C:\XX\$6I.$E"
 

ice1006

Active Member
Newcomer
Joined
Sep 8, 2009
Messages
30
Trophies
0
XP
55
Country
United States
Wiimm said:
I can't really understand your problems.The progress bar is updated every second. There is only 2 exceptions: The preallocation system call and compression a large chunk may consume much time outside of the control of wit.

UTF-8 is problematic. For cygwin I have deactivated it, because it doesn't work like expected. But my tests are old with an old cygwin version. --utf-8 may enable utf-8 support.

And for cygwin it is better to switch the escape char to dollar (except calling it from a *nix shell like bash):
wit copy --esc=$ ... "C:\XX\$6I.$E"
wit copy -E$ ... "C:\XX\$6I.$E"

Thanks a lot, it seems that the option --utf-8 works well in the newest version.

Sorry I have not read the source code of wit... so, the progress bar is updated not by data copyed, but by time, and with one second step? If this is true, I mean that one second step is a little long, perhaps millionsecond unit is better, so that we can see the progress bar updated more clearly.
 

giantpune

Well-Known Member
Member
Joined
Apr 10, 2009
Messages
2,860
Trophies
0
XP
213
Country
United States
do you know the difference in speed between using a .dll and a .a library? the reason i ask is because i just setup all the stuff to built the cygwin version from source. and i ended up with a statically linked libbz2.a. i noticed that my wit.exe and wwt.exe are bigger by 67KB, as expected, and it runs without the cygbz2-1.dll.

so now im wondering if there is to be expected any performance increase/decrease and if it is worth the effort to set it up to use the dynamic library over the static one.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    S @ StealthD0g99: Ive never done that before