N64 Sound Tool

The N64 Sound Tool is designed to pick up where srip left off. SRip was a great tool for extraction, but ran into memory issues with larger sound banks (ex. Perfect Dark), could not import new sounds, and was not open-source. This tool seeks to correct all three items.

N64 sound banks are composed of two files: the ctl and tbl. The ctl is the sets of sounds and details about them, while the tbl is the actual raw sound data, usually vadpcm encoded. The tool attempts to locate ctl via its magic word (0x42310001), then tries to guess the .tbl. In many games however, the tbl is not directly past the .ctl, since it is hardcoded in the ROM, and thus many ROMs, while they may have soundbanks, will not work exactly out of the box. In that case, search for the magic word in a hex editor, 0x42310001, then the .tbl is usually following it, and is a series of random hex characters that followed some 00 padding. When you find it, use Open Tbl/Ctl specific, and specify the locations. Srip is also good at finding the .ctl, but their .tbl is also a guess, so use a hex editor once you find the .ctl.

Encoding is supported for both vadpcm and raw sounds. Unfortunately, at this time, GoldenEye is the only game that is known to support raw sounds. It will sound like garble on other games.

Also, the predictor algorithm is currently not known, so it uses hardcoded predictors. If you want to contribute and include code to calculate predictors or improve on what we have, that'd be great, it is open-source! Also, games such as Mario 64 uses a similar but not identical soundbank (same predictors/vadpcm encoding), so this should be certainly possible to translate into that format if you have the desire, since the difficulty mainly lies in the predictors/encoding.

Feel free to use the source for any purpose, free to include in software of your own, but you must credit SubDrag and Ice Mario.


%s1 / %s2