vgmstream - A library for playback of various streamed audio formats used in video games.
Go to file
KatieFrogs bf89c3503d Cmake: Fixes for dependencies
- Sets dependencies for targets
  - Fixes not being able to build single targets, like `make vgmstream_cli`
  - Fixes not being able to build with multiple jobs, like `make -j 5`
- Compiles dependencies out of the source directory
- Fixes double lib suffix, renaming liblibvgmstream.a to libvgmstream.a
- Removes zlib dependency from static builds, previously required by ffmpeg
- If ARCHIVE_EXTRACT is not available in cmake, mpg123 will be downloaded through svn, then fall back to git if that is not available either
2021-10-02 09:02:27 +03:00
.github Rename Emscripten action to WebAssembly action 2021-09-13 05:01:42 +03:00
audacious Tweak STREAMFILES to read +2GB files 2021-09-04 21:57:23 +02:00
cli CLI: print -h to stdout, parse tweaks 2021-10-01 00:03:48 +02:00
cmake Cmake: Fixes for dependencies 2021-10-02 09:02:27 +03:00
doc misc 2021-10-01 00:04:32 +02:00
ext_includes cleanup: move clHCA to coding to simplify 2021-08-14 11:39:54 +02:00
ext_libs Cmake: Refactor dependency fetching 2021-09-19 08:46:47 +03:00
fb2k streamfiles: improve performance on name copy 2021-09-16 00:18:52 +02:00
src Cmake: Fixes for dependencies 2021-10-02 09:02:27 +03:00
winamp cleanup 2021-09-05 17:53:47 +02:00
xmplay plugin: unify version format 2021-08-15 19:24:48 +02:00
.gitattributes gitattributes: cpp 2021-08-12 00:05:53 +02:00
.gitignore Add emscripten build step to GitHub Actions 2021-09-13 01:06:07 +03:00
bootstrap build: autotools cleanup and log fixes 2021-08-26 22:16:31 +02:00
CMakeLists.txt Cmake: Fixes for dependencies 2021-10-02 09:02:27 +03: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 build: add simple script for cmake 2021-09-04 20:24:50 +02:00
make-build.sh build: update chmod +x for helper .sh 2021-08-12 20:01:56 +02:00
Makefile doc: move usage info to USAGE.md 2021-09-11 17:19:10 +02: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.bat rename build.* to msvc-build.* for consistency 2021-08-07 13:19:57 +02:00
msvc-build.ps1 misc fixes 2021-09-26 19:34:12 +02:00
README.md misc 2021-10-01 00:04:32 +02: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 2021-09-03 22:12:10 +02:00
vgmstream_full.sln Removed obsolete projects from VS solution 2021-06-11 20:01:24 +03:00

vgmstream

This is vgmstream, a library for playing streamed (pre-recorded) audio from video games.

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 in 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 together multiple files as a single one)
  • simple external tagging via .m3u files
  • plugins available for various common players and O.S.

Latest development is here: https://github.com/vgmstream/vgmstream/

Automated builds with the latest changes: https://vgmstream.org/downloads

Common releases: https://github.com/vgmstream/vgmstream/releases

Help can be found here: https://www.hcs64.com/

More docs: https://github.com/vgmstream/vgmstream/tree/master/doc

Getting vgmstream

There are multiple end-user bits:

  • a command line decoder called test.exe/vgmstream-cli
  • a Winamp plugin called in_vgmstream
  • a foobar2000 component called foo_input_vgmstream
  • an XMPlay plugin called xmp-vgmstream
  • an Audacious plugin called libvgmstream
  • a command line player called vgmstream123

Main lib (plain vgmstream) is the code that handles internal conversion, while the above components are what you use to actually get sound.

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

Windows

You should get vgmstream-win.zip (bundle of various components) or foo_input_vgmstream.fb2k-component (installable foobar2000 plugin) from the latest pre-built binaries: https://vgmstream.org/downloads

You can also try getting them from the (infrequently updated) releases: https://github.com/vgmstream/vgmstream/releases

If the above links fail you may try alt, recent-ish versions here: https://github.com/bnnm/vgmstream-builds/raw/master/bin/vgmstream-latest-test-u.zip

You may compile them from source as well (see build guide).

Linux

Generally you need to build vgmstream's components manually (see build guide). For a quick build call ./make-build-cmake.sh (for Debian/Ubuntu-style distros, installs various deps first so you may prefer to call commands manually).

Releases also distribute a static version of the CLI tool (kernel v3.2+). https://vgmstream.org/downloads https://github.com/vgmstream/vgmstream/releases

Mac

Follow the build guide instructions. You can probably use Linux's script above with some tweaks.

More info

Enjoy! hcs