mirror of
https://github.com/raphnet/gc_n64_usb-v3
synced 2024-11-15 13:45:02 -05:00
39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
#ifndef _mempak_h__
|
|
#define _mempak_h__
|
|
|
|
#define MEMPAK_MEM_SIZE 0x8000
|
|
#define MEMPAK_NUM_NOTES 16
|
|
|
|
#define MAX_NOTE_COMMENT_SIZE 257 // including 0 termination
|
|
|
|
#define MPK_FORMAT_INVALID 0
|
|
#define MPK_FORMAT_MPK 1
|
|
#define MPK_FORMAT_MPK4 2 // MPK + 3 times 32kB padding
|
|
#define MPK_FORMAT_N64 3
|
|
|
|
typedef struct mempak_structure
|
|
{
|
|
unsigned char data[MEMPAK_MEM_SIZE];
|
|
unsigned char file_format;
|
|
|
|
char note_comments[MEMPAK_NUM_NOTES][MAX_NOTE_COMMENT_SIZE];
|
|
} mempak_structure_t;
|
|
|
|
mempak_structure_t *mempak_new(void);
|
|
mempak_structure_t *mempak_loadFromFile(const char *filename);
|
|
|
|
int mempak_saveToFile(mempak_structure_t *mpk, const char *dst_filename, unsigned char format);
|
|
int mempak_exportNote(mempak_structure_t *mpk, int note_id, const char *dst_filename);
|
|
int mempak_importNote(mempak_structure_t *mpk, const char *notefile, int dst_note_id, int *note_id);
|
|
void mempak_free(mempak_structure_t *mpk);
|
|
|
|
int mempak_getFilenameFormat(const char *filename);
|
|
int mempak_string2format(const char *str);
|
|
const char *mempak_format2string(int fmt);
|
|
int mempak_hexdump(mempak_structure_t *pak);
|
|
|
|
#include "mempak_fs.h"
|
|
|
|
#endif // _mempak_h__
|
|
|