This commit is contained in:
bnnm 2021-11-18 00:21:29 +01:00
parent 0fd994abb9
commit 240e9c00b0
5 changed files with 15 additions and 13 deletions

View File

@ -1073,7 +1073,7 @@ static const meta_info meta_info_list[] = {
{meta_UBI_JADE, "Ubisoft Jade RIFF header"}, {meta_UBI_JADE, "Ubisoft Jade RIFF header"},
{meta_SEG, "Stormfront SEG header"}, {meta_SEG, "Stormfront SEG header"},
{meta_NDS_STRM_FFTA2, "Final Fantasy Tactics A2 RIFF Header"}, {meta_NDS_STRM_FFTA2, "Final Fantasy Tactics A2 RIFF Header"},
{meta_STR_ASR, "Donkey Kong Jet Race KNON/WII Header"}, {meta_KNON, "Paon KNON header"},
{meta_ZWDSP, "Zack and Wiki custom DSP Header"}, {meta_ZWDSP, "Zack and Wiki custom DSP Header"},
{meta_GCA, "GCA DSP Header"}, {meta_GCA, "GCA DSP Header"},
{meta_SPT_SPD, "SPT+SPD DSP Header"}, {meta_SPT_SPD, "SPT+SPD DSP Header"},
@ -1095,7 +1095,7 @@ static const meta_info meta_info_list[] = {
{meta_RSTM_shrunken, "Nintendo RSTM header, corrupted by Atlus"}, {meta_RSTM_shrunken, "Nintendo RSTM header, corrupted by Atlus"},
{meta_RIFF_WAVE_MWV, "RIFF WAVE header with .mwv flavoring"}, {meta_RIFF_WAVE_MWV, "RIFF WAVE header with .mwv flavoring"},
{meta_FFCC_STR, "Final Fantasy: Crystal Chronicles STR header"}, {meta_FFCC_STR, "Final Fantasy: Crystal Chronicles STR header"},
{meta_SAT_BAKA, "BAKA header from Crypt Killer"}, {meta_SAT_BAKA, "Konami BAKA header"},
{meta_SWAV, "Nintendo SWAV header"}, {meta_SWAV, "Nintendo SWAV header"},
{meta_VSF, "Square-Enix VSF header"}, {meta_VSF, "Square-Enix VSF header"},
{meta_NDS_RRDS, "Ridger Racer DS Header"}, {meta_NDS_RRDS, "Ridger Racer DS Header"},

View File

@ -330,7 +330,7 @@ VGMSTREAM * init_vgmstream_seg(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_nds_strm_ffta2(STREAMFILE * streamFile); VGMSTREAM * init_vgmstream_nds_strm_ffta2(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_str_asr(STREAMFILE * streamFile); VGMSTREAM * init_vgmstream_knon(STREAMFILE * streamFile);
VGMSTREAM * init_vgmstream_zwdsp(STREAMFILE * streamFile); VGMSTREAM * init_vgmstream_zwdsp(STREAMFILE * streamFile);

View File

@ -3,7 +3,7 @@
/* KNON - from Donkey Kong: Barrel Blast (Wii) */ /* KNON - from Donkey Kong: Barrel Blast (Wii) */
VGMSTREAM* init_vgmstream_str_asr(STREAMFILE* sf) { VGMSTREAM* init_vgmstream_knon(STREAMFILE* sf) {
VGMSTREAM* vgmstream = NULL; VGMSTREAM* vgmstream = NULL;
off_t start_offset; off_t start_offset;
int loop_flag, channels; int loop_flag, channels;
@ -34,25 +34,27 @@ VGMSTREAM* init_vgmstream_str_asr(STREAMFILE* sf) {
switch (read_32bitBE(0x20,sf)) { switch (read_32bitBE(0x20,sf)) {
case 0x4B415354: /* "KAST" */ case 0x4B415354: /* "KAST" */
vgmstream->coding_type = coding_NGC_DSP; vgmstream->coding_type = coding_NGC_DSP;
vgmstream->num_samples = (read_32bitBE(0x3C,sf))*14/8/channels; vgmstream->num_samples = dsp_bytes_to_samples(read_32bitBE(0x3C,sf), channels);
vgmstream->loop_start_sample = (read_32bitBE(0x44,sf))*14/8/channels; vgmstream->loop_start_sample = dsp_bytes_to_samples(read_32bitBE(0x44,sf), channels);
vgmstream->loop_end_sample = (read_32bitBE(0x48,sf))*14/8/channels; vgmstream->loop_end_sample = dsp_bytes_to_samples(read_32bitBE(0x48,sf), channels);
vgmstream->interleave_block_size = 0x10; vgmstream->interleave_block_size = 0x10;
dsp_read_coefs_be(vgmstream, sf, 0x8c, 0x60); dsp_read_coefs_be(vgmstream, sf, 0x8c, 0x60);
break; break;
case 0x4B505354: /* "KPST" */ case 0x4B505354: /* "KPST" */
vgmstream->coding_type = coding_PCM16BE; vgmstream->coding_type = coding_PCM16BE;
vgmstream->num_samples = (read_32bitBE(0x3C,sf))/2/channels; vgmstream->num_samples = pcm16_bytes_to_samples(read_32bitBE(0x3C,sf), channels);
vgmstream->loop_start_sample = (read_32bitBE(0x44,sf))/2/channels; vgmstream->loop_start_sample = pcm16_bytes_to_samples(read_32bitBE(0x44,sf), channels);
vgmstream->loop_end_sample = (read_32bitBE(0x48,sf))/2/channels; vgmstream->loop_end_sample = pcm16_bytes_to_samples(read_32bitBE(0x48,sf), channels);
vgmstream->interleave_block_size = 0x10; vgmstream->interleave_block_size = 0x10;
break; break;
default: default:
goto fail; goto fail;
} }
vgmstream->layout_type = layout_interleave; vgmstream->layout_type = layout_interleave;
vgmstream->meta_type = meta_STR_ASR; vgmstream->meta_type = meta_KNON;
if (!vgmstream_open_stream(vgmstream, sf, start_offset)) if (!vgmstream_open_stream(vgmstream, sf, start_offset))
goto fail; goto fail;

View File

@ -153,7 +153,7 @@ VGMSTREAM* (*init_vgmstream_functions[])(STREAMFILE* sf) = {
init_vgmstream_ubi_jade_container, init_vgmstream_ubi_jade_container,
init_vgmstream_seg, init_vgmstream_seg,
init_vgmstream_nds_strm_ffta2, init_vgmstream_nds_strm_ffta2,
init_vgmstream_str_asr, init_vgmstream_knon,
init_vgmstream_gca, init_vgmstream_gca,
init_vgmstream_spt_spd, init_vgmstream_spt_spd,
init_vgmstream_ish_isd, init_vgmstream_ish_isd,

View File

@ -431,7 +431,7 @@ typedef enum {
meta_PS2_ASS, /* ASS */ meta_PS2_ASS, /* ASS */
meta_SEG, /* Eragon */ meta_SEG, /* Eragon */
meta_NDS_STRM_FFTA2, /* Final Fantasy Tactics A2 */ meta_NDS_STRM_FFTA2, /* Final Fantasy Tactics A2 */
meta_STR_ASR, /* Donkey Kong Jet Race */ meta_KNON,
meta_ZWDSP, /* Zack and Wiki */ meta_ZWDSP, /* Zack and Wiki */
meta_VGS, /* Guitar Hero Encore - Rocks the 80s */ meta_VGS, /* Guitar Hero Encore - Rocks the 80s */
meta_DCS_WAV, meta_DCS_WAV,