Breaking Eggs And Making Omelettes

Topics On Multimedia Technology and Reverse Engineering



July 17th, 2006 by Multimedia Mike

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.

Posted in Game Hacking, Nintendo, Open Source Multimedia | 9 Comments »

9 Responses

  1. VAG Says:

    NESemu.rel ?!

  2. john_doe Says:

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

  3. SkippyJr Says:

    thpplay 1.5 (with source)

  4. Multimedia Mike Says:

    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?

  5. Steve Says:

    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.

  6. Multimedia Mike Says:

    Fortunately, the audio format is documented here (assuming it’s correct):

  7. dhewg Says:

    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.


  8. Multimedia Mike Says:

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

  9. Mike Says:

    thpplay for psp(with source)

    no audio, slow