blob: d042bc99eb56e16c48248f13a28bad44f6404e72 [file] [log] [blame]
/* GFX2mo5 - raw2mo5.c
* CloudStrife - 20080921
* Diffusé sous licence libre CeCILL v2
* Voire LICENCE
*/
#include <stdio.h>
#include <stdlib.h>
#include "libraw2mo5.h"
int main(int argc, char **argv)
{
FILE *inFile, *outFile;
unsigned char *inBuffer, *outBuffer;
unsigned long inSize;
unsigned short width;
unsigned short height;
unsigned char mode;
if((argc != 6) && (argc != 7))
{
printf("Utilisation : %s input_filename output_filename width height mode [registre9]\n",argv[0]);
printf("Exemple : Convertir une image en 176 sur 224 en mode 0 :\n");
printf("%s image.raw image.scr 176 224 0\n",argv[0]);
printf("Exemple : Convertir une image en 256 sur 128 en mode 1 avec R9 = 3 :\n");
printf("%s image.raw image.scr 256 128 1 3\n",argv[0]);
exit(0);
}
inFile = fopen(argv[1],"rb");
sscanf(argv[3],"%hud",&width);
sscanf(argv[4],"%hud",&height);
sscanf(argv[5],"%hhud",&mode);
if(mode > 3) printf("mode doit être compris entre 0 et 3");
mode = mode & 3;
if (inFile == NULL)
{
printf("Fichier Inexistant\n");
exit(1);
}
fseek(inFile, 0, SEEK_END);
inSize = ftell(inFile);
rewind(inFile);
if (inSize != (unsigned long)(width*height))
{
printf("Attention ! Mauvaise taille du fichier d'entré\n");
}
inBuffer = (unsigned char*)malloc(inSize);
if (inBuffer == NULL)
{
printf("Allocation inBuffer raté\n");
exit(3);
}
fread(inBuffer, 1, inSize, inFile);
fclose(inFile);
outBuffer = raw2mo5(inBuffer, 200, true, false);
outFile = fopen(argv[2], "wb");
fwrite(outBuffer, 1, 0x4000, outFile);
fclose(outFile);
free(inBuffer);
inBuffer = NULL;
free(outBuffer);
outBuffer = NULL;
return 0;
}