Sound and Music (Tutorial)
Industrial Park's Preview 7 has functions to make importing and exporting sounds and music from the GameCube version of Battle For Bikini Bottom easier. We can use them to import and export GameCube DSP sounds. To convert between DSP and other common sound formats, you can use the tool of your choice. For this tutorial, we're going to use this Audacity fork with DSP support.
In BFBB, sounds are stored in SND (sound effects), SNDS (music and voices) and SNDI (headers) assets usually in HOP files. Most of the game's sounds (effects and voices) are in each individual level that uses them, but music is contained in MNU5.HIP.
To export a SND or SNDS asset as DSP, navigate to it in Industrial Park's Archive Editor and click Edit Data. Click Export Sound Data and a file browser dialog will open, allowing you to save the sound as DSP. You can then import the DSP in the Audacity fork and export it to other formats such as WAV or MP3.
This procedure doesn't work with HipHopFile or by extracting the asset manually because BFBB stores the sound headers in the SNDI asset, separately from the rest of the data which stays in the SND/SNDS. The internal editor for SND/SNDS joins that together before exporting.
To import a custom DSP audio file (or one exported from another HOP file), simply check the "Trim header and send it to SNDI" checkbox and click on Import Sound Data. Choose your source DSP file in the file browser dialog and Industrial Park will automatically split the header from it and place it in the SNDI file.
To be able to play the sound ingame, the SFX asset is used. SFX is an object asset and thus can send and receive events, including the PlaySound event. Most of the attributes of the asset are unknown, but you can change the sound asset ID to your SND/SNDS ID and experiment with the other settings.