Commit Graph

74 Commits

Author SHA1 Message Date
bnnm
9b90a7a260 cleanup: minor codec renames 2024-06-11 00:36:54 +02:00
bnnm
af71e611c1 cleanup: riff helpers 2023-01-21 22:08:46 +01:00
bnnm
3c7770bbfb cleanup: add xma2 raw init function 2023-01-21 13:51:27 +01:00
bnnm
41bad49872 Fix hang on full loops with xma1 formats
- happens with FFmpeg n5.1.2
2023-01-19 00:08:33 +01:00
bnnm
039541f881 ffmpeg: internals cleanup 2021-07-23 18:55:03 +02:00
bnnm
4cdc039200 Fix XBOX-IMA GENH with bad interleave 2020-04-15 18:18:57 +02:00
bnnm
c4b259f5d8 Clean MSADPCM frame size and add extra check 2019-10-20 16:35:52 +02:00
bnnm
97c090886f Tweak Yamaha/AICA codec naming 2019-09-21 19:15:01 +02:00
bnnm
84038b0fea Improve raw ATRAC3 decoding accuracy and cleanup 2019-08-26 22:58:43 +02:00
bnnm
023e5b8d99 Fix dual TXTH/GENH Yamaha ADPCM + add .P04 extension 2019-07-07 15:26:43 +02:00
bnnm
2b4570395a Add AAC codec for TXTH and bytes-to-samples 2019-03-09 22:57:21 +01:00
bnnm
8850ddacff Rename internal coding AICA to YAMAHA
AICA is simply Dreamcast's sound chip that uses standard Yamaha ADPCM,
codec used by Yamaha in many other places well before the Dreamcast
2019-03-03 02:30:52 +01:00
bnnm
e5480f4bb0 Fix minor shadowing issues 2019-02-23 03:15:49 +01:00
bnnm
29bed4b1e0 Add TXTH/GENH interleave_last option 2019-01-20 00:17:06 +01:00
bnnm
093fa28a2f Add OKI16 TXTH/GENH decoder [Sweet Legacy (PS2), Hooligan (PS2)] 2019-01-12 13:02:08 +01:00
NicknineTheEagle
5190b362a9 Added 4-bit PCM decoder 2019-01-09 22:30:15 +03:00
bnnm
e53740f27f Add PCFX for GENH/TXTH [Der Langrisser FX (PC-FX)] 2018-12-27 16:14:59 +01:00
bnnm
0706aeffbf Fix some GENH with small header_size and allow N channel DSPs
- "DSP coef right offset" becomes "DSP coef spacing" when channels is
more than 2
2018-12-01 02:40:28 +01:00
bnnm
467ca19450 Fix XMA gapless/looping/samples
fixes: standard, wem, xwc, xwb, xnb, xwx, rak, pk, txth, genh, seg, rsd, past, p3d, nub-xma, gtd, gsp, fsb, eaac, cxs, awc, aac
2018-11-18 17:01:31 +01:00
bnnm
9d7d536da7 Add interleaved 2ch XBOX-IMA to TXTH/GENH 2018-09-04 17:11:08 +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
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
e9b2751064 Add XBOX mono/int to GENH/TXTH (as codec_mode 1) [Manhunt (Xbox)] 2018-03-03 01:09:44 +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
757e4cde69 Rename init_x_codec_data to init_x for consistency 2018-01-04 23:22:03 +01:00
bnnm
8f9b22d46f Change layout_interleave_byte with coding_NGC_DSP_subint
Meant to simplify layouts
2017-12-06 21:04:34 +01:00
bnnm
d0be7e0c36 Minor tweaks/comments/renames/etc 2017-11-25 00:43:18 +01:00
bnnm
c17db6f30e Add GENH AC3 and update code so it mirrors TXTH for easier sharing 2017-11-10 19:37:07 +01:00
bnnm
6308818b77 Simplify MPEG coding/layouts to allow blocked layouts and future changes 2017-07-29 13:05:23 +02:00
bnnm
cac3af887a Allow mono MSADPCM; validate interleave for endless loops in some codecs 2017-04-29 20:28:14 +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
5260314bc7 Minor check 2017-03-24 16:39:57 +01:00
bnnm
ce591bbe12 Added new GENH codecs: ATRAC3/plus, XMA1/2, FFMPEG
Also some extra fields: total samples, skip samples, data size,
atrac3/xma modes
2017-03-09 19:33:31 +01:00
bnnm
098946057e Do some GENH cleanup before further additions
No changes in logic (tested for all types):
- move codec types to enum for later reference
- move NGC_DTK validation and AICA/DSP adpcm init to setup block
- use vgmstream_open_stream instead of manual stream opening.
  There were 2 cases, interleave (different offset per channel, multiple
streamfiles) and none (same offsets per channel, one streamfile), now
handled by it.
2017-03-09 16:53:34 +01:00
bnnm
7f98f5b4f6 Remove MPEG sample rate check and channel/sample rate pointer updates
Rarely used, frame sample rate/channels are now exposed, and FFmpeg will
end up playing any MP3 anyway.
Encoders may modify sample rate to adjust looping to frame boundaries,
too.
2017-02-19 21:16:09 +01:00
bnnm
a7982bc743 Remove MPEG internals 2017-02-17 16:48:29 +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
halleyscometsw
1854d42e97 Extend GENH to support little-endian "Gamecube" DSP ADPCM coefficients, for some 3DS titles.
This involves a reinterpretation of byte 0x30 (coef type). Formerly this byte took on only two values, to indicate how the ADPCM coefficients (aka codebook) were stored:
0 - normal coefs: all 16 coefs interleaved into one array, offset given at 0x24 for left, 0x28 for right
1 - split coefs: 8 coefs in the main array, additional offset to 2nd array given at 0x34 for left, 0x38 for right

Now I am considering this to be indicated only by bit 0 of the coef type. Bit 1 is taking on an additional interpretation, if it is set, we consider the coefficients to be little endian rather than the normal big endian.

This should maintain backwards compatibility with old GENH files, which should have only used the value 0 or 1.

Thus, in effect we have:
0: normal, big endian
1: split, big endian
2: normal, little endian
3: split, little endian

I don't know of any situation in which 3 would be used (yet), but I'm sure devs will continue to surprise me.
2014-06-26 20:53:49 -07:00
Chris Moeller
142cfc971d Raised path length limit to 32767 characters, controlled by a global enum definition 2013-05-26 20:55:50 -07:00
manakoat
9d25a6bbb4 Add Apple Quicktime 4-bit IMA ADPCM to GENH, ID 17 (0x11)
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@960 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2011-06-20 16:40:32 +00:00
halleyscometsw
7b78a5262d MPEG fixes from kode54, get the right freq and srate even with MPG123_NEED_MORE, avoid locking up with too little data
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@911 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2011-01-19 13:54:59 +00:00
halleyscometsw
5ddbf90379 fix screwed up mpeg stuff
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@838 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2010-09-11 18:28:43 +00:00
halleyscometsw
617ee5cdff make MPEG detection accessible to anyone, add MPEG support for XVAG (though it seems that the sample count is wrong)
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@831 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2010-09-10 21:49:56 +00:00
halleyscometsw
5a7e89be6a 8-bit unsigned pcm with no interleave assumption
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@639 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2009-04-28 16:52:49 +00:00
halleyscometsw
a3804d64f4 typo (Bad hcs! Compile before committing!)
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@636 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2009-04-21 22:35:14 +00:00
halleyscometsw
db35fe501d fix yamaha "aica" adpcm for GENH
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@635 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2009-04-21 22:32:01 +00:00
halleyscometsw
8963ee3eed Microsoft IMA for riff and genh
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@590 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2009-03-09 12:48:53 +00:00
manakoAT
4b578db302 fixed capcom hack in .genh
added .sng (WII)

git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@532 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-12-24 00:00:10 +00:00
manakoAT
bbe32bdad6 some changes in .genh
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@531 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-12-23 18:01:18 +00:00