Commit Graph

618 Commits

Author SHA1 Message Date
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
bnnm
e6cb6facbc Fix coding_XBOX_int so it properly works with any interleave; comments 2017-10-27 18:56:34 +02:00
bxaimc
0d440dbecd Added AST (ASTL) variant for Dead Rising (PC). Looping is disabled due to being non-trivial; it will need to be fixed eventually. 2017-10-20 21:06:49 -04:00
bnnm
6b57005c07 Fix some S14/SSS (Korogashi Puzzle Katamari Damacy) 2017-10-14 13:42:59 +02:00
bnnm
c770490b3d Add AL2 meta + A-law decoder [Conquest of Elysium 3 (PC)] 2017-10-08 17:51:54 +02:00
bnnm
16786b78d4 Add .opus [Lego City Undercover] 2017-09-30 01:27:47 +02:00
bnnm
8a8ebe3e24 Minor renames for style (ps3_xvag > xvag, x360_nub > nub_xma) 2017-09-29 23:37:20 +02:00
bnnm
d46996a642 Improve Guitar Hero II multi-streams with block layout
Fixes partially by ignoring last stream, as it can be half sample rate
2017-08-28 20:05:03 +02:00
bnnm
3001b7acba Fix NGC STM regression [Fire Emblem Path of Radiance (GC)] 2017-08-28 17:47:19 +02:00
bnnm
41b22c2699 Add AWC PCM/IMA (non-encrypted only) [GTA5 (PC)] 2017-08-28 16:07:09 +02:00
bnnm
953022b983 Add AWC MP3 [Red Dead Redemption (PS3), GTA5 (PS3)] 2017-08-28 15:14:24 +02:00
bnnm
5d12d6fb67 Add big endian mode to coding_PCM16LE_int and rename to coding_PCM16_int 2017-08-27 22:17:13 +02:00
bnnm
adb225c180 Add EA SNU + EA-XAS decoder + SNS blocks [Dead Space, The Godfather 2] 2017-08-20 02:18:48 +02:00
bnnm
86b7b45c89 Minor rename 2017-08-19 15:59:29 +02:00
bnnm
3c14d3fdb4 Parse loop_target manually (get_vgmstream_play_samples is just a helper) 2017-08-18 19:32:51 +02:00
bnnm
d9fb118412 Add BINK multi-stream support and v2 header 2017-08-18 19:24:19 +02:00
bnnm
6642607d0e Add FSB5 PCMFLOAT + decoder [Anima Gate of Memories (PC)] 2017-08-18 18:54:21 +02:00
bnnm
ade662e023 Redo Angel STM: add PCM, adjust looping, unify code, add .lstm 2017-08-12 18:42:38 +02:00
bnnm
b7c807a85c Add stream name string, for metas than can use it 2017-08-12 11:27:10 +02:00
bnnm
aaa2613802 Add EALayer3 v1 decoder for SCHl [EA games for PS2/Wii/X360/PS3] 2017-08-05 17:54:50 +02:00
bnnm
3e947b5e9d Remove meta_AHX from MPEG ifdefs
I feel parsing a header/meta isn't tied to the ability to init the
codec, which could be swapped if one wanted to use another lib
2017-07-29 23:21:32 +02:00
bnnm
d54492cb95 Update MPEG "interleaved" decoder: now "custom", restructured, added AHX
To support future MPEGs of uncertain layout and frame variations (namely
EALayer3) the code has been restructured: mpeg_decoder does stream
procesing and decoding, while mpeg_custom_utils_x does init and parsing
(write to data buffer + update offsets), per MPEG subtype. Internals
have changed but still gives byte-exact results.
AHX has been adapted to this format as a test. Some modes
(P3D/EALayer3/LyN/AWC) are defined for later development but will fail
on init ATM.
2017-07-29 23:14:04 +02:00
bnnm
6308818b77 Simplify MPEG coding/layouts to allow blocked layouts and future changes 2017-07-29 13:05:23 +02:00
bnnm
54ef2b5190 Add Silicon Knights .AUD + SK Vorbis [Eternal Darkness (GC)] 2017-07-29 11:46:53 +02:00
bnnm
bc8e2e9204 Unify fsb/wwise/ogl Vorbis decoders into a single decoder with subtypes 2017-07-28 23:26:58 +02:00
bnnm
ab6a146528 Add EA SCHl fixed/old (PATl) support [NHL 97 (PC)] 2017-07-23 17:09:55 +02:00
bnnm
3d6e0882ba Improve NDS HWAS volume swings by resetting ADPCM hist every block 2017-07-23 13:16:59 +02:00
bnnm
1fb02da34d Remove EA hack in XBOX decoder and modify XBOX_int (mono) for EA SCHl 2017-07-23 04:21:07 +02:00
bnnm
312b68c0b7 Add EA BNK support and fix minor EA header parsing defects 2017-07-23 03:46:55 +02:00
bnnm
5fe6033442 Fix/improve EAXA naming scheme and detection/handling
EA's MT/MicroTalk is not the early version of EAXA as I thought, but a
rarely used VBR codec (ex. FIFA 2001/2002 PS2) seemingly related to
Westwood VBR ADPCM
2017-07-21 19:19:58 +02:00
bnnm
47c5f70976 Add TXTH generic header format
It's a single text file with basic read commands; similar to GENH but
meant to simplify addition/distribution of (semi)headerless formats
2017-07-15 11:49:28 +02:00
bnnm
58af99fd4b Fix FFTA2 loop 'clicks' in some files by preserving ADPCM history 2017-07-08 11:34:02 +02:00
bnnm
cce72d7aa5 Add EA SCHl Saturn + MT10 mono/int; changed Maxis_ADPCM to Maxis_MT10
Also fixed some issues with ADPCM hist in EA SCHl blocks
2017-07-08 00:27:36 +02:00
bnnm
bf34339b41 redo EA SCHl support [EA games from roughly 1997~2010]
* tested most variations using EA's tools
* added looping [Need for Speed II PC]
* added DSP support [3DS games]
* fixed PCM/EAXA/MT in some cases [PS2/GC/XBOX/Wii games]
* fixed sample rate/codec defaults, num_samples in some cases
* documented more header patches and other details (ex. "EA ADPCM" is
now EA MT/MicroTalk, as per EA's tools)
* (dev) some internals adapted for EA stuff
2017-07-01 23:02:24 +02:00
bnnm
880b8c5543 Add Wii 04SW [Driver: Parallel Lines (Wii)] 2017-06-25 00:27:58 +02:00
bnnm
f617e5e762 Improve PS2 XA30 [Driver: Parallel Lines (PS2)] 2017-06-24 23:33:49 +02:00
bnnm
64500f025d Add PC XA30 + IMA decoder [Driver: Parallel Lines (PC)] 2017-06-24 23:30:10 +02:00
bnnm
7bf4e99cba Improve buffer setup with multichannel files (vgmstream_open_stream) 2017-06-24 22:53:17 +02:00
bnnm
519c5d71de Redo RWS with PCM/PS-ADPCM/DSP/IMA-ADPCM + block support [many games] 2017-06-10 02:25:49 +02:00
bnnm
7e42eeca58 Add u-Law decoder + ULW meta [Burnout 1 GC] 2017-06-09 22:26:09 +02:00
bnnm
a903072a11 Added XPEC's .XAU IMA-ADPCM support [Beat Down (Xbox)] + looping (PS2) 2017-05-18 21:00:42 +02:00
bnnm
9488ba32c7 test.exe: add "-F" option to loop + play stream's end instead of fading 2017-05-18 19:55:00 +02:00
bnnm
625c18a87e Add MTA2 decoder/meta support [Metal Gear Solid 4 (PS3)] 2017-05-18 19:16:44 +02:00
Alex Barney
3e2b4e3735 Add support for multi-channel Nintendo .dsp files 2017-05-13 19:38:28 -05:00
Christopher Snowhill
4e54a82900 Merge pull request #89 from Thealexbarney/adx
Improve ADX support
2017-05-13 16:42:23 -07:00
Alex Barney
89cdaa83e9 Add support for encoding type 4 ADX 2017-05-13 17:37:24 -05:00
bnnm
3527dbcdb0 Add RXWS (.XWB+XWH/.XWS) with ADPCM/PCM/ATRAC3 [Sony/SCEI PS2 games] 2017-05-13 23:54:09 +02:00
Alex Barney
ab647cc155 Add support for type 2 ADX files 2017-05-13 16:04:30 -05:00
Alex Barney
ef1499f480 Add support for varying ADX frame sizes 2017-05-13 15:17:27 -05:00
bnnm
a79b874f82 Add RSD6XMA and tri-Ace's PS3/X360 support (by bxaimc) 2017-05-13 02:22:15 +02:00
bnnm
e2cc352238 Add GTD support [Knights Contract X360] 2017-05-13 01:55:31 +02:00
bnnm
b8f2efadc4 Add partial support for Xbox MSS [Shellshock Nam 67], update names
Needs a new "stereo interleave" layout so it only plays as a 2ch stream
for now.
2017-05-12 19:15:18 +02:00
bnnm
6cf0195d25 Move reset/seek/free code to decoders (vgmstream.c cleanup) 2017-04-29 22:37:15 +02:00
bnnm
779bf68ab1 Fix some compiler errors with -Werror=format-security 2017-04-29 16:23:50 +02:00
bnnm
d5aee307f0 Rename coding_INT_X to coding_X_int for consistency with other codecs 2017-04-29 02:53:36 +02:00
bnnm
75d079f389 Add block size (interleave) description for MSAPDCM/MS-IMA/etc 2017-04-29 02:19:27 +02:00
bnnm
4a83de7dae Added MC3 decoder/meta [MX Rider, Spy Hunter, T3] (thanks to daemon1) 2017-04-28 17:26:25 +02:00
bnnm
f153479383 Add OGL Vorbis decoder/meta [Jett Rocket (Wii), FAST Racing NEO (WiiU)] 2017-04-22 19:25:54 +02:00
bnnm
bd3e054b82 Add basic SXD support [Gravity Rush, Freedom Fighter SFX (PSV)] 2017-04-22 15:00:22 +02:00
bnnm
bb00cfa22c Make try_dual_file_stereo static/local 2017-04-22 13:31:12 +02:00
bnnm
c8f82e6f06 Simplify XMA parsing and don't make it fully FFmpeg-dependant 2017-04-22 13:12:01 +02:00
bnnm
7cc3660fc8 Separate X360 NUB/PASX from xma.c for cleanup 2017-04-22 12:09:43 +02:00
bnnm
f067d4ddb9 Added Wwise Vorbis decoder and packed codebooks 2017-04-13 15:04:46 +02:00
bnnm
a468898855 Added Wwise IMA decoder; ms_ima_bytes_to_samples
There are some minor issues with seeking in odd samples to be fixed
2017-04-11 19:59:29 +02:00
bnnm
a33a77575a Add Ubisoft RAKI [Rayman Legends, Just Dance 2017 (multi)] 2017-04-07 18:01:04 +02:00
bnnm
4f73cfc18d Add partial Wwise support (PCM/DSP/AAC/HEVAG) 2017-04-02 12:27:21 +02:00
bnnm
01391f4d6d Add FSB Vorbis decoder 2017-03-25 14:57:44 +01:00
bnnm
3a98c9e7d5 Add Capcom .AST [Dead Rising X360] 2017-03-19 00:44:58 +01:00
bnnm
d6ce0f0ae3 Fix SGXD typo (SGDX to SGXD) 2017-03-18 15:07:58 +01:00
bnnm
76a351c7e2 Add minor debug log when looping is auto-disabled 2017-03-18 00:24:36 +01:00
bnnm
613766e856 Add comment 2017-03-09 20:38:52 +01:00
bnnm
85a3ec749f Show stream numbers in the description (few multi-stream formats only) 2017-03-04 02:05:07 +01:00
bnnm
0296be392f Redone XWB with full support [many XBOX360 games]
Includes PCM/XBOX-ADPCM/MS-ADPCM/XMA1/XMA2/WMAv1/WMAv2/WMApro.
Known issues (examples needed):
- PCM8bit, WMAv1 (XBOX) and WMApro (late XBOX360) not tested
- compact mode not tested
- earlier (XACT2) MS-ADPCM looping not tested
- XACT2 v35/36/37 may not play correctly (~few mid 2006 games)
2017-02-25 13:57:18 +01:00
bnnm
e0d129e06c Prepare MPEG stuff for multichannel 2017-02-18 18:27:21 +01:00
bnnm
df84602e85 Move reset/seek/free MPEG code to mpeg_decoder (for later changes) 2017-02-17 17:20:40 +01:00
bnnm
b3ca092b6a Add AKB support for OGG/alt AAC [SQEX iOS: Dragon Quest 2-6, FF6, TWEWY] 2017-02-12 14:42:02 +01:00
bnnm
6cd991ebf6 Added FSB multichannel IMA
Variation of the XBOX IMA used in >2ch FSB (interleaved header)
2017-02-04 19:19:51 +01:00
bnnm
2aa025f245 Added BIK/BIKa 1/2 [various game movies] 2017-02-04 13:00:13 +01:00
bnnm
dfa9edea76 Remove unneeded/buggy stream-closing code in vgmstream_open_stream 2017-01-25 22:31:28 +01:00
bnnm
195958b20a Move Xenoblade 3D DSP .adx from CRI .adx to its own meta (cleanup) 2017-01-25 22:23:45 +01:00
bnnm
a809a7c628 Add Omikron: The Nomad Soul IMA ADPCM coding and meta 2017-01-25 20:25:39 +01:00
bnnm
11968a5593 Add support for WiiBGM demuxed from G1L [Romance of Three Kingdoms 12] 2017-01-18 21:28:14 +01:00
bnnm
ef44b5b5cc SCD DSP: validate size/offset and don't crash when failing to open 2017-01-18 21:19:43 +01:00
Christopher Snowhill
f47fabab9a Fix another regression caused by ee5a40224d deleting return statements that other switch cases fell into. 2017-01-17 10:37:47 -08:00
bnnm
9cea79eedc Adjust minor vgmstream_open_stream condition 2017-01-15 22:16:28 +01:00
bnnm
295fcf1b8a Improve buffer usage in some cases when using vgmstream_open_stream 2017-01-15 21:02:01 +01:00
bnnm
cba1d28ae2 Fixed regression in Xbox codecs 2017-01-15 20:44:52 +01:00
Christopher Snowhill
efdbf8c331 Merge pull request #61 from bnnm/formats-stuff
Formats and stuff
2017-01-14 14:16:16 -08:00
derselbst
088aa2414f avoid format-security compiler warnings 2017-01-14 16:23:59 +01:00
bnnm
c68608149c Moved check_extensions/open_stream to streamfile.c/vgmstream.c 2017-01-14 00:59:54 +01:00
bnnm
2467f9afdc Added CXS [Eternal Sonata (Xbox 360)] 2017-01-08 14:19:32 +01:00
bnnm
01981a6686 Added PS2 VDS/VDM [Graffiti Kingdom] 2017-01-08 12:59:04 +01:00
bnnm
86ba7a6a23 Remove some old DEBUG code 2017-01-08 02:58:52 +01:00
bnnm
ad74cced1f Moved coding/layout/meta switch-case descriptions to list in formats.c 2017-01-08 02:27:35 +01:00
bnnm
c7c1564d9f Minor cleanups (no functionality changes)
- added comments, code alignment for clarity
- renamed some decoders for consistency (ex. eaxa > ea_xa, invert_psx >
psx_bmdx, vgm_adpcm_cfg > psx_cfg)
- removed layout_dkt_interleave (same as nolayout)
- removed skip_last_channel (not used anymore)
- removed meta_DSP_HALP (not used anymore)
2017-01-08 01:09:20 +01:00
bnnm
3e4299b373 Added ATRAC3/XMA in VAWX (.xwv) [Moon Diver, No More Heroes X360] 2017-01-07 17:04:21 +01:00
bnnm
ee5a40224d Added PS ADPCM of configurable frame size (FF XI, Blur, Afrika)
This fuses the FF XI/BSF/Short VAG decoder variants into a single one
(FF XI alone has 4 possible frame sizes); also fixed FF XI sample rate
and some cleanup.
2016-12-29 23:34:21 +01:00
bnnm
6c82a508ef Redone FSB1-4: improved XMA/MPEG, bugs, looping
Now parses FMOD's flags correctly and should work for all versions.
There are still some problems with IMA ADPCM which also happened before.
2016-12-29 14:06:57 +01:00
bnnm
9bd2003218 Fix minor warning 2016-12-29 01:46:49 +01:00
bnnm
12760d2183 Sanify loops: ignore negative start 2016-12-22 23:25:18 +01:00
bnnm
ea7b8d2570 Added short VAG variation (SGXD type 5 found in PS3 Afrika) 2016-12-21 23:00:34 +01:00
bnnm
0b3050cf0a Added PSVita HEVAG (original algorithm by daemon1) 2016-12-21 20:44:16 +01:00
Christopher Snowhill
ad85fc8bc3 Make XMA support dependent on FFmpeg inclusion, for now. 2016-12-18 11:41:26 -08:00
bnnm
8140800587 Added proper/looped .XMA 2016-12-18 18:12:27 +01:00
bnnm
d1dc2b6082 Added .BCWAV dual stereo (3DS Lego games) 2016-12-18 10:24:14 +01:00
bnnm
2a7b645d23 Fixed PS2 MSS sample count and description 2016-12-16 20:29:02 +01:00
bnnm
cdfd47eb7b FFmpeg: expose block/frame size, rename totalFrames for clarity 2016-12-10 15:53:29 +01:00
bnnm
22d7708d68 Added FFmpeg MP4/AAC 2016-12-06 17:12:56 +01:00
bnnm
2ac3db4d03 SGDX fixes: AT3/AC3 codecs (via FFmpeg), ADPCM interleave, unify code 2016-12-04 23:10:18 +01:00
bnnm
f5da8281e2 Move FFmpeg reset to ffmpeg_decoder (cleanup) 2016-12-01 19:58:51 +01:00
bnnm
2754f05b11 Move FFmpeg looping to ffmpeg_decoder for further changes (cleanup) 2016-11-30 23:48:49 +01:00
bnnm
b9db20283d FFmpeg: keep block size constant (for edge loops), don't write on EOF 2016-11-29 20:22:20 +01:00
bnnm
75dd0d0d8b FFmpeg fixes
- add samplesPerBlock to FFmpeg struct (for clarity)
- delete functions defs already in meta.h
- comments as I tried to understand the code better
2016-11-26 13:43:59 +01:00
bnnm
9e6458c4b9 describe_vgmstream: FFMpeg long_name may be NULL 2016-11-25 22:19:18 +01:00
bnnm
ec068700ae ffmpeg looping: allow compile with accurate (slower?) looping + document 2016-11-20 15:51:02 +01:00
bnnm
cc9b21bd48 Check if there are samples to play so it won't generate empty files 2016-11-13 21:08:10 +01:00
bnnm
b5a9db8ae2 support for PS2 SNK SVAG 2016-10-27 23:21:12 +02:00
Christopher Snowhill
42c00f304b Add rollback to FFmpeg loop seeking, since FFmpeg doesn't seem to institute any rollback of its own. 2016-08-14 15:18:34 -07:00
Christopher Snowhill
c4c7ec55bf Tab normalization. 2016-08-10 18:34:13 -07:00
Chris Moeller
cbe9bc3d6b Added FFmpeg support, and fixed a long standing issue with broken loops locking up the decoder. 2016-07-16 23:02:27 -07:00
Chris Moeller
4c75e6a5bc Updated HCA decoder. 2016-06-29 19:56:20 -07:00
Chris Moeller
5200ed4a91 Fixed file handle leak in HCA and MP4 decoders. Minor casting fixes. 2016-06-28 19:27:30 -07:00
Chris Moeller
33563f4e7c Add HCA support. 2016-06-28 00:20:37 -07:00
Chris Moeller
cf0e1c5f2b Add a guard on the bitrate calculator 2015-08-23 23:44:23 +00:00
libertyernie
ed06d9fbcd Remove trailing colon from ifdef 2015-08-12 18:09:10 -05:00
Joseph Gibbs
51dfc3339a Added support for Xenoblade Chronicles 3D adx 2015-05-16 15:30:15 -07:00
Chris Moeller
2ff56989b1 Fix it so it compiles 2015-02-13 16:49:29 -08:00
Chris Moeller
4dcb647b67 Hopefully fixed bitrate checker for formats that don't use the primary streamfile pointers 2015-02-13 16:47:59 -08:00
Chris Moeller
9732c8a0a5 Fixed bitrate calculator for formats that leave some channels' streamfile pointers empty 2015-02-12 14:22:51 -08:00
Chris Moeller
2c5e8a1421 Implemented function for querying the average bitrate of all stream files associated with a VGMSTREAM instance 2015-02-08 19:01:26 -08:00
Chris Moeller
1ad884287b Added G.719 decoding support to BNSF input 2015-01-24 21:08:25 -08:00
soneek
46f21d977b Update to build with mingw, added at3plus support to Winamp plugin, Capcom mca, WiiU btsnd, MH3U dspw 2015-01-21 19:28:43 -05:00
soneek
76062dbbdc Add Hyrule Warriors G1L 2014-10-19 17:10:31 -04:00
soneek
52d3f06162 First BFSTM support (needs work for 9+ channels), experimental NSMBU bfwav support 2014-10-18 17:54:31 -04:00
Chris Moeller
9a03256df2 CSMP for Metroid Prime 3 and DKCR, from Antidote 2014-09-16 16:34:08 -07:00
Chris Moeller
0ebc29f236 IDSP as in SSB4 3DS 2014-09-16 16:31:59 -07:00
Chris Moeller
7425dc2aad Fixed remaining path limit issues 2014-08-02 20:32:30 -07:00
soneek
b1e5a3a9e3 Added experimental support for bfwav 2014-08-02 19:10:45 -04:00
manakoat
96301376cc FSB5 added, only MPEG support now 2014-04-23 21:31:04 -07:00
Chris Moeller
1ab759bd19 Added soneek's experimental CSTM meta for BCSTM support (3DS) 2014-02-25 22:31:28 -08:00
Chris Moeller
9fc46bd877 Added OTM support for Otomedius (Arcade) 2014-02-25 22:25:02 -08:00
Chris Moeller
dc4b7f553c Add PS2 VBK meta. 2013-09-03 11:27:36 -07:00