N64FlashcartMenu/src/flashcart/flashcart.h

46 lines
1.2 KiB
C
Raw Normal View History

2023-02-14 22:26:40 +01:00
#ifndef FLASHCART_H__
#define FLASHCART_H__
#include <stdbool.h>
#include <stdint.h>
typedef enum {
FLASHCART_OK,
2023-02-15 00:20:17 +01:00
FLASHCART_ERROR_UNSUPPORTED,
FLASHCART_ERROR_OUTDATED,
2023-02-14 22:26:40 +01:00
FLASHCART_ERROR_ARGS,
FLASHCART_ERROR_LOAD,
FLASHCART_ERROR_INT,
} flashcart_error_t;
typedef enum {
FLASHCART_SAVE_TYPE_NONE,
FLASHCART_SAVE_TYPE_EEPROM_4K,
FLASHCART_SAVE_TYPE_EEPROM_16K,
FLASHCART_SAVE_TYPE_SRAM,
FLASHCART_SAVE_TYPE_SRAM_BANKED,
FLASHCART_SAVE_TYPE_SRAM_128K,
FLASHCART_SAVE_TYPE_FLASHRAM,
__FLASHCART_SAVE_TYPE_END
} flashcart_save_type_t;
typedef struct {
2023-02-15 00:20:17 +01:00
flashcart_error_t (*init) (void);
flashcart_error_t (*deinit) (void);
2023-02-14 22:26:40 +01:00
flashcart_error_t (*load_rom) (char *rom_path);
flashcart_error_t (*load_save) (char *save_path);
flashcart_error_t (*set_save_type) (flashcart_save_type_t save_type);
flashcart_error_t (*set_save_writeback) (uint32_t *sectors);
} flashcart_t;
2023-02-15 00:20:17 +01:00
flashcart_error_t flashcart_init (void);
flashcart_error_t flashcart_deinit (void);
2023-02-14 22:26:40 +01:00
flashcart_error_t flashcart_load_rom (char *rom_path);
flashcart_error_t flashcart_load_save (char *save_path, flashcart_save_type_t save_type, bool save_writeback);
#endif