4 #define MIO0_DIR "mio0files"
9 ROM_INVALID
, // not valid SM64 ROM
10 ROM_SM64_BS
, // SM64 byte-swapped (BADC)
11 ROM_SM64_BE
, // SM64 big-endian (ABCD)
12 ROM_SM64_LE
, // SM64 little-endian
13 ROM_SM64_BE_EXT
, // SM64 big-endian, extended
29 unsigned int ext_size
;
31 unsigned int alignment
;
36 // determine ROM type based on data
37 // buf: buffer containing raw SM64 ROM file data
38 // length: length of 'buf'
39 // returns SM64 ROM type or invalid
40 rom_type
sm64_rom_type(unsigned char *buf
, unsigned int length
);
42 // determine SM64 ROM type based on cksum data
43 // buf: buffer containing raw SM64 ROM file data
44 // returns SM64 ROM version or unknown
45 rom_version
sm64_rom_version(unsigned char *buf
);
47 // find and decompress all MIO0 blocks
48 // config: configuration to determine alignment, padding and size
49 // in_buf: buffer containing entire contents of SM64 data in big endian
50 // length: length of in_buf
51 // out_buf: buffer containing extended SM64
52 void sm64_decompress_mio0(const sm64_config
*config
,
53 unsigned char *in_buf
,
54 unsigned int in_length
,
55 unsigned char *out_buf
);
57 // update N64 header checksums
58 // buf: buffer containing ROM data
59 // checksums are written into the buffer
60 void sm64_update_checksums(unsigned char *buf
);