NOTICE

in_cube is no longer under development, please do not use it or seek support for it.
Work has moved on to vgmstream.

in_cube

in_cube is a Winamp plugin intended to play streamed audio formats found in video games.
For info on what games are supported, check out the publicly-editable GC Stream DB
Currently it supports all their formats, yea unto the seventh generation. (TODO: make a list)

in_cube started as a modification to Destop's GC DSP decoder to support Star Fox Assault. Over time hcs has added support for new decoders and formats. FastElbja's later work more than doubled the number of supported formats.
A complete rewrite of in_cube is underway in the form of vgmstream. While vgmstream is not yet complete, it is usable for an ever-growing number of formats, and in_cube development has been halted.
Ask for help and discuss stuff at the HCS Forum or on IRC, #usf on irc.freenode.net.

Download

Current version (April 20 2008):
Recent builds may require that you install the Microsoft Visual C++ 2005 SP1 Redistributable Package (formerly the Microsoft Visual C++ 2005 Redistributable Package worked, too)
Old versions:

Ripping tools

dkdsp

I've put together, on request, a program to convert the standard mono DSP files created by the devkit DSPADPCM.exe into stereo (either by doubling a mono file or using one mono file for each channel) files for Donkey Konga or Star Fox Assault. It's been tested on a Gamecube with Japanese Donkey Konga 2.
dkdsp v0.4
Notice thatat the point of this program is to generate new DSP files for use in Donkey Konga. It is not necessary to combine right and left channel DSPs for playback with in_dsp or in_cube, if you choose either it will load the other as well.

SSMEx

Several games (specifically those HAL had a hand in) contain SSM files, which are collections of DSP files. SSMEx (v0.1) will extract those files. I don't have the algorithm exactly right yet, but this produces usable files.

adXtract

adXtract (0.2) extracts ADX files from any archive (uncompressed, that is) containing them. Note that it will also attempt to extract the audio stream from Sofdec video (SFD), but it doesn't work (it should produce a warning message). bero has a tool that does that well, sfd2mpg.

TMNT3:MN extractor

Teenage Mutant Ninja Turtles 3: Mutant Nightmare has a file called strbgm.bin which contains all the DSPs. I wrote an extractor (0.1) which converts them to standard dual-file stereo DSPs.

bigfat

bigfat extracts the files from the "soundgc.big" and "soundgc.fat" files in Prince of Persia: The Two Thrones. I don't know how to play these files yet, though.

bbegex

bbegex extracts the files from "Filelist.000" and "Filelist.txt" in Batman Begins.
sfxtract 0.0 will extract DSPs from SFX files that contain them, but it looks like most of the music in Batman Begins is stored in another format.

MOOd

Extract DSPs from the MOO files in Robotech: Battlecry with MOOd 0.0 (MOO depacker).

gcfsysd

gcfsysd 0.1 extracts files from the .fsys files found in Pokemon XD Gale of Darkness. Rename .000 files to .dsp or .ish to (possibly) get them to work with in_cube 0.16 (or higher, 0.15 had looping problems).
0.1 now works with Pokemon Colosseum, but I don't know how to play the extracted files.

SPTex

SPTex 0.0 extracts DSPs from SPT/SPD pairs, Nintendo's official packed DSP format.

PAKthis

PAKthis 0.0 extracts files from the .bin files in Megaman X Collection. The audio seems to be mostly OGG Vorbis.

Game Extractor plugins

Game Extractor is a nice Java program that unpacks a huge variety of files. I've modified two plugins to work with the variants of RCF found in some Gamecube games.
GE RCF plugins
You install these by adding the .class files to the GameExtractor.jar file included with Game Extractor. The .jar is simply a .zip.

CDEU

CDEU is a program by PokéParadox to extract Cstr DSP file from DSP bundles, tested with R:Racing.

aix2adx

aix2adx 0.1 extracts ADXs from interleaved AIX files. Now continues reading additional sections past AIXE marker.

adxloop

adxloop 0.1 will force an ADX to loop from end to beginning. Optionally you can add an "intro" which is played first and not looped. Now with proper loop start points for in_cube.

jbc

(0.0) Just an extractor for jbc files, such as found in NHL Hitz Pro

whdread

whdread 0.2 extracts the individual WAVs (PCM and DSP) from streams.wav in Hitman 2, using the WHD files which contain the header information.

bfbs

bfbs 0.0 extracts the filesystem from sally.bf in Beyond Good & Evil (sally_clean.bf in the PC version)

wwdumpsnd

wwdumpsnd 0.3 extracts the sound effects and instrument samples from The Legend of Zelda: The Wind Waker. They are dumped as plain WAVs. To use, all the .aw files from /Audiores/Banks and JaiInit.aaf from /Audiores must be in the current directory when wwdumpsnd is run. 100 MB of WAVs are created.
0.3 fixes some issues with the format of the WAV.
Note that there are some samples that sound quite off, such as in mboss_0.aw. I suspect that these are stereo (the vast majority are mono and that is all I handle) but I haven't worked it out yet.

degod

degod 0.5 decrypts ADX files. It has support for God Hand, Okami, Killer7, Samurai Champloo, Blood+, Raiden III, Phantasy Star Universe (and the expansion), Senko no Ronde, NiGHTS: Journey of Dreams, and possibly others.
In case you come across a game that uses a different encryption key, degod has brute force key guessing functionality built in, but I recommend using guessadx 0.1 now, as it has a much better algorithm.

lafs

lafs 0.2 extracts from AFS filesystems. It is missing many features but works OK in many cases.

xtract360

I've continued PI and Redline99's work on xtract360 (now at version 1.2) to fix some bugs. It extracts files from XBOX 360 disc images.

ast_multi

Similar to aix2adx, ast_multi 0.0 splits out multiple stereo streams from an AST (typically wth a filename ending in _multi.ast, found in Super Mario Galaxy).

thp audio ripper

FastElbja's thp audio ripper extract the audio track from .thp video files for playback in in_cube 0.30. The videos themselves work also, but this produces a smaller file (without the video).
And here's a standards compliant version, for those who want to build with something besides MSVC.

zwsrt

zwsrt 0.0 combines the header data from .srt files with the sample data from .ssd files to produce .zwdsp files which are playable in in_cube. srt and ssd files are found in Zack & Wiki

adx2wavmod3

adx2wavmod3v2 is a modification to bero's adx2wav which is much more accurate, especially with frequencies other than 44.1 kHz. Doesn't handle loops, just a straight decoder.

brsar_unpack

brsar_unpack finds sounds in .brsar files and decodes them. This is particular works moderately well with files it reports as "Version 1.3"., those around the vintage of Super Smash Bros Brawl. For "Version 1.4" .brsars, you'll have better luck with ripping_mama, below.
Stereo sounds are skipped, and looping is ignored. Nothing is done with sequences.

fsbii

fsbii 0.5 converts a multi-stream .fsb into a set of single-stream .fsbs, suitable for use with vgmstream. This is sometimes necessary for Wii games, thus the name. As of 0.5 it can also extract embedded FSBs from within (uncompressed) archives.

letsdump

letsdump 0.0 dumps the FILE chunk of a .brsar file. This is useful for games like Let's Tap, in which each streamed track is wrapped in a single .brsar. In this situation, running it like:
letsdump song.brsar song.rwsd
will generate a song.rwsd file that can be used in vgmstream.

dumplarc

dumplarc 0.0 extracts files from the simple LARC archive (.la) found in some doujin games.

strip_silence and strip_wav

strip_silence 0.1 removes silence at the end of .wav files, and prints a command to re-add the silence (with the included add_silence). It's intended for use with 44100 Hz 16-bit stereo PCM files, such as CD Audio. A nice feature is that it leaves a little silence at the end (1 second by default). This can be used to strip trailing silence from odd files, but retain the ability to re-add it and get the original file back.
strip_wav 0.1 is useful in some situations where strip_silence isn't, such as when the silence at the end of the file isn't entirely zeroes. It strips a number of bytes from the end of a .wav, by default 10 seconds worth of 44100 Hz 16-bit stereo PCM, regardless of whether they are perfectly silent. It also prints a command to restore the file; if the stripped bytes were all zero the command is add_silence (included), otherwise it backs up the original file and prints a copy command.

ripping_mama

ripping_mama 0.0 finds sounds in .brsar files and decodes them. It is effective with "Version 1.4" .brsars, such as those in the 2nd Cooking Mama (despite the name, the 1st Cooking Mama's .brsar doesn't work with ripping_mama, but it works with brsar_unpack).
As with brsar_unpack, only mono sounds are decoded, looping is ignored, and nothing is done with sequences.

utf_tab suite

utf_tab 0.2 is a set of tools for dealing with CRI's @UTF-table-based formats. utf_view shows the overall structure of such files, csb_extract extracts the contents of .csb files (often .aax audio), and cpk_unpack unpacks .cpk files (which also often contain .aax or .adx).
end