/* GFX2mo5 - raw2mo5.c * CloudStrife - 20080921 * Diffusé sous licence libre CeCILL v2 * Voire LICENCE */ #include #include #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; }