Commit Graph

177 Commits

Author SHA1 Message Date
bnnm
f70852095c Tweak minor ACM stuff for opaqueness 2018-09-04 18:37:51 +02:00
bnnm
fa472d4f70 Fix interleaved 2ch XBOX-IMA [Fairly OddParents: Breakin' da Rules] 2018-09-04 17:10:41 +02:00
bnnm
bf0d46a476 Rename decode_SASSC to lowercase for consistency 2018-09-02 21:11:15 +02:00
bnnm
9c0db7cae3 Improve HCA/clHCA key detection
- Only test keys when file is encrypted
- Add clHCA_TestBlock to test a frame with the current key
- Move some key detection code to hca_decoder.c and simplify hca.c
detection
- Decrease number of test frames due to increased accuracy of
clHCA_TestBlock
2018-09-02 16:00:58 +02:00
bnnm
43764d6c8d Fix HCA num samples/looping [Binary Domain (PC), Octopath Traveller]
Decoder has been modified a bit so it's easier to feed an arbitrary
number of discard samples (or at least, easier for me to understand),
since encoder delay can be >1024 (frame size) and would make some calcs
go all wobbly
2018-08-29 23:42:47 +02:00
bnnm
411fa498bb Clean HCA meta/decoder for future changes 2018-08-29 20:05:31 +02:00
bnnm
d94485e89e Minor decode_vgmstream cleanup 2018-08-26 17:07:33 +02:00
bnnm
4ee39206c3 Fix Lunar 2 SCD loops/sample rate/stereo and PCM8 cleanup 2018-08-26 16:36:08 +02:00
bnnm
3765831dbe Remove usage of atrac9_parse_config 2018-08-25 18:03:58 +02:00
bnnm
9e54efe6d8 Remove FFMPEG_EA_XMA as it's now done with custom IO + layers 2018-08-25 13:22:57 +02:00
bnnm
fe3538520b Add ps_find_loop_offsets util to find loop point in PS-ADPCM data 2018-08-21 22:14:55 +02:00
bnnm
d93a4b2c7a Add proper H4M decoding [Resident Evil 0 (GC), Tales of Symphonia (GC)] 2018-08-19 00:38:08 +02:00
bnnm
cab8605959 Add atrac9_parse_config util 2018-08-15 16:42:34 +02:00
bnnm
d22ee3051a Clean FFmpeg skip samples parsing 2018-08-14 16:35:17 +02:00
bnnm
07bb40071a Add FSB CELT decoder [Vessel (PC), Runner2 (PC)]
Corresponding libs will be added later
2018-08-12 00:58:20 +02:00
bnnm
16f2474a50 Add .WV6 IMA [The Fairly OddParents: Breakin' Da Rules (PC)] 2018-08-02 18:22:01 +02:00
bnnm
a4f67bf077 Add Cricket Audio .cks/ckb [Part Time UFO, Mega Man 1-6 (Android)]
Includes Cricket Audio's MSADPCM variation, also cleaned up MSADPCM code
2018-08-02 17:15:09 +02:00
bnnm
61034484ab Add XMD decoder [Silent Hill 4, Castlevania: Curse of Darkness (Xbox) 2018-07-27 17:11:11 +02:00
Christopher Snowhill
637ec27998
Merge pull request #265 from NicknineTheEagle/ea-formats
More EA formats
2018-07-23 19:08:02 -07:00
bnnm
0dc2c81ab9 Handle XA ADPCM in a more standard way
It was decoding one 28-sample subframes and blocked layout handled
frames, doing some voodoo to skip CD sectors.
Now decodes one 28*8-sample frame and blocked layout handles CD sectors.
Decoding is byte-exact vs before.
2018-07-22 23:08:09 +02:00
NicknineTheEagle
04debd021e Merge remote-tracking branch 'origin/master' into ea-formats
# Conflicts:
#	src/meta/ea_schl.c
2018-07-22 05:34:26 +03:00
NicknineTheEagle
d5745c9d6e EAAC tweaks 2018-07-21 23:09:44 +03:00
bnnm
af70e95877 Tweak PS-ADPCM decoding [inFamous (PS3)]
- Code now more verbose, but easier to understand (by me, at least)
- Unify normal and badflags code
- Fix hist1 not being properly clamped, though not noticeable
- Fix inFamous (PS3) which seemingly wasn't using the extended table but
hitting some compiler weirdness? (failed in foobar and worked in test)
- Use int math for PSX-cfg, which should be minimally more accurate
2018-07-21 20:15:07 +02:00
bnnm
d6795b63c3 Add ASF decoder [Croc 2 (PC), Aladdin: Nasira's Revenge (PC)] 2018-07-18 00:52:24 +02:00
bnnm
6f4388045e Add ps_cfg_bytes_to_samples for clarity 2018-04-12 23:21:53 +02:00
bnnm
ad755b85c6 Fix mono/interleave/PCM16 .spsd [Giga Wing 2, Virtua Tennis 2 (Naomi)] 2018-03-28 22:58:25 +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
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
fbd8e94e41 Add Yamaha/NXAP ADPCM decoder 2018-03-24 12:08:16 +01:00
bnnm
49331423e2 Add true multichannel XBOX-IMA 2018-03-23 21:21:44 +01:00
bnnm
79194a0178 Fix some CAFF IMA4 [Endless Fables 2 (iOS), Vectros (iOS)] 2018-03-17 19:57:54 +01:00
bnnm
05dc3df6e0 Simplify mus_acm_codec_data into acm_codec_data 2018-03-16 18:02:17 +01:00
bnnm
ce9a69aad1 Clean ACM init/free/reset 2018-03-16 15:42:01 +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
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
ef4ef28ace Simplify xa_init_get_high_nibble call 2018-01-04 23:59:30 +01:00
bnnm
757e4cde69 Rename init_x_codec_data to init_x for consistency 2018-01-04 23:22:03 +01:00
bnnm
8789c5918e Prepare ATRAC9 decoder hooks (disabled, not usable at the moment) 2017-12-29 00:29:33 +01:00
bnnm
8538aa1a75 Rename at3_decoder.c to at3plus_decoder.c and add init function 2017-12-27 01:02:24 +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
765af1994a Move bitstream reader to coding_utils 2017-12-09 17:06:21 +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
48795333e1 Fix mpeg_bytes_to_samples in newer libmpg123, by saving initial info 2017-12-03 17:24:32 +01:00
bnnm
6072d17f50 Add EA MicroTalk decoder [FIFA 2001 PS2, Ultima IX voices] 2017-12-03 13:44:55 +01:00
bnnm
8363e26b88 Unify IMA/IMA_int with standard IMA decoder + add stereo IMA 2017-11-19 03:32:21 +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
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
4dfbc3cf6a Improve CD-XA detection and RIFF-less support; minor XA code cleanup 2017-11-16 19:47:42 +01:00