Wiifuse
This is an old revision of this page, as edited by Alexx (talk | contribs) at 14:28, 15 March 2008. It may differ significantly from the current revision. |
wiifuse - coded by dhewg, #wiidev efnet
- based on gcfuse code by:
- Copyright (C) 2006 Mike Melanson (mike at multimedia.cx)
- Copyright (C) 2005 Janusz Dziemidowicz (rraptorr at nails.eu.org)
- Latest stable version: v0.1.2
- Current version: v0.2.0-wip1
Readme
About
- wiifuse is a program that allows you to mount a Gamecube or Wii DVD disc image as a read-only part of the file system. This allows users to browse the directory structure and read the files within.
- In contrast to the Gamecube, Wii images have multiple partitions. These are encrypted and wiifuse supports on-the-fly decryption - provided you have the required 128bit AES key.
- Further, wiifuse provides access to special data found on these discs. Among others, this includes the main executable and informational things like the game's name.
Requirements
Build
- To build wiifuse, you will need a working compiler and the development packages for the required libraries; have a look at the OS-specific notes.
- The archive includes a Makefile, so just run
make
Usage
./wiifuse <image_file> <mount_point> [<FUSE library options>]
- Hints:
- Append
-f
for debug messages (process won't daemonize). - Append
-o allow_other
to let other users access the mount point. - Append
-h
for common FUSE library options. - Use
fusermount -u <mount_point>
to unmount a previously mounted image.
- Append
Example
- $ ./wiifuse ~/zelda_tp.iso ~/wii_image -o allow_other
- $ ls -l ~/wii_image
- total 0
- lrwxrwxrwx 1 dhewg 1 Mar 15 2007 data -> partition2
- dr-xr-xr-x 4 dhewg 0 Mar 15 2007 partition0
- dr-xr-xr-x 6 dhewg 0 Mar 15 2007 partition1
- dr-xr-xr-x 6 dhewg 0 Mar 15 2007 partition2
- lrwxrwxrwx 1 dhewg 1 Mar 15 2007 update -> partition1
- $ cat ~/wii_image/data/header/name
- The Legend of Zelda Twilight Princess
- $ mplayer ~/wii_image/data/fs/Movie/demo_movie98_00.thp
- $ fusermount -u ~/wii_image
Troubleshooting
- Check if the FUSE kernel module is loaded:
- linux:
lsmod | grep fuse
- freebsd:
kldstat | grep fuse
- OS X:
kextstat | grep fuse
- linux:
- Verify your key file, the MD5-sum of the 16 byte file (without line feed) currently is 8d1a2ebcd82a3469b77facf15d9c8e50.
- Append
-d 2>&1 | tee ~/wiifuse.log
to the wiifuse cmdline. This will create a logfile called wiifuse.log in your home directory. Open it in your favorite text editor to get an idea of what's going wrong.
- Check if the FUSE kernel module is loaded:
- If you still can't get it working, copy and paste the content of that logfile to something like rafb and /msg me (dhewg) the resulting link on IRC.
OS-Specific Notes
Debian / Ubuntu
- To install the binaries provided below, do the following:
dpkg -i wiifuse_0.2.0-wip1-1_i386.deb
- To build wiifuse you need to fetch these required packages:
aptitude (or apt-get) install build-essential fuse-utils libfuse-dev libssl-dev
- To mount an image without root privileges, add the user to the
fuse
group: adduser dhewg fuse
Gentoo
emerge sys-fs/fuse
FreeBSD
- Install the required ports:
- sysutils/fusefs-kmod
- sysutils/fusefs-libs
- Further docs can be found here.
OS X
Download
v0.2.0-wip1
- Binary for Debian unstable (and probably latest Ubuntu as well):
v0.1.2
v0.1.1
Changelog
- v0.2.0-wip1
- new client/server mode. requires an usb gecko and wiifuse server running on a gamecube or wii in gc mode - for now ;)
- new metadata: title id symlinks, tmd infos
- v0.1.2
- added more disc id's
- support for virtual console partitions (found 14 vc games on brawl)
- stat compliant - `du` works now
- statvfs compliant - `df` works now
- minor cleanups and fixes
- v0.1.1
- fixed some serious u64 offset bugs
- corrected the main.dol size calculation
- some easy partition validation
- support for symlinks
- cleaned up and extended the available metadata