This BRR database aim to include all Squaresoft BRR samples released in SNES and Satellaview games while having Final Fantasy 6 import option in mind. This is why ADSR Data, Looping Point Data and *hopefully* compatible Pitch Multiplicator Data is included. All sample were ripped directly from ROMs and not with SPC files.
The Squaresoft SPC Engine had 4 major revision; 1st implementation was Revision 1 (Final Fantasy 4), then Revision 2 for Romancing Saga. Later came Revision 3 for Mystic Quest, Final Fantasy 5, Hanjuku Hero and Secret of Mana. For all subsequent games Revision 4 was used but likely some games had a different version sharing the Revision 4 differences from Revision 3. This is why while things like ADSR Data and Looping Data do not change, setting the Pitch Multiplicator Data to an imported instrument from another Squaresoft games in Final Fantasy 6 might not give the same result as in the original game. This will require trial-error and some more serious testing.
Not all games have their instruments labeled and a standard for naming should be adopted on some less intuitive names. Feel free to label the unknown instruments or submit your instrument names list via the ff6hacking forum. As for the download packages, you can download individual ones on each game page or one of these following 5 compilations that include all games. Finally we have made a Lazy Sound Patch Compilation, patches that change FF6 instruments to those of each games in a Lazy way and for testing purpose. For more details, check the readme of the patch bundle or visit this forum thread.
|BRR Samples with no sample length as first two bytes. Pitch, loop and ADSR data are in a text file. (~3MB)||Download|
|BRR Samples with first two bytes as sample length. Pitch, loop and ADSR data are in a text file. (~3MB)||Download|
|BRR Samples with first two bytes as sample length. Each sample has it own folder with data in bin files. (~3MB)||Download|
|BRR Samples with no sample length as first two bytes converted to WAV audio file. (~10MB)||Download|
|All packages from all games. (~19MB)||Download|
There are a few ways to play BRR samples but I'll just mention two of interest for here. First you can play them individually in a BRR Player like this one made by Vitor Vilela at SMWC. You can even play with different parameters to as an example modify the pitch or modify the ADSR envelope.
The second method, that require more work,is importing samples in FF3us and play them with FF3usME. You can also check the page of a Squaresoft game and import the BRR samples from the original ROM if you want to listen to them quickly. BRR sample import and BRR sample creation will be the subject of a complete future wiki tutorial. In the meanwhile you can read this BRR samples Expansion Tutorial.
All Squaresoft samples to the exception of Secret of Evermore samples have a two bytes (non-brr data) header telling the length of the sample. Those bytes is what is read first by the game and a pointer to a sample point on this data and not the beginnig of the BRR data. A sample length of AABB is actually BBAA bytes. I've included a download option for those not wanting those two bytes in the samples.
The ASDR Data is also a two bytes value that apply an Attack, Decay, Sustain and Release envelope to the sample. The format is the following, high bit of 1st byte tells if ADSR is enabled, otherwise Gain is used. Attack is on 4 bits, Decay on 3 while the 2nd byte has Sustain (3 bits) and Release (5 bits). My musical knowledge is not vast so you can check those definitions online for now.
It seems the SPC-700 ADSR register format is respected by Squaresoft data as the data do not show much differences from games to games, some games like FF5 having almost allo their samples using the same value.
The only thing I know is that this two bytes data affect the pitch of the BRR sample. In FF6, the first byte (stored in SPC-700 RAM $BC) affect the Master Pitch Multiplier ($BB-$BC), and 2nd byte (stored in $BD) affect the Master Pitch Multiplier envelope change rate ($BD-$BE). This is likely not valid for all Squaresoft game, most obvious example being FF4 that has this data on a single byte. Hence applying blindly the value to the imported sample in FF6 might give not the same result as in the original game.
This is a two bytes data for every Squaresoft sample excluding Final Fantasy 4. However, even if the data is 4 bytes in this case first two bytes are always 00 00. It's easy to presume a loop start point would not give different results in different games but I have not studied every Squaresoft sound engines. I think a loop point AABB will loop the end of sample when we reach offset BBAA to sustain notes.