mirror of
https://github.com/vgmstream/vgmstream.git
synced 2025-01-18 07:44:43 +01:00
added a new type to dreamcast str
git-svn-id: https://vgmstream.svn.sourceforge.net/svnroot/vgmstream@566 51a99a44-fe44-0410-b1ba-c3e57ba2b86b
This commit is contained in:
parent
5b5a9d4336
commit
b3b06b5dad
@ -4,17 +4,67 @@ Begin VB.Form Form1
|
||||
BackColor = &H00E0E0E0&
|
||||
BorderStyle = 0 'Kein
|
||||
Caption = "Generic Header Creator 3.00 for vgmstream"
|
||||
ClientHeight = 8940
|
||||
ClientHeight = 8910
|
||||
ClientLeft = 0
|
||||
ClientTop = 0
|
||||
ClientWidth = 13110
|
||||
LinkTopic = "Form1"
|
||||
MaxButton = 0 'False
|
||||
MinButton = 0 'False
|
||||
ScaleHeight = 596
|
||||
ScaleHeight = 594
|
||||
ScaleMode = 3 'Pixel
|
||||
ScaleWidth = 874
|
||||
StartUpPosition = 1 'Fenstermitte
|
||||
Begin VB.PictureBox Picture5
|
||||
BorderStyle = 0 'Kein
|
||||
Height = 495
|
||||
Left = 2520
|
||||
ScaleHeight = 495
|
||||
ScaleWidth = 495
|
||||
TabIndex = 127
|
||||
Top = 420
|
||||
Width = 495
|
||||
End
|
||||
Begin VB.PictureBox Picture4
|
||||
BorderStyle = 0 'Kein
|
||||
Height = 495
|
||||
Left = 1920
|
||||
ScaleHeight = 495
|
||||
ScaleWidth = 495
|
||||
TabIndex = 126
|
||||
Top = 420
|
||||
Width = 495
|
||||
End
|
||||
Begin VB.PictureBox Picture3
|
||||
BorderStyle = 0 'Kein
|
||||
Height = 495
|
||||
Left = 1320
|
||||
ScaleHeight = 495
|
||||
ScaleWidth = 495
|
||||
TabIndex = 125
|
||||
Top = 420
|
||||
Width = 495
|
||||
End
|
||||
Begin VB.PictureBox Picture2
|
||||
BorderStyle = 0 'Kein
|
||||
Height = 495
|
||||
Left = 720
|
||||
ScaleHeight = 495
|
||||
ScaleWidth = 495
|
||||
TabIndex = 124
|
||||
Top = 420
|
||||
Width = 495
|
||||
End
|
||||
Begin VB.PictureBox Picture1
|
||||
BorderStyle = 0 'Kein
|
||||
Height = 495
|
||||
Left = 120
|
||||
ScaleHeight = 495
|
||||
ScaleWidth = 495
|
||||
TabIndex = 123
|
||||
Top = 420
|
||||
Width = 495
|
||||
End
|
||||
Begin VB.TextBox txtInputFile
|
||||
Appearance = 0 '2D
|
||||
BackColor = &H00C0C0C0&
|
||||
@ -811,10 +861,10 @@ Begin VB.Form Form1
|
||||
Strikethrough = 0 'False
|
||||
EndProperty
|
||||
ForeColor = &H00800000&
|
||||
Height = 8295
|
||||
Height = 7815
|
||||
Left = 120
|
||||
TabIndex = 3
|
||||
Top = 480
|
||||
Top = 960
|
||||
Width = 12855
|
||||
Begin VB.Frame frmSpecialOptionsPSX
|
||||
BackColor = &H00B8B8B8&
|
||||
@ -832,7 +882,7 @@ Begin VB.Form Form1
|
||||
Height = 1935
|
||||
Left = 9720
|
||||
TabIndex = 120
|
||||
Top = 1920
|
||||
Top = 240
|
||||
Visible = 0 'False
|
||||
Width = 3015
|
||||
Begin VB.CommandButton cmdFIndLoopsPSX
|
||||
@ -857,9 +907,9 @@ Begin VB.Form Form1
|
||||
Caption = "Half File Interleave (SPSD only?)"
|
||||
ForeColor = &H00800000&
|
||||
Height = 255
|
||||
Left = 9840
|
||||
Left = 9720
|
||||
TabIndex = 116
|
||||
Top = 4440
|
||||
Top = 4800
|
||||
Visible = 0 'False
|
||||
Width = 2775
|
||||
End
|
||||
@ -876,10 +926,10 @@ Begin VB.Form Form1
|
||||
Strikethrough = 0 'False
|
||||
EndProperty
|
||||
ForeColor = &H00800000&
|
||||
Height = 3135
|
||||
Height = 2775
|
||||
Left = 4560
|
||||
TabIndex = 104
|
||||
Top = 3960
|
||||
Top = 4200
|
||||
Width = 5055
|
||||
Begin VB.TextBox txtGENHLoopStartSamples
|
||||
Appearance = 0 '2D
|
||||
@ -1051,7 +1101,7 @@ Begin VB.Form Form1
|
||||
Height = 255
|
||||
Left = 9960
|
||||
TabIndex = 100
|
||||
Top = 7800
|
||||
Top = 7320
|
||||
Visible = 0 'False
|
||||
Width = 2655
|
||||
End
|
||||
@ -1071,7 +1121,7 @@ Begin VB.Form Form1
|
||||
Height = 2415
|
||||
Left = 9720
|
||||
TabIndex = 99
|
||||
Top = 1920
|
||||
Top = 240
|
||||
Visible = 0 'False
|
||||
Width = 3015
|
||||
Begin VB.TextBox txtDSPCoef1
|
||||
@ -1153,7 +1203,7 @@ Begin VB.Form Form1
|
||||
Height = 615
|
||||
Left = 120
|
||||
TabIndex = 97
|
||||
Top = 7560
|
||||
Top = 7080
|
||||
Width = 9495
|
||||
Begin VB.Label lblINFO
|
||||
BackColor = &H00FFFFFF&
|
||||
@ -1187,10 +1237,10 @@ Begin VB.Form Form1
|
||||
Strikethrough = 0 'False
|
||||
EndProperty
|
||||
ForeColor = &H00800000&
|
||||
Height = 1935
|
||||
Height = 2055
|
||||
Left = 4560
|
||||
TabIndex = 18
|
||||
Top = 1920
|
||||
Top = 2040
|
||||
Width = 5055
|
||||
Begin VB.ComboBox txtGENHChannels
|
||||
BackColor = &H00C0C0C0&
|
||||
@ -1295,7 +1345,7 @@ Begin VB.Form Form1
|
||||
Strikethrough = 0 'False
|
||||
EndProperty
|
||||
ForeColor = &H00800000&
|
||||
Height = 7215
|
||||
Height = 6735
|
||||
Left = 120
|
||||
TabIndex = 9
|
||||
Top = 240
|
||||
@ -1335,7 +1385,7 @@ Begin VB.Form Form1
|
||||
Height = 255
|
||||
Left = 120
|
||||
TabIndex = 12
|
||||
Top = 6360
|
||||
Top = 5880
|
||||
Width = 1695
|
||||
End
|
||||
Begin VB.CheckBox chkProcessWholeList
|
||||
@ -1345,7 +1395,7 @@ Begin VB.Form Form1
|
||||
Height = 255
|
||||
Left = 120
|
||||
TabIndex = 11
|
||||
Top = 6120
|
||||
Top = 5640
|
||||
Width = 1815
|
||||
End
|
||||
Begin VB.TextBox txtFilter
|
||||
@ -1396,13 +1446,13 @@ Begin VB.Form Form1
|
||||
Height = 195
|
||||
Left = 1080
|
||||
TabIndex = 94
|
||||
Top = 6820
|
||||
Top = 6345
|
||||
Width = 1965
|
||||
End
|
||||
Begin VB.Image cmdCreateGENH
|
||||
Height = 390
|
||||
Left = 120
|
||||
Top = 6720
|
||||
Top = 6240
|
||||
Width = 4095
|
||||
End
|
||||
Begin VB.Label lblFilterCreator
|
||||
@ -1458,7 +1508,7 @@ Begin VB.Form Form1
|
||||
Left = 4560
|
||||
TabIndex = 4
|
||||
Top = 240
|
||||
Width = 8175
|
||||
Width = 5055
|
||||
Begin VB.ComboBox comboFileFormat
|
||||
BackColor = &H00C0C0C0&
|
||||
Height = 315
|
||||
@ -1467,7 +1517,7 @@ Begin VB.Form Form1
|
||||
List = "Form1.frx":38CC
|
||||
TabIndex = 6
|
||||
Top = 480
|
||||
Width = 7935
|
||||
Width = 4815
|
||||
End
|
||||
Begin VB.ComboBox ComboPresets
|
||||
BackColor = &H00C0C0C0&
|
||||
@ -1477,7 +1527,7 @@ Begin VB.Form Form1
|
||||
List = "Form1.frx":3AE7
|
||||
TabIndex = 5
|
||||
Top = 1080
|
||||
Width = 7935
|
||||
Width = 4815
|
||||
End
|
||||
Begin VB.Label Label1
|
||||
AutoSize = -1 'True
|
||||
@ -1737,8 +1787,10 @@ Dim strOutputFileExtractor As String
|
||||
|
||||
Dim ExportBytesLarge As Long
|
||||
Dim ExportBytesSmall As Long
|
||||
Dim SmallBuffer As Byte
|
||||
Dim LargeBuffer As String * 2048
|
||||
Dim SmallBuffer() As Byte
|
||||
Dim LargeBuffer() As Byte
|
||||
Dim SmallBufferSize As Long
|
||||
Dim LargeBufferSize As Long
|
||||
|
||||
Dim END_BYTE As Byte
|
||||
Dim WholeListCounter
|
||||
@ -2010,11 +2062,15 @@ Private Sub cmdCreateGENH_Click()
|
||||
Exit Sub 'Interrupting the routine here, we'll not go further
|
||||
End If
|
||||
|
||||
'Calculating a variable dividable by the large buffer size, _
|
||||
otherwise the loop funtion will freeze
|
||||
ExportBytesLarge = (Int(FileLen(strInputFile) / 2048) * 2048)
|
||||
'Calculating the remaing bytes
|
||||
|
||||
'Calculate the exportbytes, the largebuffer size is variable
|
||||
'doing a "ReDim" to match the buffersize in all calculations
|
||||
LargeBufferSize = 2048
|
||||
ExportBytesLarge = (Int(FileLen(strInputFile) / LargeBufferSize) * LargeBufferSize)
|
||||
ExportBytesSmall = (FileLen(strInputFile) - ExportBytesLarge)
|
||||
SmallBufferSize = (FileLen(strInputFile) - ExportBytesLarge)
|
||||
ReDim LargeBuffer(0 To LargeBufferSize - 1)
|
||||
ReDim SmallBuffer(0 To SmallBufferSize - 1)
|
||||
|
||||
Do
|
||||
|
||||
@ -2030,15 +2086,10 @@ Private Sub cmdCreateGENH_Click()
|
||||
COUNTER = 0
|
||||
|
||||
If ExportBytesSmall > 0 Then
|
||||
|
||||
Do
|
||||
|
||||
|
||||
Get #1, ExportBytesLarge + 1 + COUNTER, SmallBuffer
|
||||
Put #2, GENHFileStartOffset + ExportBytesLarge + 1 + COUNTER, SmallBuffer
|
||||
|
||||
COUNTER = COUNTER + 1
|
||||
Loop Until COUNTER = ExportBytesSmall
|
||||
|
||||
End If
|
||||
|
||||
Close #1
|
||||
@ -2684,6 +2735,8 @@ cmdUSEFILEEND = btnNormal.Picture
|
||||
chkCreateOnlyHeader.BackColor = Form1.BackColor
|
||||
chkCapcomHack.BackColor = Form1.BackColor
|
||||
|
||||
'SSTab1.BackColor = Form1.BackColor
|
||||
|
||||
strGENH = "GENH"
|
||||
strGENHVersion = "3.00"
|
||||
GENHFileStartOffset = 4096
|
||||
|
@ -2,6 +2,9 @@
|
||||
#include "../coding/coding.h"
|
||||
#include "../util.h"
|
||||
|
||||
/* SEGA Stream Asset Builder...
|
||||
this meta handles only V1 and V3... */
|
||||
|
||||
VGMSTREAM * init_vgmstream_dc_str(STREAMFILE *streamFile) {
|
||||
VGMSTREAM * vgmstream = NULL;
|
||||
char filename[260];
|
||||
@ -67,7 +70,7 @@ VGMSTREAM * init_vgmstream_dc_str(STREAMFILE *streamFile) {
|
||||
vgmstream->interleave_block_size = interleave;
|
||||
vgmstream->layout_type = layout_interleave;
|
||||
}
|
||||
|
||||
|
||||
vgmstream->meta_type = meta_DC_STR;
|
||||
|
||||
/* open the file for reading */
|
||||
@ -93,3 +96,70 @@ fail:
|
||||
if (vgmstream) close_vgmstream(vgmstream);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* This handles V2, not sure if it is really V2, cause the header is always
|
||||
the same, not like in V1 and V3, only found in "102 Dalmatians - Puppies to the Rescue"
|
||||
until now... */
|
||||
|
||||
VGMSTREAM * init_vgmstream_dc_str_v2(STREAMFILE *streamFile) {
|
||||
VGMSTREAM * vgmstream = NULL;
|
||||
char filename[260];
|
||||
off_t start_offset;
|
||||
int loop_flag = 0;
|
||||
int channel_count;
|
||||
|
||||
/* check extension, case insensitive */
|
||||
streamFile->get_name(streamFile,filename,sizeof(filename));
|
||||
if (strcasecmp("str",filename_extension(filename))) goto fail;
|
||||
#if 0
|
||||
/* check header */
|
||||
if ((read_32bitBE(0x00,streamFile) != 0x00000002) &&
|
||||
(read_32bitBE(0x10,streamFile) != 0x00000100) &&
|
||||
(read_32bitBE(0x1C,streamFile) != 0x1F000000))
|
||||
goto fail;
|
||||
#endif
|
||||
|
||||
channel_count = 2;
|
||||
|
||||
/* 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(0x4,streamFile);
|
||||
vgmstream->coding_type = coding_PCM16LE;
|
||||
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;
|
||||
}
|
||||
|
||||
vgmstream->layout_type = layout_interleave;
|
||||
vgmstream->interleave_block_size = read_32bitLE(0xC,streamFile);
|
||||
vgmstream->meta_type = meta_DC_STR_V2;
|
||||
|
||||
/* 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;
|
||||
|
||||
/* clean up anything we may have opened */
|
||||
fail:
|
||||
if (vgmstream) close_vgmstream(vgmstream);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -205,6 +205,8 @@ VGMSTREAM * init_vgmstream_xbox_wvs(STREAMFILE *streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_dc_str(STREAMFILE *streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_dc_str_v2(STREAMFILE *streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_xbox_matx(STREAMFILE *streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_de2(STREAMFILE *streamFile);
|
||||
@ -323,6 +325,7 @@ VGMSTREAM * init_vgmstream_wii_sts(STREAMFILE *streamFile);
|
||||
VGMSTREAM * init_vgmstream_ps2_p2bt(STREAMFILE *streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_ps2_gbts(STREAMFILE *streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_wii_sng(STREAMFILE *streamFile);
|
||||
|
||||
VGMSTREAM * init_vgmstream_aax(STREAMFILE *streamFile);
|
||||
|
@ -297,7 +297,7 @@ VGMSTREAM * init_vgmstream_musx_v201(STREAMFILE *streamFile) {
|
||||
goto fail;
|
||||
}
|
||||
|
||||
loop_flag = (read_32bitLE(loop_offsets+0x10,streamFile) !=0x00000000);
|
||||
loop_flag = (read_32bitLE(loop_offsets+0x04,streamFile) !=0x00000000);
|
||||
|
||||
/* build the VGMSTREAM */
|
||||
vgmstream = allocate_vgmstream(channel_count,loop_flag);
|
||||
|
@ -117,11 +117,13 @@ VGMSTREAM * (*init_vgmstream_fcns[])(STREAMFILE *streamFile) = {
|
||||
init_vgmstream_capdsp,
|
||||
init_vgmstream_xbox_wvs,
|
||||
init_vgmstream_dc_str,
|
||||
init_vgmstream_dc_str_v2,
|
||||
init_vgmstream_xbox_stma,
|
||||
init_vgmstream_xbox_matx,
|
||||
init_vgmstream_de2,
|
||||
init_vgmstream_vs,
|
||||
init_vgmstream_dc_str,
|
||||
init_vgmstream_dc_str_v2,
|
||||
init_vgmstream_xbox_xmu,
|
||||
init_vgmstream_xbox_xvas,
|
||||
init_vgmstream_ngc_bh2pcm,
|
||||
@ -1889,6 +1891,9 @@ void describe_vgmstream(VGMSTREAM * vgmstream, char * desc, int length) {
|
||||
case meta_DC_STR:
|
||||
snprintf(temp,TEMPSIZE,"Sega Stream Asset Builder header");
|
||||
break;
|
||||
case meta_DC_STR_V2:
|
||||
snprintf(temp,TEMPSIZE,"variant of Sega Stream Asset Builder header");
|
||||
break;
|
||||
case meta_XBOX_XMU:
|
||||
snprintf(temp,TEMPSIZE,"XMU header");
|
||||
break;
|
||||
|
311
src/vgmstream.h
311
src/vgmstream.h
@ -28,12 +28,12 @@ typedef enum {
|
||||
/* 16-bit PCM */
|
||||
coding_PCM16BE, /* big endian 16-bit PCM */
|
||||
coding_PCM16LE, /* little endian 16-bit PCM */
|
||||
coding_PCM16LE_int, /* little endian 16-bit PCM with sample-level
|
||||
coding_PCM16LE_int, /* little endian 16-bit PCM with sample-level
|
||||
interleave handled by the decoder */
|
||||
|
||||
/* 8-bit PCM */
|
||||
coding_PCM8, /* 8-bit PCM */
|
||||
coding_PCM8_int, /* 8-Bit PCM with sample-level interleave handled
|
||||
coding_PCM8_int, /* 8-Bit PCM with sample-level interleave handled
|
||||
by the decoder */
|
||||
coding_PCM8_SB_int, /* 8-bit PCM, sign bit (others are 2's complement),
|
||||
sample-level interleave */
|
||||
@ -48,14 +48,14 @@ typedef enum {
|
||||
coding_NGC_DTK, /* NGC hardware disc ADPCM, called DTK, TRK or ADP */
|
||||
coding_G721, /* CCITT G.721 ADPCM */
|
||||
coding_NGC_AFC, /* NGC ADPCM, called AFC */
|
||||
coding_PSX, /* PSX & PS2 ADPCM */
|
||||
coding_PSX, /* PSX & PS2 ADPCM */
|
||||
coding_invert_PSX, /* PSX ADPCM with some weirdness */
|
||||
coding_PSX_badflags, /* with garbage in the flags byte */
|
||||
coding_FFXI, /* FF XI PSX-ish ADPCM */
|
||||
coding_XA, /* PSX CD-XA */
|
||||
coding_XBOX, /* XBOX IMA */
|
||||
coding_EAXA, /* EA/XA ADPCM */
|
||||
coding_EA_ADPCM, /* EA ADPCM */
|
||||
coding_XA, /* PSX CD-XA */
|
||||
coding_XBOX, /* XBOX IMA */
|
||||
coding_EAXA, /* EA/XA ADPCM */
|
||||
coding_EA_ADPCM, /* EA ADPCM */
|
||||
coding_NDS_PROCYON, /* NDS Procyon Studio ADPCM */
|
||||
|
||||
#ifdef VGM_USE_VORBIS
|
||||
@ -66,8 +66,8 @@ typedef enum {
|
||||
with smaple-level interleave handled by the
|
||||
decoder */
|
||||
coding_DVI_IMA, /* DVI (bare IMA, high nibble first), aka ADP4 */
|
||||
coding_INT_DVI_IMA, /* Interleaved DVI */
|
||||
coding_EACS_IMA,
|
||||
coding_INT_DVI_IMA, /* Interleaved DVI */
|
||||
coding_EACS_IMA,
|
||||
coding_IMA, /* bare IMA, low nibble first */
|
||||
coding_INT_IMA, /* */
|
||||
coding_WS, /* Westwood Studios' custom VBR ADPCM */
|
||||
@ -112,22 +112,22 @@ typedef enum {
|
||||
/* headered blocks */
|
||||
layout_ast_blocked, /* .ast STRM with BLCK blocks*/
|
||||
layout_halpst_blocked, /* blocks with HALPST-format header */
|
||||
layout_xa_blocked,
|
||||
layout_ea_blocked,
|
||||
layout_eacs_blocked,
|
||||
layout_caf_blocked,
|
||||
layout_xa_blocked,
|
||||
layout_ea_blocked,
|
||||
layout_eacs_blocked,
|
||||
layout_caf_blocked,
|
||||
layout_wsi_blocked,
|
||||
layout_str_snds_blocked,
|
||||
layout_ws_aud_blocked,
|
||||
layout_matx_blocked,
|
||||
layout_matx_blocked,
|
||||
layout_de2_blocked,
|
||||
layout_xvas_blocked,
|
||||
layout_vs_blocked,
|
||||
layout_emff_ps2_blocked,
|
||||
layout_emff_ngc_blocked,
|
||||
layout_gsb_blocked,
|
||||
layout_thp_blocked,
|
||||
layout_filp_blocked,
|
||||
layout_xvas_blocked,
|
||||
layout_vs_blocked,
|
||||
layout_emff_ps2_blocked,
|
||||
layout_emff_ngc_blocked,
|
||||
layout_gsb_blocked,
|
||||
layout_thp_blocked,
|
||||
layout_filp_blocked,
|
||||
|
||||
#if 0
|
||||
layout_strm_blocked, /* */
|
||||
@ -163,8 +163,8 @@ typedef enum {
|
||||
meta_DSP_STR, /* Conan .str files */
|
||||
meta_DSP_SADB, /* .sad */
|
||||
meta_DSP_WSI, /* .wsi */
|
||||
meta_DSP_AMTS, /* .amts */
|
||||
meta_DSP_WII_IDSP, /* .gcm with IDSP header */
|
||||
meta_DSP_AMTS, /* .amts */
|
||||
meta_DSP_WII_IDSP, /* .gcm with IDSP header */
|
||||
meta_DSP_WII_MUS, /* .mus */
|
||||
|
||||
/* Nintendo */
|
||||
@ -176,13 +176,13 @@ typedef enum {
|
||||
meta_RWAR, /* single-stream RWAR */
|
||||
meta_RWAV, /* contents of RWAR */
|
||||
meta_RSTM_SPM, /* RSTM with 44->22khz hack */
|
||||
meta_THP,
|
||||
meta_THP,
|
||||
meta_RSTM_shrunken, /* Atlus' mutant shortened RSTM */
|
||||
|
||||
/* CRI ADX */
|
||||
meta_ADX_03, /* ADX "type 03" */
|
||||
meta_ADX_04, /* ADX "type 04" */
|
||||
meta_ADX_05, /* ADX "type 05" */
|
||||
meta_ADX_05, /* ADX "type 05" */
|
||||
meta_AIX, /* CRI AIX */
|
||||
meta_AAX, /* CRI AAX */
|
||||
|
||||
@ -192,28 +192,28 @@ typedef enum {
|
||||
meta_RSF, /* Retro Studios RSF, no header (.rsf) */
|
||||
meta_HALPST, /* HAL Labs HALPST */
|
||||
meta_GCSW, /* GCSW (PCM) */
|
||||
meta_CFN, /* Namco CAF Audio File */
|
||||
meta_CFN, /* Namco CAF Audio File */
|
||||
|
||||
meta_PS2_SShd, /* .ADS with SShd header */
|
||||
meta_PS2_NPSF, /* Namco Production Sound File */
|
||||
meta_PS2_RXW, /* Sony Arc The Lad Sound File */
|
||||
meta_PS2_RAW, /* RAW Interleaved Format */
|
||||
meta_PS2_EXST, /* Shadow of Colossus EXST */
|
||||
meta_PS2_SVAG, /* Konami SVAG */
|
||||
meta_PS2_MIB, /* MIB File */
|
||||
meta_PS2_MIB_MIH, /* MIB File + MIH Header*/
|
||||
meta_PS2_MIC, /* KOEI MIC File */
|
||||
meta_PS2_VAGi, /* VAGi Interleaved File */
|
||||
meta_PS2_VAGp, /* VAGp Mono File */
|
||||
meta_PS2_VAGm, /* VAGp Mono File */
|
||||
meta_PS2_pGAV, /* VAGp with Little Endian Header */
|
||||
meta_PSX_GMS, /* GMS File (used in PS1 & PS2) */
|
||||
meta_PS2_STR, /* Pacman STR+STH files */
|
||||
meta_PS2_ILD, /* ILD File */
|
||||
meta_PS2_PNB, /* PsychoNauts Bgm File */
|
||||
meta_PSX_XA, /* CD-XA with RIFF header */
|
||||
meta_PS2_VAGs, /* VAG Stereo from Kingdom Hearts */
|
||||
meta_PS2_VPK, /* VPK Audio File */
|
||||
meta_PS2_SShd, /* .ADS with SShd header */
|
||||
meta_PS2_NPSF, /* Namco Production Sound File */
|
||||
meta_PS2_RXW, /* Sony Arc The Lad Sound File */
|
||||
meta_PS2_RAW, /* RAW Interleaved Format */
|
||||
meta_PS2_EXST, /* Shadow of Colossus EXST */
|
||||
meta_PS2_SVAG, /* Konami SVAG */
|
||||
meta_PS2_MIB, /* MIB File */
|
||||
meta_PS2_MIB_MIH, /* MIB File + MIH Header*/
|
||||
meta_PS2_MIC, /* KOEI MIC File */
|
||||
meta_PS2_VAGi, /* VAGi Interleaved File */
|
||||
meta_PS2_VAGp, /* VAGp Mono File */
|
||||
meta_PS2_VAGm, /* VAGp Mono File */
|
||||
meta_PS2_pGAV, /* VAGp with Little Endian Header */
|
||||
meta_PSX_GMS, /* GMS File (used in PS1 & PS2) */
|
||||
meta_PS2_STR, /* Pacman STR+STH files */
|
||||
meta_PS2_ILD, /* ILD File */
|
||||
meta_PS2_PNB, /* PsychoNauts Bgm File */
|
||||
meta_PSX_XA, /* CD-XA with RIFF header */
|
||||
meta_PS2_VAGs, /* VAG Stereo from Kingdom Hearts */
|
||||
meta_PS2_VPK, /* VPK Audio File */
|
||||
meta_PS2_BMDX, /* Beatmania thing */
|
||||
meta_PS2_IVB, /* Langrisser 3 IVB */
|
||||
meta_PS2_SVS, /* Square SVS */
|
||||
@ -222,108 +222,109 @@ typedef enum {
|
||||
meta_HGC1, /* Knights of the Temple 2 */
|
||||
meta_AUS, /* Variuos Capcom Games */
|
||||
meta_RWS, /* Variuos Konami Games */
|
||||
meta_FSB1, /* FMOD Sample Bank, version 1 */
|
||||
meta_FSB3, /* FMOD Sample Bank, version 3 */
|
||||
meta_FSB4, /* FMOD Sample Bank, version 4 */
|
||||
meta_RWX, /* Air Force Delta Storm (XBOX) */
|
||||
meta_XWB, /* King of Fighters (XBOX) */
|
||||
meta_XA30, /* Driver - Parallel Lines (PS2) */
|
||||
meta_MUSC, /* Spyro Games, possibly more */
|
||||
meta_MUSX_V004, /* Spyro Games, possibly more */
|
||||
meta_MUSX_V006, /* Spyro Games, possibly more */
|
||||
meta_MUSX_V010, /* Spyro Games, possibly more */
|
||||
meta_MUSX_V201, /* Sphinx and the cursed Mummy */
|
||||
meta_LEG, /* Legaia 2 */
|
||||
meta_FILP, /* Resident Evil - Dead Aim */
|
||||
meta_IKM, /* Zwei! */
|
||||
meta_SFS, /* Baroque */
|
||||
meta_BG00, /* Ibara, Mushihimesama */
|
||||
meta_PS2_RSTM, /* Midnight Club 3 */
|
||||
meta_PS2_KCES, /* Dance Dance Revolution */
|
||||
meta_PS2_DXH, /* Tokobot Plus - Myteries of the Karakuri */
|
||||
meta_PS2_PSH, /* Dawn of Mana - Seiken Densetsu 4 */
|
||||
meta_PCM, /* Ephemeral Fantasia, Lunar - Eternal Blue */
|
||||
meta_PS2_RKV, /* Legacy of Kain - Blood Omen 2 */
|
||||
meta_PS2_PSW, /* Rayman Raving Rabbids */
|
||||
meta_PS2_VAS, /* Pro Baseball Spirits 5 */
|
||||
meta_PS2_TEC, /* TECMO badflagged stream */
|
||||
meta_PS2_ENTH, /* Enthusia */
|
||||
meta_SDT, /* Baldur's Gate - Dark Alliance */
|
||||
meta_NGC_TYDSP, /* Ty - The Tasmanian Tiger */
|
||||
meta_NGC_SWD, /* Conflict - Desert Storm 1 & 2 */
|
||||
meta_CAPDSP, /* Capcom DSP Header */
|
||||
meta_DC_STR, /* Evil Dead */
|
||||
meta_NGC_BH2PCM, /* Bio Hazard 2 */
|
||||
meta_SAT_SAP, /* Bubble Symphony */
|
||||
meta_DC_IDVI, /* Eldorado Gate */
|
||||
meta_KRAW, /* Geometry Wars - Galaxies */
|
||||
meta_PS2_OMU, /* PS2 Int file with Header */
|
||||
meta_PS2_XA2, /* XA2 XG3 file */
|
||||
meta_IDSP, /* Chronicles of Narnia */
|
||||
meta_SPT_SPD, /* Variouis */
|
||||
meta_ISH_ISD, /* Various */
|
||||
meta_GSP_GSB, /* Various */
|
||||
meta_YDSP, /* WWE Day of Reckoning */
|
||||
meta_FSB1, /* FMOD Sample Bank, version 1 */
|
||||
meta_FSB3, /* FMOD Sample Bank, version 3 */
|
||||
meta_FSB4, /* FMOD Sample Bank, version 4 */
|
||||
meta_RWX, /* Air Force Delta Storm (XBOX) */
|
||||
meta_XWB, /* King of Fighters (XBOX) */
|
||||
meta_XA30, /* Driver - Parallel Lines (PS2) */
|
||||
meta_MUSC, /* Spyro Games, possibly more */
|
||||
meta_MUSX_V004, /* Spyro Games, possibly more */
|
||||
meta_MUSX_V006, /* Spyro Games, possibly more */
|
||||
meta_MUSX_V010, /* Spyro Games, possibly more */
|
||||
meta_MUSX_V201, /* Sphinx and the cursed Mummy */
|
||||
meta_LEG, /* Legaia 2 */
|
||||
meta_FILP, /* Resident Evil - Dead Aim */
|
||||
meta_IKM, /* Zwei! */
|
||||
meta_SFS, /* Baroque */
|
||||
meta_BG00, /* Ibara, Mushihimesama */
|
||||
meta_PS2_RSTM, /* Midnight Club 3 */
|
||||
meta_PS2_KCES, /* Dance Dance Revolution */
|
||||
meta_PS2_DXH, /* Tokobot Plus - Myteries of the Karakuri */
|
||||
meta_PS2_PSH, /* Dawn of Mana - Seiken Densetsu 4 */
|
||||
meta_PCM, /* Ephemeral Fantasia, Lunar - Eternal Blue */
|
||||
meta_PS2_RKV, /* Legacy of Kain - Blood Omen 2 */
|
||||
meta_PS2_PSW, /* Rayman Raving Rabbids */
|
||||
meta_PS2_VAS, /* Pro Baseball Spirits 5 */
|
||||
meta_PS2_TEC, /* TECMO badflagged stream */
|
||||
meta_PS2_ENTH, /* Enthusia */
|
||||
meta_SDT, /* Baldur's Gate - Dark Alliance */
|
||||
meta_NGC_TYDSP, /* Ty - The Tasmanian Tiger */
|
||||
meta_NGC_SWD, /* Conflict - Desert Storm 1 & 2 */
|
||||
meta_CAPDSP, /* Capcom DSP Header */
|
||||
meta_DC_STR, /* SEGA Stream Asset Builder */
|
||||
meta_DC_STR_V2, /* variant of SEGA Stream Asset Builder */
|
||||
meta_NGC_BH2PCM, /* Bio Hazard 2 */
|
||||
meta_SAT_SAP, /* Bubble Symphony */
|
||||
meta_DC_IDVI, /* Eldorado Gate */
|
||||
meta_KRAW, /* Geometry Wars - Galaxies */
|
||||
meta_PS2_OMU, /* PS2 Int file with Header */
|
||||
meta_PS2_XA2, /* XA2 XG3 file */
|
||||
meta_IDSP, /* Chronicles of Narnia */
|
||||
meta_SPT_SPD, /* Variouis */
|
||||
meta_ISH_ISD, /* Various */
|
||||
meta_GSP_GSB, /* Various */
|
||||
meta_YDSP, /* WWE Day of Reckoning */
|
||||
meta_FFCC_STR, /* Final Fantasy: Crystal Chronicles */
|
||||
|
||||
meta_IDSP2, /* Chronicles of Narnia */
|
||||
meta_WAA_WAC_WAD_WAM, /* Beyond Good & Evil */
|
||||
meta_GCA, /* Metal Slug Anthology */
|
||||
meta_MSVP, /* Popcap Hits */
|
||||
meta_NGC_SSM, /* Golden Gashbell Full Power */
|
||||
meta_PS2_JOE, /* Wall-E / Pixar games */
|
||||
meta_IDSP2, /* Chronicles of Narnia */
|
||||
meta_WAA_WAC_WAD_WAM, /* Beyond Good & Evil */
|
||||
meta_GCA, /* Metal Slug Anthology */
|
||||
meta_MSVP, /* Popcap Hits */
|
||||
meta_NGC_SSM, /* Golden Gashbell Full Power */
|
||||
meta_PS2_JOE, /* Wall-E / Pixar games */
|
||||
|
||||
meta_NGC_YMF, /* WWE WrestleMania X8 */
|
||||
meta_NGC_YMF, /* WWE WrestleMania X8 */
|
||||
meta_SADL, /* .sad */
|
||||
meta_PS2_CCC, /* Tokyo Xtreme Racer DRIFT 2 */
|
||||
meta_PSX_FAG, /* Jackie Chan - Stuntmaster */
|
||||
meta_PS2_MIHB, /* Merged MIH+MIB */
|
||||
meta_NGC_PDT, /* Mario Party 6 */
|
||||
meta_DC_ASD, /* Miss Moonligh */
|
||||
meta_NAOMI_SPSD, /* Guilty Gear X */
|
||||
|
||||
meta_RSD2VAG, /* RSD2VAG */
|
||||
meta_RSD2PCMB, /* RSD2PCMB */
|
||||
meta_RSD2XADP, /* RSD2XADP */
|
||||
meta_RSD3PCM, /* RSD3PCM */
|
||||
meta_RSD4PCMB, /* RSD4PCMB */
|
||||
meta_RSD4PCM, /* RSD4PCM */
|
||||
meta_RSD4VAG, /* RSD4VAG */
|
||||
meta_RSD6VAG, /* RSD6VAG */
|
||||
meta_RSD6WADP, /* RSD6WADP */
|
||||
meta_RSD6XADP, /* RSD6XADP */
|
||||
meta_PS2_CCC, /* Tokyo Xtreme Racer DRIFT 2 */
|
||||
meta_PSX_FAG, /* Jackie Chan - Stuntmaster */
|
||||
meta_PS2_MIHB, /* Merged MIH+MIB */
|
||||
meta_NGC_PDT, /* Mario Party 6 */
|
||||
meta_DC_ASD, /* Miss Moonligh */
|
||||
meta_NAOMI_SPSD, /* Guilty Gear X */
|
||||
|
||||
meta_RSD2VAG, /* RSD2VAG */
|
||||
meta_RSD2PCMB, /* RSD2PCMB */
|
||||
meta_RSD2XADP, /* RSD2XADP */
|
||||
meta_RSD3PCM, /* RSD3PCM */
|
||||
meta_RSD4PCMB, /* RSD4PCMB */
|
||||
meta_RSD4PCM, /* RSD4PCM */
|
||||
meta_RSD4VAG, /* RSD4VAG */
|
||||
meta_RSD6VAG, /* RSD6VAG */
|
||||
meta_RSD6WADP, /* RSD6WADP */
|
||||
meta_RSD6XADP, /* RSD6XADP */
|
||||
|
||||
meta_PS2_ASS, /* ASS */
|
||||
meta_PS2_SEG, /* Eragon */
|
||||
meta_NDS_STRM_FFTA2, /* Final Fantasy Tactics A2 */
|
||||
meta_STR_ASR, /* Donkey Kong Jet Race */
|
||||
meta_ZWDSP, /* Zack and Wiki */
|
||||
meta_VGS, /* Guitar Hero Encore - Rocks the 80s */
|
||||
meta_DC_WAV_DCS, /* Evil Twin - Cypriens Chronicles (DC) */
|
||||
meta_WII_SMP, /* Mushroom Men - The Spore Wars */
|
||||
meta_PS2_ASS, /* ASS */
|
||||
meta_PS2_SEG, /* Eragon */
|
||||
meta_NDS_STRM_FFTA2, /* Final Fantasy Tactics A2 */
|
||||
meta_STR_ASR, /* Donkey Kong Jet Race */
|
||||
meta_ZWDSP, /* Zack and Wiki */
|
||||
meta_VGS, /* Guitar Hero Encore - Rocks the 80s */
|
||||
meta_DC_WAV_DCS, /* Evil Twin - Cypriens Chronicles (DC) */
|
||||
meta_WII_SMP, /* Mushroom Men - The Spore Wars */
|
||||
meta_WII_SNG, /* Excite Trucks */
|
||||
meta_EMFF_PS2, /* Eidos Music File Format for PS2*/
|
||||
meta_EMFF_NGC, /* Eidos Music File Format for NGC/WII */
|
||||
|
||||
meta_XBOX_WAVM, /* XBOX WAVM File */
|
||||
meta_XBOX_RIFF, /* XBOX RIFF/WAVE File */
|
||||
meta_XBOX_WVS, /* XBOX WVS */
|
||||
meta_XBOX_STMA, /* XBOX STMA */
|
||||
meta_XBOX_MATX, /* XBOX MATX */
|
||||
meta_XBOX_XMU, /* XBOX XMU */
|
||||
meta_XBOX_XVAS, /* XBOX VAS */
|
||||
|
||||
meta_EAXA_R2, /* EA XA Release 2 */
|
||||
meta_EAXA_R3, /* EA XA Release 3 */
|
||||
meta_EAXA_PSX, /* EA with PSX ADPCM */
|
||||
meta_EACS_PC, /* EACS PC */
|
||||
meta_EACS_PSX, /* EACS PSX */
|
||||
meta_EACS_SAT, /* EACS SATURN */
|
||||
meta_EA_ADPCM, /* EA XA ADPCM */
|
||||
meta_EA_IMA, /* EA IMA */
|
||||
meta_EA_PCM, /* EA PCM */
|
||||
meta_EMFF_PS2, /* Eidos Music File Format for PS2*/
|
||||
meta_EMFF_NGC, /* Eidos Music File Format for NGC/WII */
|
||||
|
||||
meta_XBOX_WAVM, /* XBOX WAVM File */
|
||||
meta_XBOX_RIFF, /* XBOX RIFF/WAVE File */
|
||||
meta_XBOX_WVS, /* XBOX WVS */
|
||||
meta_XBOX_STMA, /* XBOX STMA */
|
||||
meta_XBOX_MATX, /* XBOX MATX */
|
||||
meta_XBOX_XMU, /* XBOX XMU */
|
||||
meta_XBOX_XVAS, /* XBOX VAS */
|
||||
|
||||
meta_EAXA_R2, /* EA XA Release 2 */
|
||||
meta_EAXA_R3, /* EA XA Release 3 */
|
||||
meta_EAXA_PSX, /* EA with PSX ADPCM */
|
||||
meta_EACS_PC, /* EACS PC */
|
||||
meta_EACS_PSX, /* EACS PSX */
|
||||
meta_EACS_SAT, /* EACS SATURN */
|
||||
meta_EA_ADPCM, /* EA XA ADPCM */
|
||||
meta_EA_IMA, /* EA IMA */
|
||||
meta_EA_PCM, /* EA PCM */
|
||||
|
||||
meta_RAW, /* RAW PCM file */
|
||||
meta_RAW, /* RAW PCM file */
|
||||
|
||||
meta_GENH, /* generic header */
|
||||
|
||||
@ -351,18 +352,18 @@ typedef enum {
|
||||
meta_NWA, /* Visual Art's NWA */
|
||||
meta_NWA_NWAINFOINI, /* NWA w/ NWAINFO.INI for looping */
|
||||
meta_NWA_GAMEEXEINI, /* NWA w/ Gameexe.ini for looping */
|
||||
meta_DVI, /* DVI Interleaved */
|
||||
meta_KCEY, /* KCEYCOMP */
|
||||
meta_DVI, /* DVI Interleaved */
|
||||
meta_KCEY, /* KCEYCOMP */
|
||||
meta_ACM, /* InterPlay ACM header */
|
||||
meta_MUS_ACM, /* MUS playlist of InterPlay ACM files */
|
||||
meta_DE2, /* Falcom (Gurumin) .de2 */
|
||||
meta_VS, /* Men in Black .vs */
|
||||
meta_VS, /* Men in Black .vs */
|
||||
meta_FFXI_BGW, /* FFXI BGW */
|
||||
meta_FFXI_SPW, /* FFXI SPW */
|
||||
meta_STS_WII, /* Shikigami No Shiro 3 STS Audio File */
|
||||
meta_PS2_P2BT, /* Pop'n'Music 7 Audio File */
|
||||
meta_PS2_GBTS, /* Pop'n'Music 9 Audio File */
|
||||
meta_NGC_IADP, /* Gamecube Interleave DSP */
|
||||
meta_STS_WII, /* Shikigami No Shiro 3 STS Audio File */
|
||||
meta_PS2_P2BT, /* Pop'n'Music 7 Audio File */
|
||||
meta_PS2_GBTS, /* Pop'n'Music 9 Audio File */
|
||||
meta_NGC_IADP, /* Gamecube Interleave DSP */
|
||||
|
||||
} meta_t;
|
||||
|
||||
@ -455,20 +456,20 @@ typedef struct {
|
||||
size_t loop_block_size; /* saved from current_block_size */
|
||||
off_t loop_next_block_offset; /* saved from next_block_offset */
|
||||
|
||||
uint8_t xa_channel; /* Selected XA Channel */
|
||||
int32_t xa_sector_length; /* XA block */
|
||||
uint8_t xa_channel; /* Selected XA Channel */
|
||||
int32_t xa_sector_length; /* XA block */
|
||||
int8_t get_high_nibble;
|
||||
|
||||
uint8_t ea_big_endian; /* Big Endian ? */
|
||||
uint8_t ea_compression_type;
|
||||
uint8_t ea_compression_version;
|
||||
uint8_t ea_platform;
|
||||
uint8_t ea_big_endian; /* Big Endian ? */
|
||||
uint8_t ea_compression_type;
|
||||
uint8_t ea_compression_version;
|
||||
uint8_t ea_platform;
|
||||
|
||||
int32_t ws_output_size; /* output bytes for this block */
|
||||
|
||||
void * start_vgmstream; /* a copy of the VGMSTREAM as it was at the beginning of the stream */
|
||||
|
||||
int32_t thpNextFrameSize;
|
||||
int32_t thpNextFrameSize;
|
||||
|
||||
/* Data the codec needs for the whole stream. This is for codecs too
|
||||
* different from vgmstream's structure to be reasonably shoehorned into
|
||||
|
Loading…
x
Reference in New Issue
Block a user