3sf is a PSF-family rip format for Nintendo 3DS sequenced music. It rips sound archives (BCSAR) and plays them on the game's DSP firmware, with a foobar2000 component.
This is version 0.9.0, with save states coming in 1.0.0 for less painful seeking
3sfrip converts each input into a .3sflib and one .mini3sf per sound, in a folder next to the input that's named after it with _3sf added (-o DIR puts them in DIR). An input is a decrypted .3ds/.cci, .cxi or .cia (encrypted images are rejected), an extracted game directory (exefs/code.bin, exefs/exheader.bin, romfs/), or a .bcsar. Games with a driver profile rip in game mode, everything else in archive mode (--mode chooses). A .bcsar needs a DSP firmware file, any game's dspaudio.cdc or a console's dspfirm.cdc: give it along with the archive, put it in the archive's folder, or name it with --firmware. --list shows the sound archives, --bgm or --only REGEX picks sounds, and --game/--artist/--year/--copyright/--by set tags.
3sfplay renders each sound to a WAV file next to it, at the native 32728 Hz, with the tagged length, fade and volume. -o FILE names the output file for a single input, as WAV or FLAC by its extension. --length and --fade override the tags, --default gives the length of a file without one, and --info shows the tags.
edited 6:27 AM EDT October 1, 2026 [edit] (12 hours left)