Author Archives: Multimedia Mike

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.

Assembly Bizarro

In lieu of recent Pickover puzzles (I have an impressive backlog of those to work on), VAG sent in this curious x86 ASM nugget:

    xchg    bh, bl
    mov     di, bx
    shr     di, 1
    shr     di, 1
    add     di, bx
    xchg    bh, bl
    add     di, dx

The hint that VAG gives is that it has something to do with a common multimedia task. Try to figure it out.

Cyberia c93

Thanks to VAG for reverse engineering and documenting yet another game-related multimedia format, this one even older than most. It’s a format with the extension .c93 that was used in the DOS game Cyberia published by Interplay. The game was also published for the Sony PlayStation, Sega Saturn, and 3DO. I wager that the first 2 ports made use of each respective console’s standard APIs while there is an outside chance that the 3DO version used this same format.


Cyberia Title Screen
Screenshot courtesy of MobyGames

According to my master spreadsheet, I have, not 1, but 2 copies of Cyberia in my collection. I’m sure there’s a funny story behind that. They’re on the queue of several dozens of games yet to peruse. Anyway, there are samples available and VAG has the complete specs written up here. This looks like another great entry-level format if any aspiring new multimedia hackers wish to try implementing support for FFmpeg.