5 static unsigned char buff[0x400000], buff_in[IN_SIZE];
7 int main(int argc, char *argv[])
14 fprintf(stderr, "usage:\n%s <sms ROM> <mx img>\n", argv[0]);
18 fi = fopen(argv[1], "rb");
20 fprintf(stderr, "can't open: %s\n", argv[1]);
24 fo = fopen(argv[2], "wb");
26 fprintf(stderr, "can't open: %s\n", argv[2]);
30 fseek(fi, 0, SEEK_END);
32 fseek(fi, 0, SEEK_SET);
35 fprintf(stderr, "ROMs > 32k won't work\n");
39 if (fread(buff_in, 1, size, fi) != size)
40 fprintf(stderr, "failed to read %s\n", argv[1]);
42 memset(buff, 0, sizeof(buff));
44 for (bsize = 1; bsize < size; bsize <<= 1)
47 for (i = 0, o = 0; o < sizeof(buff); i = (i + 1) & (bsize - 1), o += 2)
48 buff[o] = buff[o+1] = buff_in[i];
50 if (fwrite(buff, 1, 0x400000, fo) != 0x400000)
51 fprintf(stderr, "failed to write to %s\n", argv[2]);