Commit Graph

61 Commits

Author SHA1 Message Date
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
manakoAT
edd350f863 updated .filp
added xbox to .xwb
added ps2 adpcm (bad flags) to .genh


git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@523 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-12-18 19:04:35 +00:00
manakoAT
48d1092d51 .smp (Wii) added
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@501 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-12-08 17:36:44 +00:00
manakoAT
a41c341a18 fsb updated (fsb4)
nds strm fixed
genh dsp interleave types added

git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@489 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-11-24 18:27:28 +00:00
manakoAT
3986a97a5f dsp interleave in genh fixed
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@482 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-11-19 20:32:56 +00:00
fastelbja
1b109fbbaa adding interleave to dsp
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@478 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-11-17 19:11:23 +00:00
fastelbja
e67a69da29 correct genh
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@477 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-11-17 18:45:09 +00:00
manakoAT
29819a79d4 genh dsp added
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@476 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-11-17 18:28:14 +00:00
halleyscometsw
52624af78d oops, made then unmade the fix (genh MS ADPCM) before committing
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@411 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-08-17 23:21:12 +00:00
halleyscometsw
0be920be2d MS ADPCM for genh
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@410 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-08-17 23:07:41 +00:00
halleyscometsw
120b1d89e8 AICA for GENH
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@409 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-08-15 02:21:19 +00:00
fastelbja
a32c10afca added meta ims from matrix
convert coding_xbox from interleave to none

git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@403 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-08-10 20:08:03 +00:00
halleyscometsw
78a975e081 add type 9 genh, IMA
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@333 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-07-18 05:25:05 +00:00
halleyscometsw
1eba859222 some naming changes and such to make hcs happy, hopefully didn't break anything
changed _noninterleaved functions to _int and changed related descriptions appropriately
added an _int version of SDX2 and reverted to pre-322 behavior for normal deocder
made the various get_high_nibble globals all be the same vgmstream->get_high_nibble for thread safety and code consolidation (this required some changes to make decode functions take VGMSTREAM rather than VGMSTREAMCHANNEL)


git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@323 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-07-14 20:42:49 +00:00