/[pcsx2_0.9.7]/trunk/fps2bios/romdir.c
ViewVC logotype

Contents of /trunk/fps2bios/romdir.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 31 - (show annotations) (download)
Tue Sep 7 03:24:11 2010 UTC (9 years, 2 months ago) by william
File MIME type: text/plain
File size: 1798 byte(s)
committing r3113 initial commit again...
1 /***************************************************************
2 * romdir.c, based over Alex Lau (http://alexlau.8k.com) RomDir *
3 ****************************************************************/
4 #include <stdio.h>
5 #include <string.h>
6 #include <ctype.h>
7 #include <sys/types.h>
8 #include <sys/stat.h>
9
10 #define MAXFILES 200
11 #define DIRENTRY_SIZE 16
12 #define BUFFSIZE 16384
13
14 struct __attribute__ ((__packed__)) romdir {
15 /*following variable must place in designed order*/
16 char fileName[10];
17 unsigned short extInfoSize;
18 unsigned long fileSize;
19 } rd;
20
21 int main(int argc, char *argv[]) {
22 struct stat buf;
23 FILE *romdir;
24 FILE *extinfo;
25 int i, j;
26
27 printf("fps2bios romdir generator\n");
28 if (argc < 2){
29 printf("usage: %s infile1 [infile2...]\n", argv[0]);
30 return 1;
31 }
32
33 romdir = fopen("ROMDIR", "wb");
34 if (romdir == NULL) {
35 printf("failed to create ROMDIR\n");
36 return 1;
37 }
38
39 extinfo = fopen("EXTINFO", "wb");
40 if (extinfo == NULL) {
41 printf("failed to create EXTINFO\n");
42 return 1;
43 }
44
45 for (i=1; i<argc; i++) {
46 memset(&rd, 0, sizeof(rd));
47 if (strcmp(argv[i], "ROMDIR") == 0) {
48 strncpy(rd.fileName, argv[i], 9);
49 rd.extInfoSize = 0;
50 rd.fileSize = (argc-1)*16+16;
51 fwrite(&rd, 1, 16, romdir);
52 continue;
53 }
54 if (stat(argv[i], &buf) == -1) {
55 printf("warning: %s file is missing\n", argv[i]);
56 continue;
57 }
58 for (j=0; j<9; j++) {
59 if (argv[i][j] == ',' || argv[i][j] == 0) break;
60 rd.fileName[j] = argv[i][j];
61 }
62 memset(rd.fileName+j, 0, 10-j);
63 rd.fileSize = buf.st_size;
64
65 if (argv[i][j] == ',') {
66 // for (j=0; j<256; j++) {
67 // }
68 // rd.extInfoSize+= j;
69 } else { // no extInfo
70 rd.extInfoSize = 0;
71 }
72
73 fwrite(&rd, 1, 16, romdir);
74 }
75 memset(&rd, 0, sizeof(rd));
76 fwrite(&rd, 1, 16, romdir);
77
78 fclose(romdir);
79 fclose(extinfo);
80
81 return 0;
82 }

  ViewVC Help
Powered by ViewVC 1.1.22