SNESSOR v2.1 The SNES SOund Ripper A Product of Butcha'd Software ______________________________ _____________________ _____ 1 INTRODUCTION ______________ I wrote the interface to be as self-explaining as possible, so I won't go over it much here. If you need help with the program itself, simply press 'H' in the menu. The rest of this document describes: WHATS NEW INPUT FILES OUTPUT FILES new! SAMPLE REPLACEMENT KNOWN BUGS COMING SOON 2 WHATS NEW ___________ v2.1- * You can now load WAV files into your favorite ROMs and replace samples! More info below. * Added lots more precision to the speed select, you can now select the frequency by approximately one musical half-step each keypress. This is not an exact science, however, only an approximation. It also allows you to manually type in the frequency. * Added a sensitivity option, in case SNESSOR was skipping samples that you think should be there. If you can't find a sample, lowering this value should help. * Introduced a different sensitivity for samples that loop, because short samples that loop are less likely to be trash than short samples that don't. Also added the option to change this. v2.0a- Whoops! Some bugs appeared in the port to DJGPP that I had not noticed before release. Many people reported lockups and infinite loops when doing the loader which I have not been able to reproduce, so I cannot guarantee that this release will fix it, but I think (hope) it will. * Fixed bug where it would report an invalid drive every time you changed drives, then proceed to change to that drive. * Fixed a bug where you can't change to the root directory of a drive directly, using '\'. * Loader now does not bomb immediately back to the menu if you mistype. * Added a line that tells you what directory you are looking at. (It displays '\' as '/', don't worry about it, I think its a DJGPP quirk.) * Fixed some bad code that may or may not have caused the problems with the loader, but as I said, I couldn't make mine do it so I can't guarantee this will fix it. v2.0- Lots of new stuff here. This version should seem much easier to use. * Changed compilers to DJGPP, this allowed a lot of cool changes. One of the most significant is that the entire ROM can be stored in memory, allowing MUCH faster ripping, and also more accurate ripping(the old disk based method would occasionally miss some of the beginning of samples). * Completely rearranged the UI * Added the interactive ripper! This allows you to go through each sample one at a time, listen to each one(SB16 or higher required), select which ones to dump, and more! The old dumping method(for those who don't have an SB16 or higher) is still available as [D]ump all. * Can now write WAV files! Under the interactive ripper, you can select the speed to play them at and it will save this speed in the WAV file. If you use the Dump all command, it will assume they are all 8000Hz, which they are probably not. For this reason, you will probably still need GoldWave if you intend to use the Dump all command. * Removed the savestate dumping and ripping commands, because no one was using them(myself included), and it just would have meant more work to keep them in because of the port to DJGPP. * Improved the search algorhythm slightly, should now find less garbage samples. v1.1- There's only two new things with this one, but the first was important enough that I wanted to release it anyway: * BRR filter support! If you have no idea what this is, don't worry, all it means to you is that now your ripped sounds will sound MUCH better. This should have been supported in the first version, but I could find no documentation on it, and still never did. (I ended up reverse engineering the Cool95 plugin. :) Thx Uxorious!) * Made a small modification to the UI, you can now specify the full path and filename of a file in one shot rather than one directory at a time. 3 INPUT FILES _____________ You can run any file you want through the sound ripper if you think there may be BRR samples in it, however, this program was written to deal mainly with .SMC ROM images. To rip sounds from a .SMC (or other file), first load the file, by pressing 'L' at the main menu. Once you have a file loaded, it is then possible to either [D]ump all or use the [I]nteractive ripper. 4 OUTPUT FILES ______________ When sounds are ripped using the Dump all command, all the possible samples it finds are numbered and dumped into a directory with the same name as the input file. For example, you may have a directory D:\SNES which has your .SMC ROMs in it. If you select CHRONO.SMC, you will now have a directory D:\SNES\CHRONO with serveral files numbered from 00000000.SND(or .WAV) on up. If you dump them as SND files, you will need to open them with a utility such as GoldWave to convert them to a usable format. When you open these files, most likely you will be prompted for their format, if not, you need to find a way to specify that these files are 16-bit signed, mono files. Even if you saved them as WAV files, the sample rate may not be correct, in which case you would still need to use GoldWave or something similar. The sample rate can vary, but I've found that 8000Hz is a good starting point, and 5000Hz and 11,025Hz are also common. Be aware that it is likely that some garbage files were dumped along with the good samples; for example, if a file is silent, or makes a strange buzzing or popping, it is probably not a valid sample. If you are using the Interactive Ripper, you will probably not need any external editor unless you wish to precess the output or string several samples together, or unless you save the output as SND files. If you do save them as SND files, the same guidelines apply as above. 5 SAMPLE REPLACEMENT ____________________ New in version 2.1 is the ability to replace samples in games from your own. Examples of using this are changing the speech in certain games (Suppose you want Beavis and Butthead to announce the start of a race), swapping the speech from two different games (say you liked SF2's "FIGHT!" better than UMK3's), or changing sound effects from different games or external sources. The loop bit is preserved, so it is even possible to replace musical instrument samples with your own, however the loop point is likely to be in the wrong place. For best results when replacing instrument samples, choose a replacement that is as long or longer than the original. If the loop point does not work with your sample, it will probably either pop and click or just sound funny. For some reason, a lot of the samples I have tried come out sounding like a harpsichord when replacing instrumental samples, even Homer's "DOH!" :). Note that it is NOT possible to replace a sample with a longer one, because we are doing delicate ROM hacking, the length of the sample must remain the same. When loading a WAV file, you will most likely see either the message "WAV file is too long, will be truncated!", or "Zero-padding WAV file to correct length." These just mean that SNESSOR is changing the length of your sound file to fit into the ROM. Sample replacement is available from the interactive ripper. It is important to have the original sample's speed set correctly before choosing [R]eplace Sample. Don't worry about whether your WAV file is in the right format, SNESSOR automatically converts any uncompressed WAV file to 16-bit, mono, at the speed currently set. If you have replaced a sample, when you exit the interactive ripper, it will ask you if you wish to save a copy of the modified ROM. Answer Y or N. If you choose Y, a prompt will appear asking for the filename(because most likely you won't want to save over your original ROM). Enter the filename, and SNESSOR saves and exits back to the main menu. This is here for you to play with, and if it doesn't work with a certain sample or a certain ROM, sorry, but there's not a whole lot I can do about it. 6 KNOWN BUGS/OTHER ISSUES _________________________ * WAV files written into ROMs may not sound as good or as clear as the sound originally in the game; this is due to several reasons. First is that your WAV file may have a lower sample rate than the original. Also, the frequency conversion may introduce small distortions with strange frequencies (ie. 11025 to 15000). The last and most important reason, is that SNESSOR does not encode the WAV files using BRR filters, because I don't know near enough about sound processing to be able to search for those patterns in sound. * Not all SB16 configurations are supported at this time, only some of the most common. If you have trouble, try setting your card to address 220, IRQ 5, DMA 1, 16-bit DMA 5. This is my configuration (on my AWE64) and it works fine. If your configuration is not supported, and you have an SB16 compatible, let me know. * Win95 and SNESSOR's sound driver don't seem to like each other. For best results, do NOT press ALT-ENTER while SNESSOR is in Interactive mode. You may run it in a window, just don't change its state while SNESSOR is in that mode. Occasionally the sound will just stop for no reason, I have no idea why. (NEVER ask "Why?" with Windows 95. :) After this happens, some DOS apps will be unable to use the soundcard in the same DOS session, so simply "exit" out of the current DOS box and start a new one. The best solution, however, is to run from DOS. I have never had any sound problems while running in pure DOS. Please, do not e-mail me about this problem, I know about it, and as long as it works from DOS I'm not especially worried about fixing it. * If you have any SPECIFIC bug reports, please, e-mail them to me, I want to hear them! 7 COMING SOON _____________ I'm getting kind of bored with this, I want to move on to bigger and better things. If you have problems or suggestions for SNESSOR (other than "How about music ripping?") go ahead and let me know, but otherwise this may be the final version. Soon I will probably be writing a doc about BRR describing the format and the BRR filters, after that, we'll see... -Butcha