gcfuse

I’m taking useless academic exercises to new heights. I wrote a utility called gcfuse that allows you to mount filesystems replicated, one way or another, from Nintendo GameCube DVDs.


Nintendo GameCube

What on earth for? I’ve heard tales of strange and wonderful FMV formats on those petite GameCube DVDs and I just had to know for myself. One game I’m playing right now is Metroid Prime, which has visuals that certainly appear to be pre-rendered multimedia files. Let’s find out:

$ gcfs metroidprime.gcm gcm/

$ ls gcm/
Audio         Metroid4.pak  NESemu.rel    SlideShow.PAK   metroid5.pak
AudioGrp.pak  Metroid6.pak  NESemuD.rel   TestAnim.Pak    opening.bnr
GGuiSys.pak   Metroid7.pak  NESemuP.rel   Tweaks.Pak
Metroid1.pak  Metroid8.pak  NoARAM.pak    Video
Metroid2.pak  MidiData.pak  SamGunFx.pak  client_pad.bin
Metroid3.pak  MiscData.pak  SamusGun.pak  default.dol

$ ls gcm/Video/
00_first_start.thp            08_GBA_fileselect.thp  attract9.thp
01_startloop.thp              AfterCredits.thp       creditBG.thp
[...]

Right away, a new multimedia format– THP. The GC-Linux project already has documentation about this MJPEG-like format. Samples, of course, are available for your inspection.

9 thoughts on “gcfuse

  1. john_doe

    IIRC you can play the NES Metroids on the GameCube, so they probably packed the ROMs and an emulator on the disc.

  2. Multimedia Mike Post author

    Nice. I’m glad we don’t have to start this quest from square 1. It looks like the format really is just a basic chunked format with more or less standard JPEG pictures interspersed with a custom ADPCM format. Who wants to have a go at integrating into FFmpeg?

  3. Steve

    Quickly looking through the source code for the thpplay, I found the following note:
    MTH (mute thp?), similar to thp but without sound.

    It seems that this might be slightly easier to implement as it doesn’t require knowledge of the audio format.

  4. dhewg

    its been a few days since you posted about gcfuse… so probably nobody is reading this…

    …but i’ve written wiifuse based on your code, check the above url. i improved it alot, and it can still mount gc images – hopefully someone finds it useful.

    regards

  5. Multimedia Mike Post author

    Nice work, dhewg. I’ll check this out myself and probably make a more current post about it.

Comments are closed.