Skip to content

Releases: xRopers/audscan

Release list

audscan v0.1.0

Choose a tag to compare

@xRopers xRopers released this 30 Sep 19:08

First release of audscan: find audio inside any binary file (game archives, extracted blobs, memory dumps), browse and play it, extract it, split banks into single sounds, and convert Wwise WEMs to files any player opens. A sibling of zscan and texscan.

Download

audscan-v0.1.0-windows-x64.zip (Windows x64) contains:

  • audscan.exe, the command line
  • audscan-gui.exe, the desktop app
  • README.md (with screenshots in docs/images/) and LICENSE
  • licenses/: the notices for the Wwise Vorbis codebook table (from ww2ogg, BSD-3) and the PTADPCM table (from vgmstream, ISC) built into both programs

No installer and no runtime to install: the C runtime is linked in. See the README for usage.

SHA-256: 80131e8758562a180711d1710be9c28ebfc8bbee0b6e1a9f1a3e8437784bc0f9

audscan scan game.pak --tracks                          # what's in there
audscan extract game.pak -d audio/ --split --convert    # everything, split, and playable

What's in it

  • Formats: WAV and Wwise WEM (RIFF and big-endian RIFX), Wwise SoundBanks (.bnk) and file packages (.pck), FMOD FSB4 and FSB5 banks, Ogg (Vorbis, Opus, FLAC, Speex; chained and multiplexed). Each is found by its header and sized exactly; banks and packages list what's inside (names or Wwise IDs, languages, codecs, lengths).
  • Extract everything byte for byte; --split also writes each sound in a bank or package as a file of its own (Wwise WEMs by ID, localized ones per language; FMOD tracks by name, PCM as WAV, other codecs as one-track banks).
  • Convert WEMs: Wwise Vorbis and Opus to Ogg (rewrapped, not re-encoded; Vorbis headers rebuilt and granule positions set, so no revorb needed), PCM, IMA ADPCM and PTADPCM to WAV.
  • Desktop app: a sortable, filterable table of everything found, a strip showing where each file sits, each bank's tracks, a waveform and playback (WAV, WEM, Ogg Vorbis; Windows audio output), and saving, converting and extracting from the window.
  • Fast and safe: memory-mapped parallel scanning (81 GB in 140 s), a JSON manifest, --json output, and the input is never modified.

Checked on real games

  • Once Human, Aniimo, BioShock Infinite (Wwise): every WEM, bank and package sized exactly; 10,200 WEMs split from BioShock's packages exact.
  • Left 4 Dead 2: all 26,725 WAVs, including three kinds of writer mistake that are now tolerated and noted.
  • Slay the Spire 2 (FMOD Studio banks in a Godot package) and VTube Studio (Unity): every FSB5 bank sized exactly; all 2,511 split tracks match their originals in vgmstream, and a sample decodes byte-identically.
  • Conversion, against vgmstream r2117: 1,690 WEMs plus all 1,499 PTADPCM media decode to exactly the same samples as the original WEMs.

Limits

  • Vorbis WEMs with more than 2 channels keep Wwise's channel order (noted when converting); it can't be changed without re-encoding.
  • Prefetch media (the first seconds of a streamed sound kept in a bank) can't be converted alone; the full sound is in the game's streamed files or .pck.
  • Not converted yet: Wwise Vorbis from before Wwise 2011.2, older Opus variants, Opus with more than 2 channels, console codecs (XMA, ATRAC9). No real FSB4 files were available to test (FSB4 is checked by test files only).
  • The desktop app doesn't play Opus, FLAC or FMOD's own Vorbis yet, and plays only on Windows.
  • Not yet: putting edited sounds back.

License

audscan is GPL-2.0-or-later. Both programs include the Wwise Vorbis codebook table from ww2ogg (BSD-3-Clause) and the PTADPCM step table from vgmstream (ISC); their notices are in licenses/.

Updated after release: the zip now also holds the desktop app, audscan-gui.exe, and the tag points at the commit that adds it.

Updated again: the zip was repackaged with the current README (a "Why audscan over vgmstream" section). The programs were rebuilt from the same code.