bnnm
c843c350d1
Clean scd_int layout and rename to layered layout for later reuse
2018-03-30 21:28:32 +02:00
bnnm
642c833fcd
Simplify STREAMFILE handling in scd_int_layout
...
It's not the easiest thing to follow so here is what's going on with
STREAMFILEs:
- external player opens base-streamfile, with a base FILE
- meta scd parses stuff, then per DSP channel/layer:
- open temp-streamfile, which does custom IO with base-streamfile
(doesn't open any FILE)
- pass temp-streamfile to init_vgmstream_ngc_dsp_std
- init parses ok, and re-opens temp-streamfile (with custom IO) as its
own dsp-vgmstream-streamfile; internally it does fopen/fdopen the
original FILE from base-streamfile
- scd_int_layout stores the newly created VGMSTREAM (internally has
the dsp-vgmstream-streamfile too)
- close temp-streamfile, that doesn't close base-streamfile as it's
wrapped to avoid doing so, nor affects dsp-vgmstream-streamfile in any
way.
- meta parsing is done, so external player closes base-streamfile (but
the re-fopen'ed dsp-vgmstream-streamfile FILE remains)
- vgmstream renders pcm buffers, etc
- finally player calls close_vgmstream
- scd_int_layout calls close_vgmstream for each stored VGMSTREAM
- the VGMSTREAM internally closes the dsp-vgmstream-streamfile, which
in turn closes its own FILE
So ultimately all FILEs, STREAMFILEs and their clones should be properly
handled and closed.
2018-03-30 19:14:37 +02:00
bnnm
011b880884
Add little endian .adpcm DSP [LEGO Worlds (Switch)]
...
The .adpcm extension may conflict with naomi_adpcm so meta is ordered
before that
2018-03-29 23:28:02 +02:00
bnnm
531e8dc9b8
Rename blocked layout for consistency
2018-03-29 19:00:04 +02:00
bnnm
dfeb1da3ef
Add .stx STHD [Kakuto Chojin (Xbox)]
2018-03-29 17:01:46 +02:00
bnnm
c052848e26
Add EA .WVE videos [Supercross 2000 (PS), Wing Commander 3/4 (PS)]
2018-03-29 15:39:33 +02:00
bnnm
eb52b3fb57
Add stereo AICA to GENH/TXTH (no interleave) [SF3 Double Impact (DC)]
2018-03-28 00:30:59 +02:00
bnnm
93c26cfef0
Rename coding_AICA to coding_AICA_int since it only does mono data
2018-03-27 23:32:01 +02:00
bnnm
1708dcaf63
Remove PCM16-XOR decoder and use decryption streamfile instead
...
The encryption is built on top of the data, so this way mimics the
actual setup and removes another superfluous decoder
2018-03-27 23:24:24 +02:00
bnnm
0f529ea1a7
Remove BMDX decoder and use decryption streamfile instead
...
The encryption is built on top of PS ADPCM data, so this way mimics the
actual setup and removes a superfluous decoder
2018-03-27 22:39:05 +02:00
bnnm
a2acd045bf
Fix missing nxap
2018-03-25 19:59:58 +02:00
bnnm
c72ff8dd46
Clean ngc_bo2
...
Move code to rkv.c as it's the same format, add .rkv (archive)
extension, remove file and rename to init ngc_rkv
2018-03-25 11:08:36 +02:00
bnnm
1d656026e5
Add .L/R extension [Crash Nitro Kart (PS2)]
2018-03-24 19:43:17 +01:00
bnnm
5d9c5c4ff7
Adjust interleave last block description
2018-03-24 19:30:35 +01:00
bnnm
eca9b83208
Simplify last block interleave
...
Remove layout_interleave_shortblock for clarity as the value is enough
to signal its use. Also fix .snd last block calculation, and clean some
metas since I was testing changes anyway.
2018-03-24 19:27:24 +01:00
bnnm
8534006035
Fix AKB2 subsongs [Mobius Final Fantasy (PC)]
2018-03-24 14:22:37 +01:00
bnnm
f132c11764
Add .aac ADPCM [Star Ocean Ananmesis v1, Heaven x Inferno (Mobile)]
2018-03-24 12:17:04 +01:00
bnnm
fbd8e94e41
Add Yamaha/NXAP ADPCM decoder
2018-03-24 12:08:16 +01:00
bnnm
13a5322e26
Add .smv [Cho Aniki Zero (PSP)]
2018-03-23 22:41:42 +01:00
bnnm
49331423e2
Add true multichannel XBOX-IMA
2018-03-23 21:21:44 +01:00
bnnm
a53712d495
Add RSD6WMA [Scarface (Xbox)]
2018-03-23 18:54:20 +01:00
bnnm
8bb9fa5f4a
Clean .WSI
2018-03-23 18:34:37 +01:00
bnnm
e2a3590158
Remove layout_ogg and cleanup
...
Layout was not actually needed, remove to simplify. Rename
vgm_vorbis_info_t to ogg_vorbis_meta_info_t to clarify it's only for
meta, also don't pass filename to init ogg (not useful even as an
optimization since getting the name is a minuscule part in parsing a
meta)
2018-03-23 16:34:48 +01:00
bnnm
4e0ce29f4a
Fix ACM/NWA bitrate
2018-03-16 18:41:30 +01:00
bnnm
71d642574b
Unify coding_NWAx in a single coding_NWA to simplify
2018-03-16 18:35:21 +01:00
bnnm
05dc3df6e0
Simplify mus_acm_codec_data into acm_codec_data
2018-03-16 18:02:17 +01:00
bnnm
ad1f719cf3
Remove mus_acm_layout.c as it's not neede anymore
2018-03-16 17:23:50 +01:00
bnnm
ce9a69aad1
Clean ACM init/free/reset
2018-03-16 15:42:01 +01:00
bnnm
8d4974033c
Allow ACM to play as regular (single file) layout and remove layout_acm
2018-03-16 13:03:39 +01:00
bnnm
8328814a2f
Add RSD6AT3+ [Crash of the Titans (PSP)]
2018-03-11 21:03:48 +01:00
bnnm
3eeddcc41e
Add WayForward single/segmented .wave [Shantae and the Pirate's Curse]
2018-03-11 19:24:06 +01:00
bnnm
15f221af7c
Rename aax layout to segmented layout, as now can be used for others
2018-03-10 20:25:57 +01:00
bnnm
66c9a06351
Add AAX HCA [Binary Domain (PS3)]
2018-03-10 17:33:48 +01:00
bnnm
693fbf8e3b
Clean AAX layout (rename parts, move code around, etc)
2018-03-10 12:19:30 +01:00
bnnm
a7870c5339
Rename coding_ogg_vorbis to coding_OGG_VORBIS for consistency
2018-03-08 23:32:58 +01:00
bnnm
c0906d1b0f
Add CAF .caf/empty extension, cleanup [Baten Kaitos (GC), Fragile (Wii)]
2018-03-08 23:26:10 +01:00
bnnm
b97fc632be
Fix minor compiler warnings
2018-03-03 19:07:59 +01:00
bnnm
789ca26e8a
Add KID .WAF [Ever 17 (PC)]
2018-03-03 18:46:12 +01:00
bnnm
ce568fb6a3
Add .ATSL for PS4/Vita/PC [Warriors All-Stars (PC)]
2018-03-03 02:03:53 +01:00
bnnm
c44b7ef264
Rename some blocked layouts for clarity
2018-02-25 16:52:57 +01:00
bnnm
3c1d4ee825
Validate max channels on allocation
2018-02-25 12:17:51 +01:00
bnnm
5e50819778
Add FSB FADPCM decoding [Dead Rising 4 (PC), Sine Mora EX (Switch)]
2018-02-25 10:05:28 +01:00
bnnm
3a11728846
Remove xbox_xwav.c as riff.c now should produce identical files
2018-02-24 22:37:17 +01:00
bnnm
ac8a94c2b9
Fix XBOX-IMA decoding, 4ch and tweak layout [Dynasty Warriors 4 (Xbox)]
...
Now writes header sample and skips last nibble, as seen in MS's XDK
code, and simplifies multichannel layouts and fixes some theoretical
configurations
2018-02-24 22:30:17 +01:00
bnnm
6eba6b7022
Tweak WWISE-IMA as interleave and use "MUL" nibble expansion
...
Clarify it's just basically mono XBOX-IMA; "MUL" expansion apparently
used per decompilation (not really noticeable due to small headered
frames)
2018-02-23 23:01:44 +01:00
bnnm
216ecf04b2
Rename psx_mgav to ea_swvr and clean for future changes
2018-02-17 21:15:21 +01:00
bnnm
05916bdf26
Fix REF-IMA ADPCM decoding/num_samples, as it's based on MS-IMA
2018-02-17 18:19:28 +01:00
bnnm
e73023d6e2
Fix MS-IMA ADPCM decoding/bytes_to_samples missing 1 sample per block
...
Now correctly follows Microsoft's spec and matches other players.
2018-02-17 17:23:52 +01:00
bnnm
9cf9416665
Add/use xbox_ima_bytes_to_samples, rename coding_XBOX to XBOX_IMA
...
Currently same as ms_ima_bytes_to_samples, but this will change; renamed
for consistency with all other IMA variations. Also clean a bit some
metas since I was testing anyway.
2018-02-17 12:30:14 +01:00
bnnm
0b2902880c
Minor reordering in get samples_per_frame/frame_size for consistency
2018-02-17 04:00:04 +01:00
bnnm
694cded587
Add stream_size to calculate bitrate in subsongs, print bitrate info
2018-01-28 00:31:12 +01:00
bnnm
2ef0663d79
Add SQEX SAB/MAB (MPEG/ATRAC9/HCA/MSADPCM) [DQ Builders, FF XV (PS4)]
2018-01-27 22:34:48 +01:00
bnnm
d8c81bc14a
Add Media.Vision ATX subfiles (decrypted) [Shining Blade (PSP)]
2018-01-27 14:00:31 +01:00
bnnm
561c3fa8c1
Add Nippon Ichi SPS subfiles [ClaDun (PSP)]
2018-01-27 12:21:25 +01:00
bnnm
861e1ea796
Add Koei Tecmo ATL3 subfiles [One Piece Pirate Warriors (PS3)]
2018-01-27 11:53:15 +01:00
bnnm
a0e97683e4
Add Starbreeze XWC [Riddick Dark Athena, Syndicate]
2018-01-27 11:00:21 +01:00
bnnm
ed29f694ed
Add FSB decryption, keys and optional .fsbkey
2018-01-21 01:46:33 +01:00
bnnm
cbe4b19b92
Add .KM9 [Nobunaga no Yabou - Souzou (Vita)]
2018-01-13 17:47:40 +01:00
bnnm
3236676d5d
Fix some XVAG interleave/subsongs/multichannel [God of War 3 (PS4)]
2018-01-13 11:36:35 +01:00
bnnm
adf9bc84a5
Remove tabs for consistency
2018-01-04 23:38:22 +01:00
Christopher Snowhill
c2cc114bbe
Merge pull request #166 from bnnm/atrac9pre-etc
...
ATRAC9pre, etc
2017-12-28 16:30:32 -08:00
bnnm
8789c5918e
Prepare ATRAC9 decoder hooks (disabled, not usable at the moment)
2017-12-29 00:29:33 +01:00
soneek
160a13dff9
Support for tri-Ace mobile vorbis AAC, support for KTSS
2017-12-27 00:14:50 -05:00
bnnm
331bc187fa
Move XNB from riff.c to xnb.c (cleanup)
2017-12-26 18:17:59 +01:00
bnnm
2f9c16ae9b
Add mu-Law with internal interleave decoder
...
This is needed for blocked layout, as it can't do normal interleave.
Probably could be fixed in the future to remove several superfluous
_int/block decoders
2017-12-24 01:39:24 +01:00
bnnm
a3b991ac3f
Modify SCD/P3D/FSB/XVAG interleave and fix short last interleave
...
Previously, the streams' offsets needed to be pre-adjusted with the
interleave; now assumes all streams start in the same offset (first
stream).
This simplifies short last interleaves (SCD/P3D) and makes
layout_mpeg_custom unnecessary (also allows theoretical variable-sized
interleaves).
2017-12-17 19:25:10 +01:00
bxaimc
0db009b3e6
Add Harmonix Music Systems MOGG Vorbis
2017-12-10 20:30:00 -05:00
bnnm
cc8256d178
Fix some VAWX multichannel files
2017-12-09 19:01:36 +01:00
bnnm
666d47ef84
Remove layout_interleave_byte as NGC_DSP_subint is used instead
...
The layout was designed to do subframe deinterleave (when
less-than-a-frame bytes of each channel are interleaved) in an array and
pass it to "mem" decoders.
In practice this only happens in a handful of formats, was only used
with DSP, and since making "mem" decoders is required it's simpler to
make normal decoders handling the byte layout directly.
In an effort to simplify vgmstream's layouts, code, and other esoteric
features I changed the old decode_ngc_dsp_mem for decode_ngc_dsp_subint;
results are byte-exact.
2017-12-06 21:12:42 +01:00
bnnm
98b4f8c5b1
Add NGC DSP subinterleave decoder
...
Meant to replace layout_interleave_byte
2017-12-06 21:04:04 +01:00
bnnm
53698db7c3
Add vgmstream_force_loop, comments (API cleanup)
2017-12-06 16:55:41 +01:00
bnnm
3380451c80
Code cleanup (renames, comments, nitpicks)
2017-12-06 15:32:52 +01:00
bnnm
6072d17f50
Add EA MicroTalk decoder [FIFA 2001 PS2, Ultima IX voices]
2017-12-03 13:44:55 +01:00
bnnm
e3de403c9f
Add Ultima IX .FLX (EA-XA/PCM)
2017-12-03 01:41:25 +01:00
bnnm
94de52ec2d
Clean EA-XA and fix some subsongs (don't use channel_start_offset)
...
Also fix 'sample' type shadowing and Maxis-XA skipping a frame in mono
2017-12-03 01:37:56 +01:00
bnnm
b9c3bd9a01
Add Neversoft .OGG [Gun (GC)]
2017-12-02 16:33:43 +01:00
bnnm
e2c059bc31
Add EA .SNS+SNR / .SPS [Burnout Crash, NFS Hot Pursuit PS3]
2017-12-01 17:27:49 +01:00
bnnm
77b849a024
Add Gameloft .VXN [Mobile games]
2017-11-27 20:22:10 +01:00
Christopher Snowhill
3bdd5616df
Merge branch 'master' into master
2017-11-25 17:34:45 -08:00
bnnm
770a27d0b4
Add dual extension in try_dual_file_stereo for Homura (PS2)
2017-11-26 01:54:33 +01:00
bnnm
2889765c5c
Fix EA SNU looping not properly saving block state
2017-11-26 01:25:27 +01:00
bnnm
db3af4d407
Rename some blocked layouts for clarity (hopefully)
2017-11-25 01:18:27 +01:00
bnnm
d0be7e0c36
Minor tweaks/comments/renames/etc
2017-11-25 00:43:18 +01:00
bnnm
084c3075e4
Improve try_dual_file_stereo and cleanup
...
To test dual stereo it was trying all metas, but only the meta that
opened the first file can be accepted (as validated), so pass its
function pointer and try only that instead.
2017-11-24 20:15:23 +01:00
bnnm
e1bb468bd5
Remove unnecessary check_sample_rate
2017-11-23 23:11:11 +01:00
bnnm
7c7af0bf18
Rename *_DE2 to _*DEC for consistency and since it was first
2017-11-23 22:48:11 +01:00
bnnm
17da12f324
Add Namco AAC (.naac) [Ace Combat: Assault Horizon Legacy (3DS)]
2017-11-23 22:32:31 +01:00
bxaimc
ed36ae44a3
Add EZW for EZ2DJ (Arcade)
2017-11-21 21:30:48 -05:00
bnnm
8363e26b88
Unify IMA/IMA_int with standard IMA decoder + add stereo IMA
2017-11-19 03:32:21 +01:00
bnnm
36d4f69420
Fix STRM FFTA2 using the wrong IMA, making output slightly incorrect
2017-11-18 22:49:18 +01:00
bnnm
ea634ad473
Add 3DS IMA for BCSTM and fix old IMA regression (HWAS/SWAV/SAD/AUD/etc)
...
Standard IMA algorithm was changed for BCSTM, subtly altering regular
IMA's waveforms (not too audible). Now this 3DS variation is separate.
2017-11-18 22:25:44 +01:00
bnnm
79c5cfab49
Clean EA 1SNh/EACS (ea_old) and fix some bugs/looping
2017-11-18 02:20:52 +01:00
bnnm
4a2cf9dd91
Fuse EACS and DVI IMA decoder into a configurable IMA decoder
...
EACS was just DVI (high nibble first) with stereo and mono modes, while
old DVI was mono only.
This unifies both decoders, so DVI_IMA (not interleaved) works with mono
and stereo while DVI_IMA_int (interleaved) forces mono.
Some metas needed to explicitly set DVI_IMA_int but others work with no
change.
2017-11-17 17:18:17 +01:00
bnnm
2ad3d432f1
Rename pcm.c > scd_pcm.c (cleanup)
2017-11-16 00:41:06 +01:00
bnnm
6c141a6582
Clean .dvi/.kcey and add proper .PCM extension
2017-11-15 23:26:38 +01:00
bnnm
7bec0d368f
Remove raw SS3/SS7 meta as it was inaccurate and ubi_sb supports it
2017-11-11 17:49:07 +01:00
bnnm
82b1f235de
Remove/simplify formats.h and move to vgmstream.h for simpler API
2017-11-10 20:26:44 +01:00
bnnm
66be677f56
Add Ubisoft .sb0..N + ss0/ls0..N banks + Ubisoft ADPCM [Ubi PoP trilogy]
2017-11-05 17:06:40 +01:00
Christopher Snowhill
b316b0ec33
Merge pull request #136 from bnnm/bgw-sab-etc
...
BGW, SAB, etc
2017-10-28 18:22:12 -07:00
bnnm
1ff0cecca8
Fix minor compiler warnings (missing const/static/case defaults/etc)
2017-10-28 01:34:32 +02:00