Sure. I haven’t gotten around to ripping any others yet, but I could tell you about how I did it.
The first method is actual ripping of the original data by opening up the PCM ROMs in a sound editor, trimming out individual sounds, and setting loop points according to values read from the game’s RAM or ROM. The game stores all of its raw sound waves in one or more ROM chips, which are represented by some of the files within the ZIP you download. For SSF2T, it’s the sfx.11m and sfx.12m files.
These PCM ROMs are basically big, long sound files. If you open one up in a sound editor and play it back, you’ll hear a long stream of instruments, sounds, and voice clips, one after the other. When the game plays back sound, the sound chip reads values from the sound code ROM that tells it where the sound it should play back begins, ends, and loops within that big PCM file. The values define these offsets in samples (basically the “pixels” of digital audio files).
You can read these values either from the sound chip’s RAM, or from the game’s sound code ROM. To read them from the sound chip’s RAM, you’ll have to pause or stop the chip while it’s in the middle of playing the sound you want info on. In the game’s sound code ROM, each individual sound will have a definition, giving its start, end, and loop values. Getting them from the ROM is probably more difficult, but it would give the advantage of giving info on any sounds that aren’t actually used in game. I only managed to find the ones in SSF2T’s sound code ROM by virtue of them being neatly organized one after the other. From what I’ve seen, this might not be the case in other games.
This method (extracting sounds straight from the PCM ROM) has something of a disadvantage in that when the sound is played back in another tracker or music program, they won’t sound quite as good as they do in-game, because the game’s sound chip (or emulation thereof) processes them in a certain way. Typically, the sounds you rip will end up sounding duller and muddier than they did in-game. I’ve found that boosting the high end of the equalizer on your final mix will help replicate the original chip’s sound somewhat.
The second method is more “capturing” than ripping. It entails hacking the sound chip’s RAM to force it to play back an individual sound, looping, recording it in a sound editor, then placing loops manually.
The advantage of this was that you were able to capture the sound chip’s processing. To do this, I would find an individual looping sound effect that uses only one channel in the game’s sound test (for example, a dizzy sound in SSF2T). Then I would force values for another sound into this channel’s addresses, and play the sound code. Thus, I would get a constant, looping version of any sound in the ROM I wanted.
This is the method I used for the SSF2T samples I currently have uploaded. However, I wouldn’t recommend it. I used it because at the time, the muddiness of the ripped samples was bothering me, and I didn’t quite understand the processing that the chip does. Doing something to your final mix (like boosting the high end of the EQ, as I suggested) would recreate the effect better than trying to capture the processing within the sample. Plus, you’ll be reading all the value’s you’d need to do the true ripping method anyway. Also, this method entails placing loop points through examination of your recorded sound, which can be tedious. Finally, this method bloats the file sizes of your sounds. So I’d highly recommend the first method.
For a tool to use to find the values you need, I’d recommend Hoot. It’s a sound player along the lines of Nebula Jukebox or M1, but it has a display that shows you all of the sound chip’s values as it plays. Note that Hoot won’t be able to play most arcade ROMs right out of the box. You have to add their definitions to its XML files. Note that these definitions will also show you which of the ROM’s files are its PCM data.
I’ll try to get a diagram up for you soon that will show you what each address defines for the CPS2’s QSound chip. It’s the only one I really understand at the moment.