Fixed invalid encoding on string literal

This commit is contained in:
Xavi Del Campo 2020-01-31 22:16:02 +01:00
parent 37d37cb102
commit 51e31fe4cb
1 changed files with 33 additions and 33 deletions

View File

@ -31,7 +31,7 @@ int main( int argc, char *argv[] )
int sz;
unsigned int samp_freq;
unsigned int data_size;
if(argc < 3)
{
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");
return( -1 );
}
vag = fopen( argv[1], "rb" );
fread(vag_name, sizeof(char), 4, vag);
if(vag == NULL)
{
printf("Can't open %s. Aborting.\n", argv[1]);
return -1;
}
if(strncmp(vag_name, "VAGp", 4))
{
printf("%s is not in VAG format. Aborting.\n", argv[1]);
return -1;
}
fseek(vag, 4, SEEK_SET);
i = fgetc(vag) << 24;
i |= fgetc(vag) << 16;
i |= fgetc(vag) << 8;
i |= fgetc(vag);
printf("Version: %x\n", i);
fseek(vag, 12, SEEK_SET);
data_size = fgetc(vag) << 24;
data_size |= fgetc(vag) << 16;
data_size |= fgetc(vag) << 8;
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);
fread(vag_name, sizeof(char), 16, vag);
vag_name[16] = 0;
printf("Name: %s\n", vag_name);
fseek(vag, 16, SEEK_SET);
samp_freq = fgetc(vag)<<24;
samp_freq|=fgetc(vag)<<16;
samp_freq|=fgetc(vag)<<8;
samp_freq|=fgetc(vag);
printf("Sampling frequency: %d\n", samp_freq);
fseek( vag, 64, SEEK_SET );
/* strcpy( fname, argv[1] );
@ -95,27 +95,27 @@ int main( int argc, char *argv[] )
p++;
strcpy( p, "PCM" );*/
pcm = fopen( argv[2], "wb" );
if ( pcm == NULL ) {
printf( "can´t write output file\n" );
printf( "can't write output file\n" );
return( -8 );
}
// Write header chunk
// Write header chunk
fprintf(pcm, "RIFF");
// Skip file size field for now
fseek(pcm, 4, SEEK_CUR);
fprintf(pcm, "WAVE");
fprintf(pcm, "WAVE");
// Write fmt chunk
fprintf(pcm, "fmt ");
// Write chunk 1 size in little endian format
// Write chunk 1 size in little endian format
fputc(0x10, pcm);
fputc(0, pcm);
fputc(0, pcm);
fputc(0, pcm);
// Write audio format (1 = PCM)
// Write audio format (1 = PCM)
fputc(1, pcm);
fputc(0, pcm);
// Number of channels (1)
@ -144,7 +144,7 @@ int main( int argc, char *argv[] )
// Skip SubChunk2Size, we will return to it later
fseek(pcm, 4, SEEK_CUR);
// Now write data...
while( ftell(vag) < (data_size+48)) {
@ -153,7 +153,7 @@ int main( int argc, char *argv[] )
predict_nr >>= 4;
flags = fgetc( vag ); // flags
if ( flags == 7 )
break;
break;
for ( i = 0; i < 28; i += 2 ) {
d = fgetc( vag );
s = ( d & 0xf ) << 12;
@ -165,7 +165,7 @@ int main( int argc, char *argv[] )
s |= 0xffff0000;
samples[i+1] = (double) ( s >> shift_factor );
}
for ( i = 0; i < 28; i++ ) {
samples[i] = samples[i] + s_1 * f[predict_nr][0] + s_2 * f[predict_nr][1];
s_2 = s_1;
@ -175,26 +175,26 @@ int main( int argc, char *argv[] )
fputc( d >> 8, pcm );
}
}
// Get file size
// Get file size
sz = ftell(pcm);
// Now write ChunkSize
fseek(pcm, 4, SEEK_SET);
fputc((sz-8) & 0xff, pcm);
fputc(((sz-8)>>8)&0xff, pcm);
fputc(((sz-8)>>16)&0xff,pcm);
fputc(((sz-8)>>24)&0xff,pcm);
// Now write Subchunk2Size
fseek(pcm, 40, SEEK_SET);
fputc((sz-44) & 0xff, pcm);
fputc(((sz-44)>>8)&0xff, pcm);
fputc(((sz-44)>>16)&0xff,pcm);
fputc(((sz-44)>>24)&0xff,pcm);
fputc(((sz-44)>>24)&0xff,pcm);
fclose( pcm );
fclose( vag );
return( 0 );