mirror of
https://github.com/vgmstream/vgmstream.git
synced 2024-11-15 02:57:38 +01:00
rewrite of rsd.c
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@455 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
This commit is contained in:
parent
3e7f0f091c
commit
e3bb79bd0a
@ -131,8 +131,6 @@ VGMSTREAM * init_vgmstream_aus(STREAMFILE * streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_rws(STREAMFILE * streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_rsd(STREAMFILE * streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_fsb(STREAMFILE * streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_rwx(STREAMFILE * streamFile);
|
||||
@ -239,4 +237,14 @@ VGMSTREAM * init_vgmstream_ngc_pdt(STREAMFILE * streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_wii_mus(STREAMFILE * streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_rsd2vag(STREAMFILE * streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_rsd2xadp(STREAMFILE * streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_rsd4pcmb(STREAMFILE * streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_rsd4vag(STREAMFILE * streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_rsd6vag(STREAMFILE * streamFile);
|
||||
|
||||
#endif
|
||||
|
402
src/meta/rsd.c
402
src/meta/rsd.c
@ -1,140 +1,113 @@
|
||||
#include "meta.h"
|
||||
#include "../util.h"
|
||||
|
||||
/* RSD (Crash Bandicot games, possibly more) */
|
||||
VGMSTREAM * init_vgmstream_rsd(STREAMFILE *streamFile) {
|
||||
/* RSD */
|
||||
/* RSD2VAG */
|
||||
VGMSTREAM * init_vgmstream_rsd2vag(STREAMFILE *streamFile) {
|
||||
VGMSTREAM * vgmstream = NULL;
|
||||
char filename[260];
|
||||
off_t start_offset;
|
||||
|
||||
coding_t coding_type;
|
||||
|
||||
int j;
|
||||
int loop_flag=0;
|
||||
|
||||
int loop_flag;
|
||||
int channel_count;
|
||||
int rsd_ident;
|
||||
|
||||
/* check extension, case insensitive */
|
||||
|
||||
/* check extension, case insensitive */
|
||||
streamFile->get_name(streamFile,filename,sizeof(filename));
|
||||
if (strcasecmp("rsd",filename_extension(filename))) goto fail;
|
||||
|
||||
|
||||
/* check header */
|
||||
if (read_32bitBE(0x0,streamFile) != 0x52534432 && /* RSD2 */
|
||||
read_32bitBE(0x0,streamFile) != 0x52534434 && /* RSD4 */
|
||||
read_32bitBE(0x0,streamFile) != 0x52534436) /* RSD6 */
|
||||
if (read_32bitBE(0x0,streamFile) != 0x52534432) /* RSD2 */
|
||||
goto fail;
|
||||
if (read_32bitBE(0x4,streamFile) != 0x56414720) /* VAG\0x20 */
|
||||
goto fail;
|
||||
|
||||
loop_flag = 0; /* (read_32bitLE(checkZERO-0x4,streamFile)!=0); */
|
||||
channel_count = (read_32bitLE(0x8,streamFile));
|
||||
loop_flag = 0;
|
||||
channel_count = read_32bitLE(0x8,streamFile);
|
||||
|
||||
|
||||
/* build the VGMSTREAM */
|
||||
vgmstream = allocate_vgmstream(channel_count,loop_flag);
|
||||
if (!vgmstream) goto fail;
|
||||
|
||||
|
||||
rsd_ident = read_32bitBE(0x4,streamFile);
|
||||
if (!vgmstream) goto fail;
|
||||
|
||||
/* fill in the vital statistics */
|
||||
start_offset = 0x800;
|
||||
vgmstream->channels = channel_count;
|
||||
vgmstream->sample_rate = read_32bitLE(0x10,streamFile);
|
||||
vgmstream->coding_type = coding_PSX;
|
||||
vgmstream->num_samples = (get_streamfile_size(streamFile)-0x800)*28/16/channel_count;
|
||||
if (loop_flag) {
|
||||
vgmstream->loop_start_sample = loop_flag;
|
||||
vgmstream->loop_end_sample = (get_streamfile_size(streamFile)-0x800)*28/16/channel_count;
|
||||
}
|
||||
|
||||
vgmstream->layout_type = layout_interleave;
|
||||
vgmstream->interleave_block_size = read_32bitLE(0x14,streamFile);
|
||||
vgmstream->meta_type = meta_RSD2VAG;
|
||||
|
||||
/* open the file for reading */
|
||||
{
|
||||
int i;
|
||||
STREAMFILE * file;
|
||||
file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE);
|
||||
if (!file) goto fail;
|
||||
for (i=0;i<channel_count;i++) {
|
||||
vgmstream->ch[i].streamfile = file;
|
||||
|
||||
vgmstream->ch[i].channel_start_offset=
|
||||
vgmstream->ch[i].offset=start_offset+
|
||||
vgmstream->interleave_block_size*i;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
switch (rsd_ident) {
|
||||
case 0x56414720: /* RSD4VAG & RSD6VAG */
|
||||
start_offset = 0x800;
|
||||
coding_type = coding_PSX;
|
||||
vgmstream->interleave_block_size = read_32bitLE(0x0C,streamFile);
|
||||
vgmstream->num_samples = (get_streamfile_size(streamFile)-start_offset)*28/16/channel_count;
|
||||
if (loop_flag) {
|
||||
vgmstream->loop_start_sample = 0;
|
||||
vgmstream->loop_end_sample = (get_streamfile_size(streamFile)-start_offset)*28/16/channel_count;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x50434D20: /* RSD4PCM */
|
||||
start_offset = 0x800;
|
||||
coding_type = coding_PCM16LE;
|
||||
vgmstream->interleave_block_size = 0x2;
|
||||
vgmstream->num_samples = (get_streamfile_size(streamFile)-start_offset)/2/channel_count;
|
||||
if (loop_flag) {
|
||||
vgmstream->loop_start_sample = 0;
|
||||
vgmstream->loop_end_sample = (get_streamfile_size(streamFile)-start_offset)/2/channel_count;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x52414450: /* RSD4RADP */
|
||||
start_offset = 0x800;
|
||||
coding_type = coding_NGC_DTK; /* or DSP??? */
|
||||
vgmstream->interleave_block_size = 0x10;
|
||||
vgmstream->num_samples = (get_streamfile_size(streamFile)-start_offset)/2/channel_count;
|
||||
if (loop_flag) {
|
||||
vgmstream->loop_start_sample = 0;
|
||||
vgmstream->loop_end_sample = (get_streamfile_size(streamFile)-start_offset)/2/channel_count;
|
||||
}
|
||||
break;
|
||||
|
||||
case 0x50434D42: /* RSD4PCMB */
|
||||
start_offset = 0x80;
|
||||
coding_type = coding_PCM16BE;
|
||||
vgmstream->interleave_block_size = 0x2;
|
||||
vgmstream->num_samples = (get_streamfile_size(streamFile)-start_offset)/2/channel_count;
|
||||
if (loop_flag) {
|
||||
vgmstream->loop_start_sample = 0;
|
||||
vgmstream->loop_end_sample = (get_streamfile_size(streamFile)-start_offset)/2/channel_count;
|
||||
}
|
||||
break;
|
||||
case 0x57414450: /* RSD2WADP */
|
||||
start_offset = 0x800;
|
||||
coding_type = coding_NGC_DSP;
|
||||
vgmstream->interleave_block_size = read_32bitLE(0xC,streamFile);
|
||||
vgmstream->num_samples = (get_streamfile_size(streamFile)-start_offset);
|
||||
|
||||
|
||||
if (loop_flag) {
|
||||
vgmstream->loop_start_sample = 0;
|
||||
vgmstream->loop_end_sample = (get_streamfile_size(streamFile)-start_offset)*64/36/channel_count;
|
||||
}
|
||||
break;
|
||||
case 0x58414450: /* RSD2XADP */
|
||||
start_offset = 0x40;
|
||||
coding_type = coding_XBOX;
|
||||
vgmstream->num_samples = (get_streamfile_size(streamFile)-start_offset)*64/36/channel_count;
|
||||
|
||||
|
||||
if (loop_flag) {
|
||||
vgmstream->loop_start_sample = 0;
|
||||
vgmstream->loop_end_sample = (get_streamfile_size(streamFile)-start_offset)*64/36/channel_count;
|
||||
}
|
||||
break;
|
||||
|
||||
#if 0
|
||||
case 0x584D4120: /* RSD6XMA */
|
||||
goto fail;
|
||||
default:
|
||||
goto fail;
|
||||
#endif
|
||||
return vgmstream;
|
||||
|
||||
fail:
|
||||
/* clean up anything we may have opened */
|
||||
if (vgmstream) close_vgmstream(vgmstream);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/* RSD2XADP */
|
||||
VGMSTREAM * init_vgmstream_rsd2xadp(STREAMFILE *streamFile) {
|
||||
VGMSTREAM * vgmstream = NULL;
|
||||
char filename[260];
|
||||
off_t start_offset;
|
||||
|
||||
int loop_flag;
|
||||
int channel_count;
|
||||
|
||||
/* check extension, case insensitive */
|
||||
streamFile->get_name(streamFile,filename,sizeof(filename));
|
||||
if (strcasecmp("rsd",filename_extension(filename))) goto fail;
|
||||
|
||||
/* check header */
|
||||
if (read_32bitBE(0x0,streamFile) != 0x52534432) /* RSD2 */
|
||||
goto fail;
|
||||
if (read_32bitBE(0x4,streamFile) != 0x58414450) /* XADP */
|
||||
goto fail;
|
||||
|
||||
loop_flag = 0;
|
||||
channel_count = read_32bitLE(0x8,streamFile);
|
||||
|
||||
/* build the VGMSTREAM */
|
||||
vgmstream = allocate_vgmstream(channel_count,loop_flag);
|
||||
if (!vgmstream) goto fail;
|
||||
|
||||
/* fill in the vital statistics */
|
||||
start_offset = read_32bitLE(0x18,streamFile); /* not sure about this */
|
||||
vgmstream->channels = channel_count;
|
||||
vgmstream->sample_rate = (uint16_t)read_16bitLE(0x10,streamFile);
|
||||
vgmstream->coding_type = coding_type;
|
||||
vgmstream->sample_rate = read_32bitLE(0x10,streamFile);
|
||||
vgmstream->coding_type = coding_XBOX;
|
||||
vgmstream->num_samples = (get_streamfile_size(streamFile)-start_offset)*64/36/channel_count;
|
||||
if (loop_flag) {
|
||||
vgmstream->loop_start_sample = loop_flag;
|
||||
vgmstream->loop_end_sample = (get_streamfile_size(streamFile)-start_offset)*28/16/channel_count;
|
||||
}
|
||||
|
||||
vgmstream->layout_type = layout_interleave;
|
||||
vgmstream->meta_type = meta_RSD;
|
||||
|
||||
|
||||
if (vgmstream->coding_type == coding_NGC_DSP) {
|
||||
int i;
|
||||
for (i=0;i<16;i++) {
|
||||
vgmstream->ch[0].adpcm_coef[i] = read_16bitBE(0x1A4+i*2,streamFile);
|
||||
}
|
||||
if (vgmstream->channels) {
|
||||
for (i=0;i<16;i++) {
|
||||
vgmstream->ch[1].adpcm_coef[i] = read_16bitBE(0x1CC+i*2,streamFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
vgmstream->layout_type = layout_interleave;
|
||||
vgmstream->interleave_block_size = 0x24;
|
||||
vgmstream->meta_type = meta_RSD2XADP;
|
||||
|
||||
/* open the file for reading */
|
||||
{
|
||||
@ -157,13 +130,212 @@ VGMSTREAM * init_vgmstream_rsd(STREAMFILE *streamFile) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return vgmstream;
|
||||
|
||||
return vgmstream;
|
||||
|
||||
/* clean up anything we may have opened */
|
||||
fail:
|
||||
/* clean up anything we may have opened */
|
||||
if (vgmstream) close_vgmstream(vgmstream);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* RSD4VAG */
|
||||
VGMSTREAM * init_vgmstream_rsd4vag(STREAMFILE *streamFile) {
|
||||
VGMSTREAM * vgmstream = NULL;
|
||||
char filename[260];
|
||||
off_t start_offset;
|
||||
|
||||
int loop_flag;
|
||||
int channel_count;
|
||||
|
||||
/* check extension, case insensitive */
|
||||
streamFile->get_name(streamFile,filename,sizeof(filename));
|
||||
if (strcasecmp("rsd",filename_extension(filename))) goto fail;
|
||||
|
||||
/* check header */
|
||||
if (read_32bitBE(0x0,streamFile) != 0x52534434) /* RSD4 */
|
||||
goto fail;
|
||||
if (read_32bitBE(0x4,streamFile) != 0x56414720) /* VAG\0x20 */
|
||||
goto fail;
|
||||
|
||||
loop_flag = 0;
|
||||
channel_count = read_32bitLE(0x8,streamFile);
|
||||
|
||||
/* build the VGMSTREAM */
|
||||
vgmstream = allocate_vgmstream(channel_count,loop_flag);
|
||||
if (!vgmstream) goto fail;
|
||||
|
||||
/* fill in the vital statistics */
|
||||
start_offset = 0x800;
|
||||
vgmstream->channels = channel_count;
|
||||
vgmstream->sample_rate = read_32bitLE(0x10,streamFile);
|
||||
vgmstream->coding_type = coding_PSX;
|
||||
vgmstream->num_samples = (get_streamfile_size(streamFile)-0x800)*28/16/channel_count;
|
||||
if (loop_flag) {
|
||||
vgmstream->loop_start_sample = loop_flag;
|
||||
vgmstream->loop_end_sample = (get_streamfile_size(streamFile)-0x800)*28/16/channel_count;
|
||||
}
|
||||
|
||||
vgmstream->layout_type = layout_interleave;
|
||||
vgmstream->interleave_block_size = read_32bitLE(0xC,streamFile);
|
||||
vgmstream->meta_type = meta_RSD4VAG;
|
||||
|
||||
/* open the file for reading */
|
||||
{
|
||||
int i;
|
||||
STREAMFILE * file;
|
||||
file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE);
|
||||
if (!file) goto fail;
|
||||
for (i=0;i<channel_count;i++) {
|
||||
vgmstream->ch[i].streamfile = file;
|
||||
|
||||
vgmstream->ch[i].channel_start_offset=
|
||||
vgmstream->ch[i].offset=start_offset+
|
||||
vgmstream->interleave_block_size*i;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return vgmstream;
|
||||
|
||||
fail:
|
||||
/* clean up anything we may have opened */
|
||||
if (vgmstream) close_vgmstream(vgmstream);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* RSD4PCMB */
|
||||
VGMSTREAM * init_vgmstream_rsd4pcmb(STREAMFILE *streamFile) {
|
||||
VGMSTREAM * vgmstream = NULL;
|
||||
char filename[260];
|
||||
off_t start_offset;
|
||||
|
||||
int loop_flag;
|
||||
int channel_count;
|
||||
|
||||
/* check extension, case insensitive */
|
||||
streamFile->get_name(streamFile,filename,sizeof(filename));
|
||||
if (strcasecmp("rsd",filename_extension(filename))) goto fail;
|
||||
|
||||
/* check header */
|
||||
if (read_32bitBE(0x0,streamFile) != 0x52534434) /* RSD4 */
|
||||
goto fail;
|
||||
if (read_32bitBE(0x4,streamFile) != 0x50434D42) /* PCMB */
|
||||
goto fail;
|
||||
|
||||
loop_flag = 0;
|
||||
channel_count = read_32bitLE(0x8,streamFile);
|
||||
|
||||
/* build the VGMSTREAM */
|
||||
vgmstream = allocate_vgmstream(channel_count,loop_flag);
|
||||
if (!vgmstream) goto fail;
|
||||
|
||||
/* fill in the vital statistics */
|
||||
start_offset = 0x80;
|
||||
vgmstream->channels = channel_count;
|
||||
vgmstream->sample_rate = read_32bitLE(0x10,streamFile);
|
||||
vgmstream->coding_type = coding_PCM16BE;
|
||||
vgmstream->num_samples = (get_streamfile_size(streamFile)-0x800)/2/channel_count;
|
||||
if (loop_flag) {
|
||||
vgmstream->loop_start_sample = loop_flag;
|
||||
vgmstream->loop_end_sample = (get_streamfile_size(streamFile)-0x800)/2/channel_count;
|
||||
}
|
||||
|
||||
vgmstream->layout_type = layout_interleave;
|
||||
vgmstream->interleave_block_size = 0x2;
|
||||
vgmstream->meta_type = meta_RSD4PCMB;
|
||||
|
||||
/* open the file for reading */
|
||||
{
|
||||
int i;
|
||||
STREAMFILE * file;
|
||||
file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE);
|
||||
if (!file) goto fail;
|
||||
for (i=0;i<channel_count;i++) {
|
||||
vgmstream->ch[i].streamfile = file;
|
||||
|
||||
vgmstream->ch[i].channel_start_offset=
|
||||
vgmstream->ch[i].offset=start_offset+
|
||||
vgmstream->interleave_block_size*i;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return vgmstream;
|
||||
|
||||
fail:
|
||||
/* clean up anything we may have opened */
|
||||
if (vgmstream) close_vgmstream(vgmstream);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* RSD6VAG */
|
||||
VGMSTREAM * init_vgmstream_rsd6vag(STREAMFILE *streamFile) {
|
||||
VGMSTREAM * vgmstream = NULL;
|
||||
char filename[260];
|
||||
off_t start_offset;
|
||||
|
||||
int loop_flag;
|
||||
int channel_count;
|
||||
|
||||
/* check extension, case insensitive */
|
||||
streamFile->get_name(streamFile,filename,sizeof(filename));
|
||||
if (strcasecmp("rsd",filename_extension(filename))) goto fail;
|
||||
|
||||
/* check header */
|
||||
if (read_32bitBE(0x0,streamFile) != 0x52534436) /* RSD6 */
|
||||
goto fail;
|
||||
if (read_32bitBE(0x4,streamFile) != 0x56414720) /* VAG\0x20 */
|
||||
goto fail;
|
||||
|
||||
loop_flag = 0;
|
||||
channel_count = read_32bitLE(0x8,streamFile);
|
||||
|
||||
/* build the VGMSTREAM */
|
||||
vgmstream = allocate_vgmstream(channel_count,loop_flag);
|
||||
if (!vgmstream) goto fail;
|
||||
|
||||
/* fill in the vital statistics */
|
||||
start_offset = 0x800;
|
||||
vgmstream->channels = channel_count;
|
||||
vgmstream->sample_rate = read_32bitLE(0x10,streamFile);
|
||||
vgmstream->coding_type = coding_PSX;
|
||||
vgmstream->num_samples = (get_streamfile_size(streamFile)-0x800)*28/16/channel_count;
|
||||
if (loop_flag) {
|
||||
vgmstream->loop_start_sample = loop_flag;
|
||||
vgmstream->loop_end_sample = (get_streamfile_size(streamFile)-0x800)*28/16/channel_count;
|
||||
}
|
||||
|
||||
vgmstream->layout_type = layout_interleave;
|
||||
vgmstream->interleave_block_size = read_32bitLE(0xC,streamFile);
|
||||
vgmstream->meta_type = meta_RSD6VAG;
|
||||
|
||||
/* open the file for reading */
|
||||
{
|
||||
int i;
|
||||
STREAMFILE * file;
|
||||
file = streamFile->open(streamFile,filename,STREAMFILE_DEFAULT_BUFFER_SIZE);
|
||||
if (!file) goto fail;
|
||||
for (i=0;i<channel_count;i++) {
|
||||
vgmstream->ch[i].streamfile = file;
|
||||
|
||||
vgmstream->ch[i].channel_start_offset=
|
||||
vgmstream->ch[i].offset=start_offset+
|
||||
vgmstream->interleave_block_size*i;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return vgmstream;
|
||||
|
||||
fail:
|
||||
/* clean up anything we may have opened */
|
||||
if (vgmstream) close_vgmstream(vgmstream);
|
||||
return NULL;
|
||||
}
|
@ -80,7 +80,6 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = {
|
||||
init_vgmstream_hgc1,
|
||||
init_vgmstream_aus,
|
||||
init_vgmstream_rws,
|
||||
init_vgmstream_rsd,
|
||||
init_vgmstream_fsb,
|
||||
init_vgmstream_rwx,
|
||||
init_vgmstream_xwb,
|
||||
@ -135,6 +134,12 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = {
|
||||
init_vgmstream_ps2_mihb,
|
||||
init_vgmstream_ngc_pdt,
|
||||
init_vgmstream_wii_mus,
|
||||
|
||||
init_vgmstream_rsd2vag,
|
||||
init_vgmstream_rsd2xadp,
|
||||
init_vgmstream_rsd4pcmb,
|
||||
init_vgmstream_rsd4vag,
|
||||
init_vgmstream_rsd6vag,
|
||||
};
|
||||
|
||||
#define INIT_VGMSTREAM_FCNS (sizeof(init_vgmstream_fcns)/sizeof(init_vgmstream_fcns[0]))
|
||||
@ -1589,9 +1594,6 @@ void describe_vgmstream(VGMSTREAM * vgmstream, char * desc, int length) {
|
||||
break;
|
||||
case meta_EACS_SAT:
|
||||
snprintf(temp,TEMPSIZE,"EACS Header (SATURN)");
|
||||
break;
|
||||
case meta_RSD:
|
||||
snprintf(temp,TEMPSIZE,"RSD4 or RSD6 Header");
|
||||
break;
|
||||
case meta_SL3:
|
||||
snprintf(temp,TEMPSIZE,"SL3 Header");
|
||||
@ -1715,6 +1717,21 @@ void describe_vgmstream(VGMSTREAM * vgmstream, char * desc, int length) {
|
||||
break;
|
||||
case meta_DSP_WII_MUS:
|
||||
snprintf(temp,TEMPSIZE,"mus header");
|
||||
break;
|
||||
case meta_RSD2VAG:
|
||||
snprintf(temp,TEMPSIZE,"RSD2/VAG Header");
|
||||
break;
|
||||
case meta_RSD2XADP:
|
||||
snprintf(temp,TEMPSIZE,"RSD2/XADP Header");
|
||||
break;
|
||||
case meta_RSD4PCMB:
|
||||
snprintf(temp,TEMPSIZE,"RSD4/PCMB Header");
|
||||
break;
|
||||
case meta_RSD4VAG:
|
||||
snprintf(temp,TEMPSIZE,"RSD4/VAG Header");
|
||||
break;
|
||||
case meta_RSD6VAG:
|
||||
snprintf(temp,TEMPSIZE,"RSD6/VAG Header");
|
||||
break;
|
||||
default:
|
||||
snprintf(temp,TEMPSIZE,"THEY SHOULD HAVE SENT A POET");
|
||||
|
@ -202,7 +202,6 @@ typedef enum {
|
||||
meta_HGC1, /* Knights of the Temple 2 */
|
||||
meta_AUS, /* Variuos Capcom Games */
|
||||
meta_RWS, /* Variuos Konami Games */
|
||||
meta_RSD, /* Crash Bandicoot Games */
|
||||
meta_FSB3, /* FMOD Sample Bank, version 3 */
|
||||
meta_RWX, /* Air Force Delta Storm (XBOX) */
|
||||
meta_XWB, /* King of Fighters (XBOX) */
|
||||
@ -243,6 +242,12 @@ typedef enum {
|
||||
meta_PS2_MIHB, /* Merged MIH+MIB */
|
||||
meta_NGC_PDT, /* Mario Party 6 */
|
||||
|
||||
meta_RSD2VAG, /* RSD2VAG */
|
||||
meta_RSD2XADP, /* RSD2XADP */
|
||||
meta_RSD4PCMB, /* RSD4PCMB */
|
||||
meta_RSD4VAG, /* RSD4VAG */
|
||||
meta_RSD6VAG, /* RSD6VAG */
|
||||
|
||||
meta_XBOX_WAVM, /* XBOX WAVM File */
|
||||
meta_XBOX_RIFF, /* XBOX RIFF/WAVE File */
|
||||
meta_XBOX_WVS, /* XBOX WVS */
|
||||
|
Loading…
Reference in New Issue
Block a user