1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
/* gcc -m32 -I.. -DMKF_INFO=1 parse_mkf.c ../mkf.c ../mkf_00455040.c -o parse_mkf */
#include <stdio.h>
#include <stdint.h>
#include "mkf.h"
struct mkf
{
FILE *handle;
void *data;
};
int pixel_fmt = 1;
extern struct mkf mkf_stdata[];
int mkf_nchunks(int idx);
int main(int argc, char *argv[])
{
if (argc < 2)
return 1;
int mkf = load_mkf(argv[1]);
FILE *fp = mkf_stdata[mkf].handle;
int nchunks = mkf_nchunks(mkf);
uint32_t *data = mkf_stdata[mkf].data;
for (int i = 0; i < nchunks; i++) {
printf("chunk %d: offset = 0x%08x\n", i, data[i]);
fseek(fp, data[i], SEEK_SET);
uint32_t meta[4];
fread(meta, 4, 4, fp);
printf("real size = %d, original size = %d, gdata offset = 0x%08x, gsize = %d\n",
meta[0], meta[1], meta[2], meta[3]);
}
unload_mkf(mkf);
}
|