diff --git a/readme.txt b/readme.txt index bee8d2d8..bfa41adb 100644 --- a/readme.txt +++ b/readme.txt @@ -89,7 +89,7 @@ File types supported by this version of vgmstream: - .sng, .asf, .str, .eam (EA/XA ADPCM or PSX ADPCM) - .cfn (GC DSP ADPCM) - .vpk (PSX ADPCM) -- .genh (PSX ADPCM, XBOX IMA ADPCM, GC DTK ADPCM, 8/16 bit PCM, SDX2, DVI, MPEG) +- .genh (PSX ADPCM, IMA ADPCM, GC DTK ADPCM, 8/16 bit PCM, SDX2, MPEG, AICA ADPCM) - .ogg, .logg (Ogg Vorbis) - .sad (GC DSP ADPCM) - .bmdx (PSX ADPCM) @@ -148,6 +148,7 @@ File types supported by this version of vgmstream: - .stma (DVI IMA ADPCM) - .matx (XBOX IMA ADPCM) - .de2 (MS ADPCM) +- .str (AICA ADPCM) Enjoy! -hcs diff --git a/src/meta/genh.c b/src/meta/genh.c index 3b2d48d6..75587e64 100644 --- a/src/meta/genh.c +++ b/src/meta/genh.c @@ -47,6 +47,7 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) { /* 7 = DVI IMA */ /* 8 = MPEG-1 Layer III, possibly also the MPEG-2 and 2.5 extensions */ /* 9 = IMA */ + /* 10 = AICA ADPCM */ /* ... others to come */ switch (read_32bitLE(0x18,streamFile)) { case 0: @@ -83,6 +84,9 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) { case 9: coding = coding_IMA; break; + case 10: + coding = coding_AICA; + break; default: goto fail; } @@ -128,6 +132,7 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) { case coding_PSX: case coding_DVI_IMA: case coding_IMA: + case coding_AICA: vgmstream->interleave_block_size = interleave; if (channel_count > 1) { @@ -173,6 +178,7 @@ VGMSTREAM * init_vgmstream_genh(STREAMFILE *streamFile) { case coding_DVI_IMA: case coding_IMA: case coding_PCM8: + case coding_AICA: if (vgmstream->layout_type == layout_interleave) { if (interleave >= 512) { chstreamfile =