Sofdec Support

FFmpeg now includes support for the Sofdec middleware format thanks to Aurel Jacobs and Mans Rullgard, as well as everyone who has made FFmpeg’s MPEG video decoding what it is today. Sonic the Hedgehog salutes you:

Sonic Adventure 2: Battle
Sonic Adventure 2: Battle

Sofdec is a multimedia middleware format that was used heavily on the Sega Dreamcast. Indeed, if you booted a DC game, there might have been a 50/50 chance that you would see Sofdec’s technology insignias among the many obligatory corporate logos. Sofdec still survives to this day and is seen on various GameCube games (often developed by Sega’s subsidiary houses). It probably runs on all the other consoles as well. In fact, I see that MobyGames maintains a game group for CRI-using games.

The thing about Sofdec files is that they are fundamentally MPEG files with MPEG-1 video. The only thing special about them is that they are packaged with a custom ADPCM format called CRI ADX. I checked out the new FFmpeg support with files from a variety of games. One of the biggest problems is blocky output. On files from certain games (for example, F-Zero GX, Resident Evil 4, and Starfox Assault), it almost appears that only DC data is being decoded. FFmpeg does not report any decoding problems. The result is something like this:

Blocky GameCube logo

I am pretty sure that the above is supposed to be the official GameCube logo, which looks like this:

Nintendo GameCube Logo

There are also a few videos from Resident Evil: Code Veronica X on the GameCube that display as a square 320×320 frame, which is not correct:

Resident Evil: Code Veronica X-- Claire Redfield, square aspect ratio

I wonder if aspect ratio information is stored inside this file format, or if perhaps the data is in some other place in the game’s data. Not all of the videos in the game are like this, though.

Many new samples are available in the usual place.

3 thoughts on “Sofdec Support

  1. yoshi314

    this format seems pretty popular among capcom’s ps2 games, as well – there are mostly mpeg2 vids with adx encoded sound. and there is a sofdec company logo when the game starts.

    assuming, i’m talking about the same sofdec :] the audio streams contain cri adx text strings, so that’s my guess.

  2. Multimedia Mike Post author

    According to my perusal of other Capcom GameCube titles, Capcom also uses H4M files (I think it’s a custom GameCube SDK format, but I’m not sure). But they also seem to be a big customer of Sofdec. It’s interesting to see how much autonomy different game dev groups have within the same company.

  3. VAG

    Sofdec is sometimes used in PC games as well (mostly in ones by Sega, and ported from GameCube, hehe), like in “Sonic Heroes” and “Sonic Riders”. Last one has mentioned “blocky” problem. I really wonder what’s wrong with it…

    And, hold your pants. This fall’s big bucks title from Electronic Arts – “Crysis” game, use sofdec as well. Luckly, this one has no blocking issues.

Comments are closed.