diff --git a/src/formats.c b/src/formats.c index 924d9f27..f1e9269f 100644 --- a/src/formats.c +++ b/src/formats.c @@ -215,6 +215,7 @@ static const char* extension_list[] = { "his", "hps", "hsf", + "hvqm", "hwx", //txth/reserved [Star Wars Episode III (Xbox)] "hx2", "hx3", @@ -403,6 +404,7 @@ static const char* extension_list[] = { "pnb", "pona", "pos", + "ps3", "ps2stm", //fake extension for .stm (renamed? to be removed?) "psb", "psf", diff --git a/src/meta/bik.c b/src/meta/bik.c index 713c4f13..ec87f919 100644 --- a/src/meta/bik.c +++ b/src/meta/bik.c @@ -19,8 +19,11 @@ VGMSTREAM* init_vgmstream_bik(STREAMFILE* sf) { /* .bik/bik2/bk2: standard * .xmv: Reflections games [Driver: Parallel Lines (Wii), Emergency Heroes (Wii)] + * .bik.ps3: Neversoft games [Guitar Hero: Warriors of Rock (PS3)] + * .bik.xen: Neversoft games [various Guitar Hero (PC/PS3/X360)] + * .vid: Etrange Libellules games [Alice in Wonderland (PC)] * .bika: fake extension for demuxed audio */ - if (!check_extensions(sf,"bik,bik2,bk2,xmv,bika")) + if (!check_extensions(sf,"bik,bik2,bk2,ps3,xmv,xen,vid,bika")) goto fail; /* find target stream info and samples */ diff --git a/src/meta/fsb.c b/src/meta/fsb.c index e439fd5f..1407627f 100644 --- a/src/meta/fsb.c +++ b/src/meta/fsb.c @@ -118,8 +118,9 @@ VGMSTREAM* init_vgmstream_fsb(STREAMFILE* sf) { /* .fsb: standard * .bnk: Hard Corps Uprising (PS3) - * .sfx: Geon Cube (Wii) */ - if ( !check_extensions(sf, "fsb,bnk,sfx") ) + * .sfx: Geon Cube (Wii) + * .xen: Guitar Hero: World Tour (PC) */ + if ( !check_extensions(sf, "fsb,bnk,sfx,xen") ) goto fail; fsb.id = read_u32be(0x00,sf); diff --git a/src/meta/fsb_encrypted.c b/src/meta/fsb_encrypted.c index 1d075ff8..23b4e807 100644 --- a/src/meta/fsb_encrypted.c +++ b/src/meta/fsb_encrypted.c @@ -13,8 +13,9 @@ VGMSTREAM* init_vgmstream_fsb_encrypted(STREAMFILE* sf) { /* checks */ /* .fsb: standard + * .fsb.ps3: various Guitar Hero (PS3) * .fsb.xen: various Guitar Hero (X360/PC) */ - if (!check_extensions(sf, "fsb,xen")) + if (!check_extensions(sf, "fsb,ps3,xen")) goto fail; diff --git a/src/meta/h4m.c b/src/meta/h4m.c index 3383ef94..af073634 100644 --- a/src/meta/h4m.c +++ b/src/meta/h4m.c @@ -19,7 +19,10 @@ VGMSTREAM* init_vgmstream_h4m(STREAMFILE* sf) { !is_id32be(0x08,sf, "5\0\0\0")) goto fail; - if (!check_extensions(sf, "h4m")) + /* checks */ + /* .h4m: common + * .hvqm: Shrek: Extra Large (GC) */ + if (!check_extensions(sf, "h4m,hvqm")) goto fail; /* header */ diff --git a/src/meta/musx.c b/src/meta/musx.c index 0e2623ce..e08792fa 100644 --- a/src/meta/musx.c +++ b/src/meta/musx.c @@ -254,7 +254,7 @@ static int parse_musx_stream(STREAMFILE* sf, musx_header* musx) { case 0x5749495F: /* "WII_" */ default_channels = 2; - default_sample_rate = 44100; + default_sample_rate = 32000; musx->codec = DAT; break; diff --git a/src/meta/ngc_dsp_std.c b/src/meta/ngc_dsp_std.c index 2d6f728b..9347f0fc 100644 --- a/src/meta/ngc_dsp_std.c +++ b/src/meta/ngc_dsp_std.c @@ -572,13 +572,14 @@ fail: return NULL; } -/* .(mp)dsp - single header + interleaved dsp [Monopoly Party! (GC)] */ +/* .STE - single header + interleaved dsp [Monopoly Party! (GC)] */ VGMSTREAM* init_vgmstream_ngc_mpdsp(STREAMFILE* sf) { dsp_meta dspm = {0}; /* checks */ - /* .mpdsp: renamed since standard .dsp would catch it otherwise */ - if (!check_extensions(sf, "mpdsp")) + /* .ste: real extension + * .mpdsp: fake/renamed since standard .dsp would catch it otherwise */ + if (!check_extensions(sf, "mpdsp,ste")) goto fail; /* at 0x48 is extra data that could help differenciating these DSPs, but seems like @@ -757,7 +758,7 @@ fail: return NULL; } -/* IDSP - from Next Level games [Super Mario Strikers (GC), Mario Strikers: Charged (Wii)] */ +/* IDSP - from Next Level games [Super Mario Strikers (GC), Mario Strikers Charged (Wii), Spider-Man: Friend or Foe (Wii)] */ VGMSTREAM* init_vgmstream_idsp_nl(STREAMFILE* sf) { dsp_meta dspm = {0}; @@ -821,12 +822,14 @@ fail: return NULL; } -/* .ddsp - full interleaved dsp [The Sims 2: Pets (Wii)] */ +/* .ddsp - full interleaved dsp [Shark Tale, (GC), The Sims 2: Pets (Wii), Wacky Races: Crash & Dash (Wii)] */ VGMSTREAM* init_vgmstream_dsp_ddsp(STREAMFILE* sf) { dsp_meta dspm = {0}; /* checks */ - if (!check_extensions(sf, "ddsp")) + /* .ddsp: assumed? + * .wav: Wacky Races: Crash & Dash (Wii) */ + if (!check_extensions(sf, "ddsp,wav,lwav")) goto fail; dspm.channels = 2;