mirror of
https://github.com/vgmstream/vgmstream.git
synced 2024-11-28 00:20:47 +01:00
doc
This commit is contained in:
parent
f2b42dd9c4
commit
c6adbc6b38
@ -2,13 +2,13 @@
|
||||
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](doc/FORMATS.md), from typical game engine files
|
||||
to obscure single-game codecs, aiming for high accuracy and compatibility.
|
||||
- Decodes [hundreds of video game music formats and codecs](doc/FORMATS.md), 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](doc/USAGE.md#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.
|
||||
- Encryption keys, internal stream names, and other unusual cases found in game audio.
|
||||
- [TXTH](doc/TXTH.md) function, to add external support for extra formats, including raw audio in
|
||||
many forms.
|
||||
- [TXTP](doc/TXTP.md) function, for real-time and per-file config, like forced looping, removing
|
||||
|
22
doc/USAGE.md
22
doc/USAGE.md
@ -929,3 +929,25 @@ vgmstream's internals are tailored to play streams so, in other words, it's not
|
||||
possible to add support for sequenced audio unless massive changes were done,
|
||||
basically becoming another program entirely. There are other projects better
|
||||
suited for playing sequences.
|
||||
|
||||
|
||||
## External loop points
|
||||
Most games use audio formats that define loop points inside its files. That is,
|
||||
you get looped/repeated audio in vgmstream simply by opening the files.
|
||||
|
||||
However some games use formats that don't define loops points, and instead store
|
||||
loops in the executable or some external file. For example they could have a bunch
|
||||
of `.ogg` and some text with start/end loop time info for all `.ogg`, or `.opus`
|
||||
files with loop samples defined in a `.bfsar`.
|
||||
|
||||
Since those cases are typically custom/per game, vgmstream can't really read those
|
||||
loop points automatically. Instead, one should make (manually or with some script)
|
||||
one TXTP per file that tells vgmstream about its external loop points, and play
|
||||
the `.txtp`:
|
||||
**BGM_BTL_ACMaster_opus.txtp**: `BGM_BTL_ACMaster_opus.lopus #I 258724 2929972`
|
||||
|
||||
Some games also use intro + loop "segments" in separate files that can be combined
|
||||
with `.txtp` as well.
|
||||
|
||||
This may even happen with formats that do have loops in other games (for example
|
||||
relatively common with `.fsb` and mobile games, that may define loops in a .json file).
|
||||
|
Loading…
Reference in New Issue
Block a user