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_NOT_DETECTED,
19 FLASHCART_ERR_OUTDATED,
20 FLASHCART_ERR_SD_CARD,
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,
33
35typedef enum {
36 FLASHCART_SAVE_TYPE_NONE,
37 FLASHCART_SAVE_TYPE_EEPROM_4K,
38 FLASHCART_SAVE_TYPE_EEPROM_16K,
39 FLASHCART_SAVE_TYPE_SRAM,
40 FLASHCART_SAVE_TYPE_SRAM_BANKED,
41 FLASHCART_SAVE_TYPE_SRAM_128K,
42 FLASHCART_SAVE_TYPE_FLASHRAM,
43 FLASHCART_SAVE_TYPE_FLASHRAM_PKST2,
44 __FLASHCART_SAVE_TYPE_END
46
48typedef struct {
49 bool development_drive;
50 uint8_t disk_type;
51 bool bad_system_area_lbas[24];
52 uint8_t defect_tracks[16][12];
54
55typedef void flashcart_progress_callback_t (float progress);
56
58typedef struct {
60 flashcart_err_t (*init) (void);
62 flashcart_err_t (*deinit) (void);
64 bool (*has_feature) (flashcart_features_t feature);
66 flashcart_err_t (*load_rom) (char *rom_path, flashcart_progress_callback_t *progress);
68 flashcart_err_t (*load_file) (char *file_path, uint32_t rom_offset, uint32_t file_offset);
70 flashcart_err_t (*load_save) (char *save_path);
72 flashcart_err_t (*load_64dd_ipl) (char *ipl_path, flashcart_progress_callback_t *progress);
74 flashcart_err_t (*load_64dd_disk) (char *disk_path, flashcart_disk_parameters_t *disk_parameters);
76 flashcart_err_t (*set_save_type) (flashcart_save_type_t save_type);
78 flashcart_err_t (*set_save_writeback) (uint32_t *sectors);
80
81
82char *flashcart_convert_error_message (flashcart_err_t err);
83flashcart_err_t flashcart_init (void);
84flashcart_err_t flashcart_deinit (void);
85bool flashcart_has_feature (flashcart_features_t feature);
86flashcart_err_t flashcart_load_rom (char *rom_path, bool byte_swap, flashcart_progress_callback_t *progress);
87flashcart_err_t flashcart_load_file (char *file_path, uint32_t rom_offset, uint32_t file_offset);
88flashcart_err_t flashcart_load_save (char *save_path, flashcart_save_type_t save_type);
89flashcart_err_t flashcart_load_64dd_ipl (char *ipl_path, flashcart_progress_callback_t *progress);
90flashcart_err_t flashcart_load_64dd_disk (char *disk_path, flashcart_disk_parameters_t *disk_parameters);
91
92
93#endif
flashcart_err_t
Flashcart error enumeration.
Definition: flashcart.h:16
flashcart_save_type_t
Flashcart save type enumeration.
Definition: flashcart.h:35
flashcart_features_t
List of optional supported flashcart features.
Definition: flashcart.h:28
Flashcart Disk Parameter Structure.
Definition: flashcart.h:48
Flashcart Structure.
Definition: flashcart.h:58