flaaffy is a simple audio toolchain for Super Mario Sunshine. At its core, it is a runtime library for loading, utilizing, and playing the various audio-related formats of the game. There are also a series of tools and utilities to convert and create these formats.
To compile flaaffy, you'll need to have the following libraries compiled and/or installed:
The repository contains a premake5 script. Simply run the script with premake5 and build the resulting solution.
Note: You might need to fill in any unresolved-reference errors by supplying your IDE with the paths to the dependencies listed above.
As of now, flaaffy toolkit contains a swiss-army-knife utility program called mareep.
mareep is utility program able to convert many audio-related formats. It is a command-line interface, where each feature is implemented as an "errand". The arguments follow this format:
mareep [-help] -errand <errand> [...]
You may specify the -help
parameter to show brief documentation for a given errand.
The available errands are as follows:
Errand | Description |
---|---|
shock | Converts banks ("IBNK" or "bnk") to‑and‑fro XML and binary formats. Little‑endian and big‑endian are supported. |
whap | Converts wave banks ("WSYS" or "ws") to‑and‑fro XML and binary formats. Little‑endian and big‑endian are supported. Automatically extracts and repacks wave archives (.aw files). Includes PCM ⇄ ADPCM conversion. |
wave | Standalone errand to convert audio data between formats. Various raw and standard formats are supported. |
cotton | A dedicated BMS assembler. Able to compile BMS files from no‑holds‑barred assembly text. Features relocation, named labels, variables, embedded POD, and various other directives. |
jolt | Converts basic MIDI files to the cotton assembler language. Used to create custom music. |
charge | Basic utility to extract and replace data (sequences, banks, and wave banks) inside an AAF file. |