This is vgmstream, a library for playing streamed (prerecorded) video game audio.
Some of vgmstream's features:
- Decodes hundreds of video game music formats and codecs, from typical game engine files to obscure single-game codecs, aiming for high accuracy and compatibility.
- Support for looped BGM, using file's internal metadata for smooth transitions, with accurate sample counts.
- Subsongs, playing a format's multiple internal songs separately.
- Many types of companion files (data split into multiple files) and custom containers.
- Encryption keys, internal stream names, and other unusual cases found in game audio.
- TXTH function, to add external support for extra formats, including raw audio in many forms.
- TXTP function, for real-time and per-file config, like forced looping, removing channels, playing certain subsong, or fusing multiple files into a single one.
- Simple external tagging via .m3u files.
- Plugins are available for various media player software and operating systems.
The main development repository: https://github.com/vgmstream/vgmstream/
Automated builds with the latest changes: https://vgmstream.org (https://github.com/vgmstream/vgmstream-releases/releases/tag/nightly)
Numbered releases: https://github.com/vgmstream/vgmstream/releases
Help can be found here: https://www.hcs64.com/
More documentation: https://github.com/vgmstream/vgmstream/tree/master/doc
There are multiple end-user components:
- vgmstream-cli: A command-line decoder.
- in_vgmstream: A Winamp plugin.
- foo_input_vgmstream: A foobar2000 component.
- xmp-vgmstream: An XMPlay plugin.
- vgmstream.so: An Audacious plugin.
- vgmstream123: A command-line player.
The main library (plain vgmstream) is the code that handles the internal conversion, while the above components are what you use to get sound.
If you want to convert game audio to .wav, get vgmstream-cli then drag-and-drop one
or more files to the executable (support may vary per O.S. or distro). This should create