vgmstream - A library for playback of various streamed audio formats used in video games. https://vgmstream.org
  • C 90.6%
  • C++ 7.6%
  • CMake 0.8%
  • Python 0.7%
  • Makefile 0.1%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
bnnm 7ac2263bbf
Merge pull request #2065 from EdnessP/master
- Add MSF .at3.new / XMA .xma.new extensions [Silent Hill HD Collection (PS3/X360)]
2026-11-04 00:17:12 +01:00
.github libs: remove libg719_decode 2026-10-19 01:14:16 +02:00
audacious fix Audacious tuple handling 2026-08-20 14:18:41 -05:00
cli txtp-segmented: add -r 2026-10-25 16:56:40 +01:00
cmake libs: remove libg719_decode 2026-10-19 01:14:16 +02:00
doc XMA: ext 2026-11-03 11:41:30 +02:00
ext_includes libs: update ffmpeg 2026-10-16 18:54:05 +02:00
ext_libs libs: remove libg719_decode 2026-10-19 01:14:16 +02:00
fb2k misc: fix buffer isses + cleanup 2026-07-31 00:12:32 +02:00
src XMA: ext 2026-11-03 11:41:30 +02:00
winamp Fix winamp showing wrong decoder info in some cases 2026-10-16 19:02:01 +02:00
xmplay misc: fix minor ub/buffer/int overflow issues 2026-08-27 00:01:58 +02:00
.gitattributes Mark Winamp and XMPlay files as binary (no LF conversion) 2026-02-23 10:59:51 +13:00
.gitignore Fix audacious title encoding 2025-06-08 13:44:15 +02:00
bootstrap builds: missing audacious files 2024-02-11 22:38:35 +01:00
CMakeLists.txt builds: fix 2026-10-19 01:23:29 +02:00
configure.ac cleanup: remove jansson dependency 2024-07-28 18:40:05 +02:00
COPYING doc 2026-04-28 00:54:31 +02:00
Directory.Build.props cleanup: disable some msvc warnings 2024-08-10 23:43:58 +02:00
make-build-cmake.sh libs: fix nasm builds 2026-10-16 19:45:28 +02:00
make-build.sh builds: remove libatrac9 2026-10-10 12:07:05 +02:00
Makefile libs: remove libg719_decode 2026-10-19 01:14:16 +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-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 build: fix foobar 64 -bit component on Windows even without 7zip 2025-11-27 23:49:41 +01:00
README.md doc 2024-07-18 23:53:28 +02:00
SECURITY.md doc 2026-08-24 01:16:37 +02:00
unbootstrap cleanup: misc 2025-04-20 20:46:02 +02: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 2026-10-25 18:11:52 +01:00
vgmstream_full.sln Add foo_input_vgmstream x64 SDK + automated build 2023-02-12 00:10:49 +01:00
vgmstream_msvc.props libs: remove libg719_decode 2026-10-19 01:14:16 +02:00
vspf.py fix: correct 'writting' to 'writing' typo in user-facing messages 2026-07-25 19:44:03 +08:00

vgmstream

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

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.

Usage

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 (file.extension).wav, if the format is supported. You can also try the online web player instead. See: https://vgmstream.org

More user-friendly would be installing a player like foobar2000 (on Windows) or Audacious (on Linux) and the vgmstream plugin. Then you can directly listen your files and set options like infinite looping, or convert to .wav with the player's options (also easier to use if your file has multiple "subsongs").

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 parts on vgmstream's side or lack of support in the player.

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

Windows binaries

Prebuilt binaries:

The foobar2000 component is also available on https://www.foobar2000.org based on current release.

You may also try the alternative versions (irregularly) built by bnnm:

Or compile from source, see the build guide.

Linux binaries

A prebuilt CLI binary is available. It's statically linked and should work on systems running Linux kernel v3.2 and above:

Building from source will also give you vgmstream.so (Audacious plugin), and vgmstream123 (command-line player), which can't be statically linked.

When building it needs several external libraries. For a quick script for Debian and Ubuntu-style distros run ./make-build-cmake.sh. The script will need to install dependencies first, so you may prefer to run steps manually, which the build guide describes in detail.

macOS binaries

A prebuilt CLI binary is available:

Otherwise follow the build guide.

More info

Enjoy! hcs