Fixed invalid encoding on string literal
This commit is contained in:
parent
37d37cb102
commit
51e31fe4cb
|
@ -31,7 +31,7 @@ int main( int argc, char *argv[] )
|
||||||
int sz;
|
int sz;
|
||||||
unsigned int samp_freq;
|
unsigned int samp_freq;
|
||||||
unsigned int data_size;
|
unsigned int data_size;
|
||||||
|
|
||||||
if(argc < 3)
|
if(argc < 3)
|
||||||
{
|
{
|
||||||
printf("vag2wav - Convert a PlayStation VAG sound file to a WAV file\n");
|
printf("vag2wav - Convert a PlayStation VAG sound file to a WAV file\n");
|
||||||
|
@ -40,54 +40,54 @@ int main( int argc, char *argv[] )
|
||||||
printf("This utility is based on PSX VAG-Depack by bITmASTER\n");
|
printf("This utility is based on PSX VAG-Depack by bITmASTER\n");
|
||||||
return( -1 );
|
return( -1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
vag = fopen( argv[1], "rb" );
|
vag = fopen( argv[1], "rb" );
|
||||||
|
|
||||||
fread(vag_name, sizeof(char), 4, vag);
|
fread(vag_name, sizeof(char), 4, vag);
|
||||||
|
|
||||||
if(vag == NULL)
|
if(vag == NULL)
|
||||||
{
|
{
|
||||||
printf("Can't open %s. Aborting.\n", argv[1]);
|
printf("Can't open %s. Aborting.\n", argv[1]);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(strncmp(vag_name, "VAGp", 4))
|
if(strncmp(vag_name, "VAGp", 4))
|
||||||
{
|
{
|
||||||
printf("%s is not in VAG format. Aborting.\n", argv[1]);
|
printf("%s is not in VAG format. Aborting.\n", argv[1]);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
fseek(vag, 4, SEEK_SET);
|
fseek(vag, 4, SEEK_SET);
|
||||||
i = fgetc(vag) << 24;
|
i = fgetc(vag) << 24;
|
||||||
i |= fgetc(vag) << 16;
|
i |= fgetc(vag) << 16;
|
||||||
i |= fgetc(vag) << 8;
|
i |= fgetc(vag) << 8;
|
||||||
i |= fgetc(vag);
|
i |= fgetc(vag);
|
||||||
|
|
||||||
printf("Version: %x\n", i);
|
printf("Version: %x\n", i);
|
||||||
|
|
||||||
fseek(vag, 12, SEEK_SET);
|
fseek(vag, 12, SEEK_SET);
|
||||||
data_size = fgetc(vag) << 24;
|
data_size = fgetc(vag) << 24;
|
||||||
data_size |= fgetc(vag) << 16;
|
data_size |= fgetc(vag) << 16;
|
||||||
data_size |= fgetc(vag) << 8;
|
data_size |= fgetc(vag) << 8;
|
||||||
data_size |= fgetc(vag);
|
data_size |= fgetc(vag);
|
||||||
|
|
||||||
printf("Data size: %d bytes\n", data_size);
|
printf("Data size: %d bytes\n", data_size);
|
||||||
|
|
||||||
fseek(vag, 32, SEEK_SET);
|
fseek(vag, 32, SEEK_SET);
|
||||||
fread(vag_name, sizeof(char), 16, vag);
|
fread(vag_name, sizeof(char), 16, vag);
|
||||||
vag_name[16] = 0;
|
vag_name[16] = 0;
|
||||||
|
|
||||||
printf("Name: %s\n", vag_name);
|
printf("Name: %s\n", vag_name);
|
||||||
|
|
||||||
fseek(vag, 16, SEEK_SET);
|
fseek(vag, 16, SEEK_SET);
|
||||||
|
|
||||||
samp_freq = fgetc(vag)<<24;
|
samp_freq = fgetc(vag)<<24;
|
||||||
samp_freq|=fgetc(vag)<<16;
|
samp_freq|=fgetc(vag)<<16;
|
||||||
samp_freq|=fgetc(vag)<<8;
|
samp_freq|=fgetc(vag)<<8;
|
||||||
samp_freq|=fgetc(vag);
|
samp_freq|=fgetc(vag);
|
||||||
|
|
||||||
printf("Sampling frequency: %d\n", samp_freq);
|
printf("Sampling frequency: %d\n", samp_freq);
|
||||||
|
|
||||||
fseek( vag, 64, SEEK_SET );
|
fseek( vag, 64, SEEK_SET );
|
||||||
|
|
||||||
/* strcpy( fname, argv[1] );
|
/* strcpy( fname, argv[1] );
|
||||||
|
@ -95,27 +95,27 @@ int main( int argc, char *argv[] )
|
||||||
p++;
|
p++;
|
||||||
strcpy( p, "PCM" );*/
|
strcpy( p, "PCM" );*/
|
||||||
pcm = fopen( argv[2], "wb" );
|
pcm = fopen( argv[2], "wb" );
|
||||||
|
|
||||||
if ( pcm == NULL ) {
|
if ( pcm == NULL ) {
|
||||||
printf( "can´t write output file\n" );
|
printf( "can't write output file\n" );
|
||||||
return( -8 );
|
return( -8 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Write header chunk
|
// Write header chunk
|
||||||
fprintf(pcm, "RIFF");
|
fprintf(pcm, "RIFF");
|
||||||
// Skip file size field for now
|
// Skip file size field for now
|
||||||
fseek(pcm, 4, SEEK_CUR);
|
fseek(pcm, 4, SEEK_CUR);
|
||||||
|
|
||||||
fprintf(pcm, "WAVE");
|
fprintf(pcm, "WAVE");
|
||||||
// Write fmt chunk
|
// Write fmt chunk
|
||||||
fprintf(pcm, "fmt ");
|
fprintf(pcm, "fmt ");
|
||||||
// Write chunk 1 size in little endian format
|
// Write chunk 1 size in little endian format
|
||||||
fputc(0x10, pcm);
|
fputc(0x10, pcm);
|
||||||
fputc(0, pcm);
|
fputc(0, pcm);
|
||||||
fputc(0, pcm);
|
fputc(0, pcm);
|
||||||
fputc(0, pcm);
|
fputc(0, pcm);
|
||||||
// Write audio format (1 = PCM)
|
// Write audio format (1 = PCM)
|
||||||
fputc(1, pcm);
|
fputc(1, pcm);
|
||||||
fputc(0, pcm);
|
fputc(0, pcm);
|
||||||
// Number of channels (1)
|
// Number of channels (1)
|
||||||
|
@ -144,7 +144,7 @@ int main( int argc, char *argv[] )
|
||||||
|
|
||||||
// Skip SubChunk2Size, we will return to it later
|
// Skip SubChunk2Size, we will return to it later
|
||||||
fseek(pcm, 4, SEEK_CUR);
|
fseek(pcm, 4, SEEK_CUR);
|
||||||
|
|
||||||
// Now write data...
|
// Now write data...
|
||||||
|
|
||||||
while( ftell(vag) < (data_size+48)) {
|
while( ftell(vag) < (data_size+48)) {
|
||||||
|
@ -153,7 +153,7 @@ int main( int argc, char *argv[] )
|
||||||
predict_nr >>= 4;
|
predict_nr >>= 4;
|
||||||
flags = fgetc( vag ); // flags
|
flags = fgetc( vag ); // flags
|
||||||
if ( flags == 7 )
|
if ( flags == 7 )
|
||||||
break;
|
break;
|
||||||
for ( i = 0; i < 28; i += 2 ) {
|
for ( i = 0; i < 28; i += 2 ) {
|
||||||
d = fgetc( vag );
|
d = fgetc( vag );
|
||||||
s = ( d & 0xf ) << 12;
|
s = ( d & 0xf ) << 12;
|
||||||
|
@ -165,7 +165,7 @@ int main( int argc, char *argv[] )
|
||||||
s |= 0xffff0000;
|
s |= 0xffff0000;
|
||||||
samples[i+1] = (double) ( s >> shift_factor );
|
samples[i+1] = (double) ( s >> shift_factor );
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( i = 0; i < 28; i++ ) {
|
for ( i = 0; i < 28; i++ ) {
|
||||||
samples[i] = samples[i] + s_1 * f[predict_nr][0] + s_2 * f[predict_nr][1];
|
samples[i] = samples[i] + s_1 * f[predict_nr][0] + s_2 * f[predict_nr][1];
|
||||||
s_2 = s_1;
|
s_2 = s_1;
|
||||||
|
@ -175,26 +175,26 @@ int main( int argc, char *argv[] )
|
||||||
fputc( d >> 8, pcm );
|
fputc( d >> 8, pcm );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get file size
|
// Get file size
|
||||||
sz = ftell(pcm);
|
sz = ftell(pcm);
|
||||||
|
|
||||||
// Now write ChunkSize
|
// Now write ChunkSize
|
||||||
fseek(pcm, 4, SEEK_SET);
|
fseek(pcm, 4, SEEK_SET);
|
||||||
|
|
||||||
fputc((sz-8) & 0xff, pcm);
|
fputc((sz-8) & 0xff, pcm);
|
||||||
fputc(((sz-8)>>8)&0xff, pcm);
|
fputc(((sz-8)>>8)&0xff, pcm);
|
||||||
fputc(((sz-8)>>16)&0xff,pcm);
|
fputc(((sz-8)>>16)&0xff,pcm);
|
||||||
fputc(((sz-8)>>24)&0xff,pcm);
|
fputc(((sz-8)>>24)&0xff,pcm);
|
||||||
|
|
||||||
// Now write Subchunk2Size
|
// Now write Subchunk2Size
|
||||||
fseek(pcm, 40, SEEK_SET);
|
fseek(pcm, 40, SEEK_SET);
|
||||||
|
|
||||||
fputc((sz-44) & 0xff, pcm);
|
fputc((sz-44) & 0xff, pcm);
|
||||||
fputc(((sz-44)>>8)&0xff, pcm);
|
fputc(((sz-44)>>8)&0xff, pcm);
|
||||||
fputc(((sz-44)>>16)&0xff,pcm);
|
fputc(((sz-44)>>16)&0xff,pcm);
|
||||||
fputc(((sz-44)>>24)&0xff,pcm);
|
fputc(((sz-44)>>24)&0xff,pcm);
|
||||||
|
|
||||||
fclose( pcm );
|
fclose( pcm );
|
||||||
fclose( vag );
|
fclose( vag );
|
||||||
return( 0 );
|
return( 0 );
|
||||||
|
|
Loading…
Reference in New Issue