Redone FSB1-4: improved XMA/MPEG, bugs, looping

Now parses FMOD's flags correctly and should work for all versions.
There are still some problems with IMA ADPCM which also happened before.
This commit is contained in:
bnnm 2016-12-29 14:06:57 +01:00
parent c042878a1b
commit 6c82a508ef
4 changed files with 358 additions and 796 deletions

File diff suppressed because it is too large Load Diff

View File

@ -182,18 +182,12 @@ VGMSTREAM * init_vgmstream_aus(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_rws(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_fsb1(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_fsb3(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_fsb4(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_fsb(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_fsb4_wav(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_fsb5(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_fsb_mpeg(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_rwx(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_xwb(STREAMFILE * streamFile);

View File

@ -92,10 +92,7 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = {
init_vgmstream_hgc1,
init_vgmstream_aus,
init_vgmstream_rws,
init_vgmstream_fsb1,
// init_vgmstream_fsb2,
init_vgmstream_fsb3,
init_vgmstream_fsb4,
init_vgmstream_fsb,
init_vgmstream_fsb4_wav,
init_vgmstream_fsb5,
init_vgmstream_rwx,
@ -300,7 +297,6 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = {
init_vgmstream_ngc_nst_dsp,
init_vgmstream_baf,
init_vgmstream_ps3_msf,
init_vgmstream_fsb_mpeg,
init_vgmstream_nub_vag,
init_vgmstream_ps3_past,
init_vgmstream_ps3_sgdx,
@ -2620,18 +2616,15 @@ void describe_vgmstream(VGMSTREAM * vgmstream, char * desc, int length) {
case meta_FSB1:
snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB1) Header");
break;
case meta_FSB3_0:
snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB3.0) Header");
case meta_FSB2:
snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB2) Header");
break;
case meta_FSB3_1:
snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB3.1) Header");
case meta_FSB3:
snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB3) Header");
break;
case meta_FSB4:
snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB4) Header");
break;
case meta_FSB4_WAV:
snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB4) with additional 'WAV' Header");
break;
case meta_FSB5:
snprintf(temp,TEMPSIZE,"FMOD Sample Bank (FSB5) Header");
break;
@ -3170,9 +3163,6 @@ void describe_vgmstream(VGMSTREAM * vgmstream, char * desc, int length) {
break;
case meta_PS3_MSF:
snprintf(temp,TEMPSIZE,"PS3 MSF header");
break;
case meta_FSB_MPEG:
snprintf(temp,TEMPSIZE,"FSB MPEG header");
break;
case meta_NUB_VAG:
snprintf(temp,TEMPSIZE,"VAG (NUB) header");

View File

@ -328,11 +328,9 @@ typedef enum {
meta_AUS, /* Variuos Capcom Games */
meta_RWS, /* Variuos Konami Games */
meta_FSB1, /* FMOD Sample Bank, version 1 */
meta_FSB3_0, /* FMOD Sample Bank, version 3.0 */
meta_FSB3_1, /* FMOD Sample Bank, version 3.1 */
meta_FSB2, /* FMOD Sample Bank, version 2 */
meta_FSB3, /* FMOD Sample Bank, version 3.0/3.1 */
meta_FSB4, /* FMOD Sample Bank, version 4 */
meta_FSB_MPEG, /* Just Test */
meta_FSB4_WAV, /* FMOD Sample Bank, version 4 with "WAV" Header */
meta_FSB5, /* FMOD Sample Bank, version 5 */
meta_RWX, /* Air Force Delta Storm (XBOX) */
meta_XWB, /* King of Fighters (XBOX) */