bf89c3503d
- 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 |
||
---|---|---|
.github | ||
audacious | ||
cli | ||
cmake | ||
doc | ||
ext_includes | ||
ext_libs | ||
fb2k | ||
src | ||
winamp | ||
xmplay | ||
.gitattributes | ||
.gitignore | ||
bootstrap | ||
CMakeLists.txt | ||
configure.ac | ||
COPYING | ||
Directory.Build.props | ||
make-build-cmake.sh | ||
make-build.sh | ||
Makefile | ||
Makefile.autotools.am | ||
msvc-build-clean.bat | ||
msvc-build-init.bat | ||
msvc-build.bat | ||
msvc-build.ps1 | ||
README.md | ||
unbootstrap | ||
version-get.sh | ||
version-make.bat | ||
version-make.sh | ||
version.h | ||
vgmstream_full.sln |
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