Commit Graph

966 Commits

Author SHA1 Message Date
bnnm
397c6e0e81 Improve average bitrate with layers+segments 2019-02-24 09:51:10 +01:00
bnnm
0725785824 Add some constants 2019-02-23 23:38:53 +01:00
bnnm
fa4fc1f64c Add FFDL Ogg [Final Fantasy Dimensions (Android)] 2019-02-23 23:10:58 +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
d938f60048 Clean loops for readable metadata 2019-02-17 23:53:37 +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
ba0345ceb6 Show loop info even when disabling loops in plugin's config 2019-02-15 23:46:21 +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
493e207c40 Add atomic BAO [Assassin's Creed (PS3/PC)] 2019-02-03 01:47:59 +01:00
bnnm
b81f8a6eed Minor fixes 2019-01-27 23:40:50 +01:00
bnnm
097f7b0285 Fix some SDF [Mr. Bean's Wacky World (Wii)] 2019-01-26 17:04:43 +01:00
bnnm
37df2cb18c Show layers/segments in description 2019-01-20 00:39:32 +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
Christopher Snowhill
c6280d85b3
Merge pull request #352 from NicknineTheEagle/ea-sbr
Ea sbr
2019-01-14 18:04:58 -08:00
NicknineTheEagle
4c118b28b4 EAAC: Added SBR/SBS format from EA Sports games 2019-01-13 21:53:57 +03:00
NicknineTheEagle
b472b6a01f Renamed some parsers for clarity 2019-01-13 05:15:18 +03:00
NicknineTheEagle
2a88b6bc11 EAAC: Added SBR/SBS format 2019-01-13 02:42:54 +03:00
bnnm
7b9d50e62b Add proper .baf [Project Gotham Racing 4 (X360), Geometry Wars (PC)] 2019-01-12 18:01:19 +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
3480e49cd4 Remove sps frostbite parser (use a good extractor instead) 2019-01-05 04:41:36 +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
Christopher Snowhill
515ba9a5eb
Merge pull request #339 from NicknineTheEagle/ea-map-mpf
Ea map mpf
2018-12-28 20:01:12 -08:00
NicknineTheEagle
430ea27f85 EAAC: Added MPF/MUS format 2018-12-27 21:26:04 +03:00
NicknineTheEagle
53b3991ae8 EA SCHl: Added MAP/MUS format 2018-12-27 20:27:03 +03:00
NicknineTheEagle
808188dbcd EA SCHl: Added MPF/MUS format 2018-12-27 20:01:36 +03:00
NicknineTheEagle
39b5480ca6 EA SCHl: Removed IDX/BIG parser 2018-12-27 19:51:01 +03:00
bnnm
e53740f27f Add PCFX for GENH/TXTH [Der Langrisser FX (PC-FX)] 2018-12-27 16:14:59 +01:00
Christopher Snowhill
f4551cda37
Merge pull request #335 from bnnm/vs-mul-hca
vs mul hca
2018-12-23 14:14:52 -08: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
NicknineTheEagle
5626244108 Ubi SB: Full SMx format support 2018-12-23 00:47:24 +03: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
770343b255 Add .nus3audio [Super Smash Bros. Ultimate (Switch)] 2018-12-15 12:37:01 +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
9291e33312 Fix minor compiler warnings 2018-12-08 00:33:07 +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
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
b63fbcf04f Describe stream index always when file has subsongs 2018-11-04 00:37:33 +01:00
bnnm
0e16a309e2 Add 2MSF and clean WMSF [Super Robot Taisen OG: The Moon Dwellers (PS4)] 2018-10-27 23:10:03 +02: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
c99bc4cf4f
Update vgmstream.c
Clean up formatting.
2018-10-09 15:48:24 -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
fc39012e17 Clean Nippon Ichi SPS/NLSD/PPP/DSP 2018-10-07 23:59:42 +02:00
bnnm
80aad4f15a Add/fix XWMA start and num samples 2018-10-07 23:27:31 +02:00
bnnm
1056092bf3 Fix Final Fantasy Tactics A2 IMA decoding 2018-10-04 19:43:37 +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
a273d9d9a2 Fix bitrate for layered/segemented layouts 2018-09-09 19:22:32 +02:00
bnnm
fd7d6f513d Simplify get_vgmstream_average_bitrate a bit
removed get_vgmstream_average_bitrate_channel_streamfile since it
doesn't really matter if codec_data streamfiles are retested multiple
times (just like vgmstream streamfiles are)
2018-09-09 16:28:39 +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
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
00bec4bd70 Extra check when disabling looping 2018-09-06 16:44:42 +02:00
bnnm
f70852095c Tweak minor ACM stuff for opaqueness 2018-09-04 18:37:51 +02:00
bnnm
4652460aff Add extra validation in vgmstream_open_stream 2018-09-04 17:51:34 +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
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
ce6722181a Move csmp to its own file, since it's not very standard either 2018-08-26 18:55:57 +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
92f35029bb Make generic block_update and auto-call in vgmstream_open_stream 2018-08-26 13:46:07 +02:00
bnnm
b02eeeff04 Fix some .SFL looping and SLI cleanup [Hanachirasu (PC)] 2018-08-26 02:26:38 +02:00
bnnm
d8758f0cb5 Fix describe_vgmstream with layered_layout + FFmpeg 2018-08-25 12:22:40 +02:00
bnnm
b17719f69c Rename render_vgmstream_nolayout to _flat for clarity/consistency
But not layout_none to layout_flat, since it's used everywhere
2018-08-24 19:37:02 +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
41281aa4e9 Tweak .snds priority again 2018-08-22 21:16:25 +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
69c791656e Move MIB+MIH to its own meta and fix rare files [Gladius (PS2)] 2018-08-22 20:10: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
58b8b0c8df Fix various .vag issues [Shikigami no Shiro (PS2), Red Star (PS2)]
Also cleanup and loop end was also off by 28 samples in several cases
2018-08-21 22:16:56 +02:00
bnnm
2f0aaaf4fd Fix some compile ifdefs and warnings 2018-08-20 20:05:44 +02:00
bnnm
ca04dbca70 Add old .scd SSCF [Crisis Core FFVII (PSP), Dissidia 012 (PSP)] 2018-08-19 16:42:39 +02:00
bnnm
3b5be9d28a Fix disabling looping with layered layouts 2018-08-19 00:43:06 +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
611e556809 Reject files with incorrect num_streams 2018-08-16 20:05:53 +02:00
bnnm
9c8323122c Improve read/seek performance for blocked layouts 2018-08-15 20:21:55 +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
f4189f2482 Minor debug stuff 2018-08-15 17:36:20 +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
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
492f43a554 Merge branch 'master' of https://github.com/kode54/vgmstream into ck-xa-fsb 2018-08-02 17:15:38 +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
bxaimc
fcc728c8b1 Add Entergram NXA Opus 2018-08-01 01:24:26 -04: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
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
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
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
NicknineTheEagle
0210489f83 Added support for newer EA ABK format 2018-07-22 00:18:12 +03:00
NicknineTheEagle
b6080f6bdc Added EA HDR/STH/DAT format support 2018-07-21 21:58:01 +03:00
NicknineTheEagle
4d10e91c27 Added EA IDX/BIG format support 2018-07-21 21:57:35 +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
NicknineTheEagle
be00f0a988 Added EA HDR/DAT format support 2018-07-18 19:32:33 +03:00
NicknineTheEagle
51146cd612 Merge remote-tracking branch 'origin/master' into patch-1 2018-07-18 05:18:35 +03:00
bnnm
d6795b63c3 Add ASF decoder [Croc 2 (PC), Aladdin: Nasira's Revenge (PC)] 2018-07-18 00:52:24 +02:00
NicknineTheEagle
5d6b603055 Added EA ABK header support 2018-07-18 00:14:28 +03:00
bxaimc
69c2e9f07f Add Falcom NLSD Opus (Ys VIII [Switch]) 2018-07-15 03:49:33 -04:00
bxaimc
5b3a001082 Add Bandai Namco Opus found in NUS3Banks (Taiko no Tatsujin and future games) 2018-07-15 02:37:15 -04:00
bnnm
12233dd0bb Remove ps2_adsc as it's handled in ps2_ads now 2018-06-17 01:12:53 +02:00
bnnm
ae3307e6f0 Redo ADS to fix various issues
- Fix minor samples bugs
- Fix ADSC variation [Kenka Bancho 2, Shunjuku no Okami]
- Fix misc loops [Culdcept, Katakamuna, Super Galdelic Hour]
- Fix Capcom loops [MM X7, BOF5, Clock Tower 3]
- Fix cavia loops [Drakengard 1/2, GITS: Stand Alone Complex]
- Fix Angel Studios videos [Red Read Revolver, Spy Hunter 2]
- Fix misdetected files [Gran Turismo 2000 videos]
2018-06-17 01:08:52 +02:00
bnnm
9d86c42ea4 Add .H4M videos (wip) 2018-06-03 13:08:41 +02:00
bxaimc
94a9cf1f7f Add SADF DSP variant from Xenoblade Chronicles 2 (Switch) 2018-05-19 16:05:25 -04:00
bnnm
92419c2143 Add tri-Ace .aac Vita [Judas Code (Vita)] 2018-05-12 13:53:58 +02:00
bnnm
da930bc3c9 Add .opus variation [Fast RMX (Switch)] 2018-05-05 23:01:49 +02: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
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
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
84b1b31608 Add .sps in Frostbite(?) containers [Need For Speed Rivals (PS4)] 2018-04-20 00:22:40 +02:00
bnnm
3d2f7e0de2 Clean NWA meta
To open external files it was using get_realname, which only was
actually implemented in Audacious, but Audacious can use get_name to
open external files just fine anyway (for any path, encoding, etc)
2018-04-19 22:44:05 +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
b2766bf137 Add .msb+msh sfx [EyeToy Play (PS2), Ace Combat 2 (PS2)] 2018-04-07 13:35:33 +02:00
bnnm
254f980a50 Improve layered layout bitrate calculation 2018-04-07 11:44:29 +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
9db9ae563a Add .pdt subsongs [Cubic Lode Runner (GC), Muscle Champion (GC)] 2018-04-01 02:15:10 +02:00
bnnm
effe65c934 Tweak PDT header (cleanup) 2018-03-31 20:42:02 +02:00
bnnm
f2aaccc9fb Add .awc XMA [Red Dead Redemption (XMA)] 2018-03-31 20:11:21 +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
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