Commit Graph

769 Commits

Author SHA1 Message Date
bnnm
051cad9462 Minor shadowing fixes and cleanup 2019-03-02 19:23:37 +01:00
bnnm
d9296c6693 Add multichannel layout for OGG/MP4/WEM/FFmpeg and use in foobar 2019-03-02 15:57:41 +01:00
bnnm
c99034cff8 Update mixing code 2019-02-25 00:38:35 +01:00
bnnm
40c23dc3f5 Add Vicious Cycle .mus [Dinotopia (Xbox/GC)] 2019-02-24 11:34:09 +01:00
bnnm
0725785824 Add some constants 2019-02-23 23:38:53 +01:00
bnnm
e5ddc9337a Remove unused AIX layout
This layout handled ADX segments+layers at the same time. While there is
some merit in that, it's more flexible and easier to maintain to mix
layer and segment layouts.

Performance and memory used is slightly worse though (impact should be
minimal)
2019-02-23 16:17:29 +01:00
bnnm
111c4dd97c Change some sample to sample_t 2019-02-23 02:54:23 +01:00
bnnm
dd31d1af33 Add Blitz IMA .str+wav [Zapper (PC)] 2019-02-23 00:12:58 +01:00
bnnm
4b3ec51667 Add .ds2 [Star Wars Bounty Hunter (GC)] 2019-02-17 23:17:14 +01:00
bnnm
fa4e56a6b1 Prepare parts for mixing 2019-02-17 20:28:27 +01:00
bnnm
98587ec8e7 Fix memory corruption when forcing loops and clean internals 2019-02-15 22:28:20 +01:00
bnnm
4c038cb0ea Add Ocean .DSF, .208 and DSA decoder [Last Rites (PC)] 2019-02-10 01:36:05 +01:00
bnnm
011fe56614 Fix EALayer3 11ch, V1b PCM, V2S loops [Army of Two 3 (PS3), NFS:W (PS3)] 2019-02-09 23:42:59 +01:00
bnnm
097f7b0285 Fix some SDF [Mr. Bean's Wacky World (Wii)] 2019-01-26 17:04:43 +01:00
bnnm
8f1ec86bda Fix UE4 MSADPCM .adpcm [Heroes of Ark (iOS), Angels in the Sky (iOS)] 2019-01-19 23:08:26 +01:00
bnnm
093fa28a2f Add OKI16 TXTH/GENH decoder [Sweet Legacy (PS2), Hooligan (PS2)] 2019-01-12 13:02:08 +01:00
bnnm
d56bca12f8 Remove ps2_khv.c as it's now parsed in vag.c 2019-01-12 02:55:24 +01:00
bnnm
5d610be086 Add .gin and EA-XAS v0 decoder [Need for Speed Most Wanted] 2019-01-12 02:26:38 +01:00
NicknineTheEagle
5190b362a9 Added 4-bit PCM decoder 2019-01-09 22:30:15 +03:00
bnnm
78099c096b Fix .vsv/psh decoding and mono files [Dawn of Mana (PS2)] 2019-01-05 20:20:08 +01:00
bnnm
be9399b370 Redo Infernal Engine .smp [Ghostbusters (multi)] 2019-01-05 04:36:20 +01:00
bnnm
dd97d29f80 Add EA EACS banks [Need for Speed (PC)] 2019-01-02 17:17:14 +01:00
bnnm
e53740f27f Add PCFX for GENH/TXTH [Der Langrisser FX (PC-FX)] 2018-12-27 16:14:59 +01:00
bnnm
aa970bbdef Adjust RedSpark case 2018-12-23 13:39:50 +01:00
bnnm
9245dc8a15 Add iNiS .IMC [Gitaroo Man (PS2)] 2018-12-23 13:38:18 +01:00
bnnm
c74da3884d Clean .vs naming 2018-12-22 20:09:01 +01:00
bnnm
47ab52f4f2 Fix various PS2/GC/Wii/PC/Xbox/PSP .mul/emff [TR Legend, TR Underworld] 2018-12-22 19:47:17 +01:00
bnnm
34d4500e54 Add .sps EAMP3 [Need for Speed (PS4)] 2018-12-15 11:17:47 +01:00
bnnm
12edc39bff Add looping Ogg Opus [Monster Boy and the Cursed Kingdom (Switch)] 2018-12-09 02:00:47 +01:00
bnnm
13a7a5382d Add .opusx/adpcmx [Touhou Genso Wanderer -Reloaded- (Switch)] 2018-12-09 01:23:40 +01:00
bnnm
30481a5dcc Clean XA names 2018-12-08 02:50:54 +01:00
bnnm
d31e11b6f9 Fix .fag num_samples/subsongs [Jackie Chan Stuntmaster (PS1)] 2018-12-08 02:45:19 +01:00
bnnm
60945577c0 Add Vicarious Visions .zss/zsm/ens/enm [X-Men Legends II (multi)] 2018-12-08 00:10:44 +01:00
bnnm
42bc5de623 Add From Software .xps/.xps+dat [Metal Wolf Chaos (Xbox), Otogi (Xbox)] 2018-12-01 14:01:52 +01:00
bnnm
c87aff04f9 Add opus+sli looping [Sabbat of the Witch (PC)] 2018-12-01 02:47:57 +01:00
bnnm
56ced57ece Add TamaSoft .msf [Abandoner: The Severed Dreams (PC)] 2018-11-17 17:52:07 +01:00
bnnm
ab90e08484 Add ADPCM .xpcm [Eternal Fantasy (PC)] 2018-11-10 00:09:03 +01:00
bnnm
9b7161a207 Add PCM16LE .xpcm [Eternal Fantasy (PC)] 2018-11-09 22:57:35 +01:00
bnnm
b56f9e9acd Add NWAV [Fuurai no Shiren Gaiden: Onnakenshi Asuka Kenzan! (PC)] 2018-11-09 21:23:31 +01:00
bnnm
ec63b8ff38 Tweak .svs sample rate 2018-11-01 16:39:53 +01:00
bnnm
1380faf5bb Add PC/X360/Wii .seg and fixes [The Spiderwick Chronicles (multi)] 2018-11-01 16:34:53 +01:00
bnnm
33aa532c34 Add blocked VS [Final Fantasy X (PS2)] 2018-10-20 15:30:46 +02:00
bnnm
e49a688559 Add .xopus decoding [Angry Birds Transformers (Android)] 2018-10-13 21:01:58 +02:00
Christopher Snowhill
3d9ae0932c
Update vgmstream.h
Clean up formatting.
2018-10-09 15:49:04 -07:00
style_of_2001
107f9a658e Add konami / sony VA3 support (fix crash in cli :P) 2018-10-09 09:53:10 -05:00
bnnm
80aad4f15a Add/fix XWMA start and num samples 2018-10-07 23:27:31 +02:00
bnnm
f59faa0c07 Fix some .lse [Operation Abyss (PC), Operation Babel (PC)] 2018-10-04 20:43:23 +02:00
bnnm
1056092bf3 Fix Final Fantasy Tactics A2 IMA decoding 2018-10-04 19:43:37 +02:00
bnnm
2a5516fe7c Restore G719 max frame size as 2560 bits (0x140) is decoder max 2018-09-27 23:56:44 +02:00
bnnm
c0d484a715 Add .lse Ogg [Labyrinth of Refrain (PC)] 2018-09-27 23:41:26 +02:00
bnnm
d717f21189 Add UE4OPUS decoder [Fortnite (PC), ARK: Survival Evolved (PC)] 2018-09-23 04:26:11 +02:00
bnnm
f29012edb7 Add Capcom .adpcm [Resident Evil: Revelations (Switch)] 2018-09-22 17:45:02 +02:00
bnnm
0e4ee632b9 Remove standard G.722.1 (Siren7), since no game uses it
Siren14 wasn't affected by this
2018-09-22 16:32:21 +02:00
bnnm
37d7fe83c4 Move NXA Opus to its own file, since it's not very standard 2018-09-10 02:24:59 +02:00
bnnm
804fceb5e7 Remove custom FFmpeg, as custom IO streamfile can be used instead 2018-09-10 02:19:34 +02:00
bnnm
74536e0933 Swap custom FFmpeg OPUS for custom streamfile IO 2018-09-10 01:23:34 +02:00
bnnm
6bee2a6209 Add .utk [The Sims Online (PC), SimCity 4 (PC)] 2018-09-09 15:29:34 +02:00
bnnm
2b7cd654b2 Allow arbitrary frame sizes for G719 and cleanup 2018-09-09 12:24:08 +02:00
bnnm
47b5a189cf Clean EA-MT code 2018-09-08 23:36:31 +02:00
bnnm
417cc59277 Fix EA-MT looping [SSX3 (PS2)] 2018-09-08 19:22:56 +02:00
bnnm
1810d3ced6 Add TXTP commands for looping/time (#i #E #lN #fN #dN #F)
- #i (ignore loop)
- #E (force end-to-end loop)
- #lN (force N loops)
- #fN (fade time)
- #dN (fade delay)
- #F (don't fade after N loops and play song end)
2018-09-07 19:34:31 +02:00
bnnm
19f69e14b7 Add ALP IMA decoder [Lego Racers (PC)] 2018-09-06 20:25:04 +02:00
bnnm
f519b1ad70 Add DERF DPCM decoder [Stupid Invaders (PC)] 2018-09-06 17:45:34 +02:00
bnnm
59b303d753 Update libacm to 1.2 and add .WAVC sfx 2018-09-04 22:42:21 +02:00
bnnm
f70852095c Tweak minor ACM stuff for opaqueness 2018-09-04 18:37:51 +02:00
bnnm
3113342a71 Minor tweaks 2018-09-02 21:06:15 +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
d5a11d58e8 Add various metas
- DSP: itl, vag (PPP)
- PS2: int (A2M), ahv, msv, sdf, svg, vis
- PC: .aif (Asobo), ao, apc, wv2
- Xbox: xau (Konami)
2018-08-28 18:47:56 +02:00
bnnm
cc537270c1 Add RFRM .csmp and cleanup [Donkey Kong Country Tropical Freeze (Wii U)] 2018-08-26 19:16:24 +02:00
bnnm
4ee39206c3 Fix Lunar 2 SCD loops/sample rate/stereo and PCM8 cleanup 2018-08-26 16:36:08 +02:00
bnnm
ee03726bbc Find loop_segment automatically in segmented_layout + remove from metas 2018-08-26 00:59:31 +02:00
bnnm
3130eebf0c Minor layout cleanup + doc 2018-08-25 20:46:54 +02:00
bnnm
a734e9c5cb Remove custom ATRAC9 in favor of custom IO
Formats using custom layouts tend to be weird enough that it's a pain to
add support directly in the decoder.
Instead should use custom layouts and I/O streamfiles that, though a bit
wordy and unwieldy at the moment, are a lot more flexible.
2018-08-25 17:48:01 +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
6c553882f3 Rename codec_version to codec_config to clarify 2018-08-23 18:07:45 +02:00
bnnm
ad4478ac2c Set dual stereo as a meta flag rather than a static list
Mainly for cleanup/style
2018-08-23 18:00:34 +02:00
bnnm
dcbc7e5b9b Lower parse priority of raw metas so TXTH has a chance to go first 2018-08-22 20:39:31 +02:00
bnnm
925916690a Parse PS3 .bnk properly and remove ps3_klbs.c [L@ve Once (PS3)] 2018-08-22 19:26:19 +02:00
bnnm
75fb12eed4 Fix PS2 VGS/ASS/VPK/etc samples, glitches and cleanup 2018-08-22 19:19:31 +02:00
bnnm
cae82e9074 Clean builds and enable VGM_USE_VORBIS/MPEG manually for consistency 2018-08-20 20:08:24 +02:00
bnnm
2e6f6c8176 Remove unnecessary FFmpeg ifdef 2018-08-19 19:09:37 +02:00
bnnm
ca04dbca70 Add old .scd SSCF [Crisis Core FFVII (PSP), Dissidia 012 (PSP)] 2018-08-19 16:42:39 +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
9e06652264 Redo .nus3bank to parse as a bank with subsongs
Also removes hacky code from idsp, since it's now on its own file
2018-08-15 19:59:10 +02:00
bnnm
79cad960ae Add Sony .bnk [Puyo Puyo Tetris (PS4), NekoBuro: Cats Block (Vita)] 2018-08-15 17:34:17 +02:00
bnnm
b36646aacf Add .hd3+bd3 [Elevator Action Deluxe (PS3), R-Type Dimensions (PS3)] 2018-08-14 00:28:15 +02:00
bnnm
36c6168c27 Add Firebrand Games .wavebatch [NFS: The Run (3DS), F&F: Showdown (3DS)] 2018-08-13 23:03:39 +02:00
bnnm
5720278d2d IDSP cleanup 2018-08-12 18:04:19 +02:00
bnnm
efb01a921c Add .wua IDSP and cleanup [Lego Dimensions (Wii U)] 2018-08-12 17:13:51 +02:00
bnnm
0502a6a74f Fix VPK num_samples and cleanup [God of War (PS2), NBA 08 (PS3)] 2018-08-12 02:19: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
790525f990 Redo Blitz Games STR+WAV [Zapper (GC), Tak (PS2)]
Also removes 3 metas that parsed Blitz stuff
2018-08-04 21:02:10 +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
bnnm
fd7ecbd393 Add AIFF with XA ADPCM [Crusader: No Remorse (SAT), Road Rash (3DO)] 2018-07-22 23:13:03 +02: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
bnnm
57b8c6acd3 Add TXTP 'm' channel mapper/swapper
Credit to topher-au for the initial idea/code
2018-07-22 00:46:08 +02:00
bnnm
d6795b63c3 Add ASF decoder [Croc 2 (PC), Aladdin: Nasira's Revenge (PC)] 2018-07-18 00:52:24 +02:00
bnnm
2df613d893 Fix various music .ivaud [GTA IV (PC)] 2018-07-06 21:04:06 +02:00
bnnm
dbb5a4458b Add .mus Ogg [Redux - Dark Matters (PC)] 2018-06-30 13:43:12 +02:00
bnnm
12233dd0bb Remove ps2_adsc as it's handled in ps2_ads now 2018-06-17 01:12:53 +02:00
bnnm
9d86c42ea4 Add .H4M videos (wip) 2018-06-03 13:08:41 +02:00
Christopher Snowhill
b341f8d6b6
Merge branch 'master' into master 2018-05-20 16:22:31 -07:00
bxaimc
05aca5ceeb Formatting some things 2018-05-19 16:17:18 -04:00
bxaimc
94a9cf1f7f Add SADF DSP variant from Xenoblade Chronicles 2 (Switch) 2018-05-19 16:05:25 -04:00
bnnm
a57134dc2b Add .gwd Ogg [Adagio Cloudburst (PC)] 2018-05-19 11:37:21 +02:00
bnnm
92419c2143 Add tri-Ace .aac Vita [Judas Code (Vita)] 2018-05-12 13:53:58 +02:00
Christopher Snowhill
35cd14fa04
Merge pull request #220 from bnnm/bao-downmix-etc
BAO, downmix, etc
2018-04-29 17:04:19 -07:00
bnnm
d292531654 Add switch_audio [Gal Gun 2 (Switch)] 2018-04-29 21:04:55 +02:00
bnnm
10e506675b Add (wip) Ubi .pk support [Just Dance (Wii)] 2018-04-29 20:28:27 +02:00
bxaimc
ce2082a8d4 Add .KNS for KTSS meta 2018-04-29 13:24:01 -04:00
bnnm
686d77debc Clean Switch opus meta
Separate header variations since every other dev is going to make their
own, it was getting kind of messy.
2018-04-21 21:52:30 +02:00
bnnm
5229e7385d Clean dsp meta
Use a common function since most parsers did the same thing with minor
config params.

Also add extra validations to Cabela's DSP since it was hijacking other
DSPs.
2018-04-21 02:14:21 +02:00
bnnm
165cb400b1 Add .at9 opus [Penny-Punching Princess (Switch)] 2018-04-20 20:37:19 +02:00
bnnm
befcbbd4fb Add PPST .sng [Parappa the Rapper (PSP)] 2018-04-20 18:27:08 +02:00
bnnm
ab2cecf92d Add encrypted .ogg from Ys VIII (PC) 2018-04-20 17:02:56 +02:00
bnnm
12cba40baf Add .smc+smh [Wangan Midnight (System 246)] 2018-04-15 01:08:27 +02:00
bnnm
56d6cbbf6c Add artificial format TXTP (.txtp)
Used to play separate intro+loop files, mask channels, play subsongs in
single files without having to demux, etc.

Also a channel mask parsing during main render_vgmstream.
2018-04-15 00:48:37 +02:00
bnnm
34522fafee Add .eno Ogg [Metronomicon (PC)] 2018-04-12 22:46:18 +02:00
bnnm
27087edea2 Add .rpgmvo Ogg [RPG Maker MV games] 2018-04-07 19:04:06 +02:00
bnnm
b2766bf137 Add .msb+msh sfx [EyeToy Play (PS2), Ace Combat 2 (PS2)] 2018-04-07 13:35:33 +02:00
bnnm
d4556f3310 Ignore LyN RIFF as it's parsed in its own file now; cleanup 2018-04-07 11:37:44 +02:00
bnnm
41e60f29da Add Ubi LyN (.sns/son/wav) [Adventures of Tintin, From Dust (multi)] 2018-04-07 11:31:43 +02:00
bnnm
8fab88be8f Remove ps2_psw.c as it's now parsed by ubi_jade.c 2018-04-06 20:55:11 +02:00
bnnm
d39e7ec67d Fix Ubi Jade (.wam) [Beyond Good & Evil (PS3), Rayman Rabbids (Wii/PS2)]
Adds X360/PS3/PC support and fixes looping
2018-04-06 20:48:24 +02:00
bnnm
b35f88159c Add .mcadpcm [Skyrim (Switch)] 2018-03-31 13:28:30 +02:00
bnnm
b7da78e68e Add .PCM+.SRE [Viewtiful Joe (PS2)] 2018-03-31 13:10:57 +02:00
bnnm
94572fede5 Use meta_MP4 for MP4 FFmpeg too, so no need to ifdef 2018-03-30 21:37:11 +02:00
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
99888d6517 Merge branch 'master' of https://github.com/kode54/vgmstream into test 2018-03-30 11:02:28 +02:00
bxaimc
d5c9165d07 Merge branch 'master' of git://github.com/kode54/vgmstream 2018-03-29 21:04:09 -04: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
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
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
f132c11764 Add .aac ADPCM [Star Ocean Ananmesis v1, Heaven x Inferno (Mobile)] 2018-03-24 12:17:04 +01:00
bnnm
6a5ef288ff Add NXAP (bad decoding) [Time Crisis 4, Time Crisis Razing Storm (PS3)] 2018-03-24 12:13:40 +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