I upgraded my gcfuse utility tonight. The main change was to expose the primary game executable file when browsing a GameCube filesystem. The primary executable is stored as an implicit part of the filesystem, separate from the directory structure. Being able to easily read this file is a useful feature if, for example, someone wishes to get at these executables for the purpose of disassembly.
For example, when mounting the first disc image of one of my few GC games that I have actually completed, Metal Gear Solid:
$ ls -al mount/ total 1 dr-xr-xr-x 4 melanson users 0 Jul 15 2005 . drwxr-xr-x 7 melanson users 760 Aug 26 21:48 .. -r--r--r-- 1 melanson users 95 Jul 15 2005 .metadata dr-xr-xr-x 4 melanson users 0 Jul 15 2005 audio -r--r--r-- 1 melanson users 426387456 Jul 15 2005 demo.dat -r--r--r-- 1 melanson users 1988128 Jul 15 2005 metal-gear-solid-the-twin-snakes-exe.dol -r--r--r-- 1 melanson users 6496 Jul 15 2005 opening.bnr dr-xr-xr-x 3 melanson users 0 Jul 15 2005 shared -r--r--r-- 1 melanson users 198715392 Jul 15 2005 stage.dat
The executable file is metal-gear-solid-the-twin-snakes-exe.dol. The filename is a little long, which can happen since it is derived from the game title in the disc metadata, which can be nearly 1000 characters long. The GC executable format is known as DOL, probably short for Dolphin which was the codename of the GameCube during development.
I recognize that I’m likely the only person on the planet who cares about this utility but, hey, it’s my blog and what are blogs for if not to tell the world about the tedious minutiae of an individual’s life?
Related post:
Have you checked out gc-linux.org? I think they would probably be interested in something like that.
I have made them aware of the tool on one of their mailing lists. I also learned from them that there is a way to turn .DOL files into ELF files that can be disassembled with the GNU binutils.