N64FlashcartMenu
Loading...
Searching...
No Matches
flashcart.h
Go to the documentation of this file.
1
7#ifndef FLASHCART_H__
8#define FLASHCART_H__
9
10
11#include <stdbool.h>
12#include <stdint.h>
13
14
16typedef enum {
17 FLASHCART_OK,
18 FLASHCART_ERR_OUTDATED,
19 FLASHCART_ERR_SD_CARD,
20 FLASHCART_ERR_BBFS,
21 FLASHCART_ERR_ARGS,
22 FLASHCART_ERR_LOAD,
23 FLASHCART_ERR_INT,
24 FLASHCART_ERR_FUNCTION_NOT_SUPPORTED,
26
28typedef enum {
29 FLASHCART_FEATURE_64DD,
30 FLASHCART_FEATURE_RTC,
31 FLASHCART_FEATURE_USB,
32 FLASHCART_FEATURE_AUTO_CIC,
33 FLASHCART_FEATURE_AUTO_REGION,
34 FLASHCART_FEATURE_DIAGNOSTIC_DATA,
35 FLASHCART_FEATURE_BIOS_UPDATE_FROM_MENU,
36 FLASHCART_FEATURE_SAVE_WRITEBACK
38
40typedef enum {
41 FLASHCART_SAVE_TYPE_NONE,
42 FLASHCART_SAVE_TYPE_EEPROM_4KBIT,
43 FLASHCART_SAVE_TYPE_EEPROM_16KBIT,
44 FLASHCART_SAVE_TYPE_SRAM_256KBIT,
45 FLASHCART_SAVE_TYPE_SRAM_BANKED,
46 FLASHCART_SAVE_TYPE_SRAM_1MBIT,
47 FLASHCART_SAVE_TYPE_FLASHRAM_1MBIT,
48 FLASHCART_SAVE_TYPE_FLASHRAM_PKST2,
49 __FLASHCART_SAVE_TYPE_END
51
53typedef struct {
54 bool development_drive;
55 uint8_t disk_type;
56 bool bad_system_area_lbas[24];
57 uint8_t defect_tracks[16][12];
59
61typedef struct {
62 uint16_t major;
63 uint16_t minor;
64 uint32_t revision;
66
67typedef void flashcart_progress_callback_t (float progress);
68
70typedef struct {
72 flashcart_err_t (*init) (void);
74 flashcart_err_t (*deinit) (void);
76 bool (*has_feature) (flashcart_features_t feature);
78 flashcart_firmware_version_t (*get_firmware_version) (void);
80 flashcart_err_t (*load_rom) (char *rom_path, flashcart_progress_callback_t *progress);
82 flashcart_err_t (*load_file) (char *file_path, uint32_t rom_offset, uint32_t file_offset);
84 flashcart_err_t (*load_save) (char *save_path);
86 flashcart_err_t (*load_64dd_ipl) (char *ipl_path, flashcart_progress_callback_t *progress);
88 flashcart_err_t (*load_64dd_disk) (char *disk_path, flashcart_disk_parameters_t *disk_parameters);
90 flashcart_err_t (*set_save_type) (flashcart_save_type_t save_type);
92 flashcart_err_t (*set_save_writeback) (char *save_path);
94
95
96char *flashcart_convert_error_message (flashcart_err_t err);
97flashcart_err_t flashcart_init (const char **storage_prefix);
98flashcart_err_t flashcart_deinit (void);
99bool flashcart_has_feature (flashcart_features_t feature);
100flashcart_firmware_version_t flashcart_get_firmware_version (void);
101flashcart_err_t flashcart_load_rom (char *rom_path, bool byte_swap, flashcart_progress_callback_t *progress);
102flashcart_err_t flashcart_load_file (char *file_path, uint32_t rom_offset, uint32_t file_offset);
103flashcart_err_t flashcart_load_save (char *save_path, flashcart_save_type_t save_type);
104flashcart_err_t flashcart_load_64dd_ipl (char *ipl_path, flashcart_progress_callback_t *progress);
105flashcart_err_t flashcart_load_64dd_disk (char *disk_path, flashcart_disk_parameters_t *disk_parameters);
106
107
108#endif
flashcart_err_t
Flashcart error enumeration.
Definition flashcart.h:16
flashcart_save_type_t
Flashcart save type enumeration.
Definition flashcart.h:40
flashcart_features_t
List of optional supported flashcart features.
Definition flashcart.h:28
Flashcart Disk Parameter Structure.
Definition flashcart.h:53
Flashcart Firmware version Structure.
Definition flashcart.h:61
Flashcart Structure.
Definition flashcart.h:70