vgmstream - A library for playback of various streamed audio formats used in video games.
Go to file
bnnm 8f552c5cd1 build: use .dll.a instead of .a for link libs
- more consistent with mingw's usage (not standard static libs)
2023-01-15 20:11:00 +01:00
.github Actions: Build vorbis instead of using apt 2022-10-24 18:41:58 +02:00
audacious audacious: always reject unplayable files 2022-08-06 20:06:25 +02:00
cli move libspeex with other DLLs 2023-01-15 19:13:33 +01:00
cmake build: move helper ext_lib files to ext_lib/extra 2023-01-15 20:10:21 +01:00
doc remove maiatrac3plus code 2023-01-15 18:52:56 +01:00
ext_includes update ffmpeg 2023-01-15 17:39:01 +01:00
ext_libs build: use .dll.a instead of .a for link libs 2023-01-15 20:11:00 +01:00
fb2k move libspeex with other DLLs 2023-01-15 19:13:33 +01:00
src move libspeex with other DLLs 2023-01-15 19:13:33 +01:00
winamp move libspeex with other DLLs 2023-01-15 19:13:33 +01:00
xmplay move libspeex with other DLLs 2023-01-15 19:13:33 +01:00
.gitattributes gitattributes: cpp 2021-08-12 00:05:53 +02:00
.gitignore move libspeex with other DLLs 2023-01-15 19:13:33 +01:00
bootstrap build: autotools cleanup and log fixes 2021-08-26 22:16:31 +02:00
CMakeLists.txt remove maiatrac3plus code 2023-01-15 18:52:56 +01:00
configure.ac build: autotools cleanup and log fixes 2021-08-26 22:16:31 +02:00
COPYING Update COPYING 2019-04-29 18:31:37 -07:00
Directory.Build.props msbuild: optional log and warning config 2021-08-13 22:35:14 +02:00
make-build-cmake.sh misc tweaks 2021-10-08 22:24:51 +02:00
make-build.sh build: update chmod +x for helper .sh 2021-08-12 20:01:56 +02:00
Makefile build: use .dll.a instead of .a for link libs 2023-01-15 20:11:00 +01:00
Makefile.autotools.am builds: modify how version.h is used to fix issues 2021-08-10 23:51:48 +02:00
msvc-build-clean.bat msbuild: some config and tweaks 2021-08-07 17:04:48 +02:00
msvc-build-init.bat rename build.* to msvc-build.* for consistency 2021-08-07 13:19:57 +02:00
msvc-build-package.bat doc 2021-10-08 22:21:42 +02:00
msvc-build.bat Add S3V support for SVDX (AC). Fix looping for 2DX9 and SD9. 2022-04-20 23:05:37 -04:00
msvc-build.ps1 move libspeex with other DLLs 2023-01-15 19:13:33 +01:00
README.md rename test.exe to vgmstream-cli.exe 2023-01-15 18:24:41 +01:00
unbootstrap Change ./test folder references to ./cli 2018-01-19 00:39:04 +01:00
version-get.sh builds: fix version .sh for standard sh 2021-08-15 21:22:43 +02:00
version-make.bat builds: batch tweaks 2021-08-15 19:57:56 +02:00
version-make.sh builds: fix version .sh for standard sh 2021-08-15 21:22:43 +02:00
version.h Update version.h 2023-01-10 22:23:35 +01:00
vgmstream_full.sln Migrate to VS 2019 and foobar2000 2022-01-04 SDK 2022-05-01 21:47:58 +03:00

vgmstream

This is vgmstream, a library for playing streamed (prerecorded) video game audio.

Some of vgmstream's features:

  • 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 many 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://dl.vgmstream.org

Common 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

Getting vgmstream

There are multiple end-user components:

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 just want to convert game audio to .wav, easiest would be getting vgmstream-cli (see below) then drag-and-drop one or more files to the executable. This should create (file.extension).wav, if the format is supported. More usable would be installing a music player like foobar2000 (for Windows) or Audacious (for Linux) then the appropriate component, so you can listen to VGM without converting and set options like infinite looping.

See components in the usage guide for full install instructions and explanations. The aim is feature parity, but there are a few differences between them due to missing implementation on vgmstream's side or lack of support in target player or API.

Note vgmstream cannot encode (convert from .wav to some video game format), it only decodes (plays game audio).

Windows

You should get vgmstream-win.zip, which also bundles various components, or foo_input_vgmstream.fb2k-component for the installable foobar2000 plugin from the latest prebuilt binaries on our website:

You can also get them from the less frequently updated releases on GitHub:

If the above links fail, you may also try the alternative, somewhat recent versions built by bnnm:

If you prefer, you may compile the components from source as well, see the build guide for more information.

Linux

For convenience, releases distribute a command-line decoder in vgmstream-cli.zip. It is statically linked and should work on all systems running Linux kernel v3.2 and above.

Building from source will also give you vgmstream.so, an Audacious plugin, and vgmstream123, a command-line player.

When building from source code, many components have to be installed or compiled separately. The build guide describes this process in more detail. For a quick build on Debian and Ubuntu-style distributions, run ./make-build-cmake.sh. The script will be installing various dependencies, so you may prefer to copy the commands from the file and run them one by one.

macOS

Please follow the build guide.

More info

Enjoy! hcs