MS ADPCM for genh

git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@410 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
This commit is contained in:
halleyscometsw 2008-08-17 23:07:41 +00:00
parent 120b1d89e8
commit 0be920be2d
2 changed files with 7 additions and 1 deletions

View File

@ -89,7 +89,7 @@ File types supported by this version of vgmstream:
- .sng, .asf, .str, .eam (EA/XA ADPCM or PSX ADPCM) - .sng, .asf, .str, .eam (EA/XA ADPCM or PSX ADPCM)
- .cfn (GC DSP ADPCM) - .cfn (GC DSP ADPCM)
- .vpk (PSX ADPCM) - .vpk (PSX ADPCM)
- .genh (PSX ADPCM, IMA ADPCM, GC DTK ADPCM, 8/16 bit PCM, SDX2, MPEG, AICA ADPCM) - .genh (PSX ADPCM, IMA ADPCM, GC DTK ADPCM, 8/16 bit PCM, SDX2, MPEG, AICA ADPCM, MS ADPCM)
- .ogg, .logg (Ogg Vorbis) - .ogg, .logg (Ogg Vorbis)
- .sad (GC DSP ADPCM) - .sad (GC DSP ADPCM)
- .bmdx (PSX ADPCM) - .bmdx (PSX ADPCM)

View File

@ -48,6 +48,7 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) {
/* 8 = MPEG-1 Layer III, possibly also the MPEG-2 and 2.5 extensions */ /* 8 = MPEG-1 Layer III, possibly also the MPEG-2 and 2.5 extensions */
/* 9 = IMA */ /* 9 = IMA */
/* 10 = AICA ADPCM */ /* 10 = AICA ADPCM */
/* 11 = MS ADPCM */
/* ... others to come */ /* ... others to come */
switch (read_32bitLE(0x18,streamFile)) { switch (read_32bitLE(0x18,streamFile)) {
case 0: case 0:
@ -87,6 +88,9 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) {
case 10: case 10:
coding = coding_AICA; coding = coding_AICA;
break; break;
case 11:
coding = coding_MSADPCM;
break;
default: default:
goto fail; goto fail;
} }
@ -133,6 +137,7 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) {
case coding_DVI_IMA: case coding_DVI_IMA:
case coding_IMA: case coding_IMA:
case coding_AICA: case coding_AICA:
case coding_MSADPCM:
vgmstream->interleave_block_size = interleave; vgmstream->interleave_block_size = interleave;
if (channel_count > 1) if (channel_count > 1)
{ {
@ -197,6 +202,7 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) {
} }
break; break;
case coding_XBOX: case coding_XBOX:
case coding_MSADPCM:
/* xbox's "interleave" is a lie, all channels start at same /* xbox's "interleave" is a lie, all channels start at same
* offset */ * offset */
chstreamfile = chstreamfile =