GSF Ripping Tools

Much more up to date versions of most of these tools can be located on Loveemu's Github.

saptapper - Automated Sappy Driver ripper. Not all games are ripped 100%, but it will log what it found to be sappy compatible, where it couldn't find the remaining calls required. In these cases, knowing Thumb/Arm Assembly will be required to finish the ripping process. Also, you will need to know thumb/arm assembly to deal with games using other sound drivers, such as krawall (Harry Potter series, Lord or the Ring series), AAS (payback), or other custom drivers. *** Please do not change the gsfby tag that it outputs, or if you do, put a * by it. Check here to find out why. *** In general, it is best to leave that tag as is.

rom2gsf - Program to turn a rom into a gsf file. This is used mostly with manual rips.

gsfopt - Gsf set optimizer / timer*. All ripped sets should be optimized before release, to remove unused code/data unrelated to music playback. Now also able to do gsf2rom conversions, with proper lib handling automatically. (Updated May 6, 2007)

minigsf - Numbered minigsf creation utility, where the offset is known.

ofslist.txt - A sappy offset listing, specifically for gba2midi (no longer available), but will also tell you which games saptapper might be able to rip. (note, some of the later games may not be ripped successfully with saptapper, due to a newer driver being used. I may fix this up at one point in the future though. Also of importance. Even though some games use the sappy sequence format, they don't use the sappy driver, but another driver designed to play the format. Examples of these games are Metroid Fusion, Metroid Zero Mission, Mawaru Made in Wario, Tetris Worlds. As such, saptapper will not be able to rip those games.

* - I have revised the program for accurately identifying any from 1 to 255 loops, 98% of the time. - All of the ripping tools are built with VC++7, so you will need this if you don't have it already.

Finally, when it comes down to doing manual rips, you should ideally have a debugger capable emulator. No$gba is a good choice. A disassembler capable of arm/thumb disassembly might be useful as well.