Commit Graph

45 Commits

Author SHA1 Message Date
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
halleyscometsw
dd3ed4d0ef fix mpeg loop (I think) and disable gapless playback in mpg123 so it doesn't throw out samples
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@300 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-07-10 14:37:09 +00:00
halleyscometsw
97ebe328c8 support for mpeg audio in genh
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@292 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-07-06 15:33:38 +00:00
halleyscometsw
cbc4a75925 add DVI as an AIFF-C and GENH coding
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@272 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-07-02 01:41:20 +00:00
halleyscometsw
2e5b731833 add sdx2 as genh codec #6
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@267 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-07-01 16:10:18 +00:00
halleyscometsw
b2e33edb5b add 8bit pcm genh support
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@264 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-07-01 03:19:02 +00:00
halleyscometsw
a5e93b1fb7 genh pcm interleave fix
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@250 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-06-18 10:40:35 +00:00
halleyscometsw
4823b00e4b pcm genh
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@249 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-06-17 23:32:24 +00:00
halleyscometsw
20f30fcd73 doh, wrong var
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@224 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-06-13 23:01:12 +00:00
halleyscometsw
933053a1bb fix a few genh goofs
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@222 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-06-12 23:50:45 +00:00
halleyscometsw
268f485fa7 genh: fix psx stereo, add gc adp/dtk, generally rewrite the format-specific bits
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@221 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-06-12 23:33:07 +00:00
halleyscometsw
6524994732 Add xbox ima genh support.
Also fix xbox ima decoder, it was wrong if the decode didn't always start at the block start. Note that this and the nds ima decoder both rely on being run through the file linearly.
I wasn't able to test this on mono wavm or xwav yet, but I think it ought to work.


git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@217 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
2008-06-10 01:20:54 +00:00