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,
31
33typedef enum {
34 FLASHCART_SAVE_TYPE_NONE,
35 FLASHCART_SAVE_TYPE_EEPROM_4K,
36 FLASHCART_SAVE_TYPE_EEPROM_16K,
37 FLASHCART_SAVE_TYPE_SRAM,
38 FLASHCART_SAVE_TYPE_SRAM_BANKED,
39 FLASHCART_SAVE_TYPE_SRAM_128K,
40 FLASHCART_SAVE_TYPE_FLASHRAM,
41 FLASHCART_SAVE_TYPE_FLASHRAM_PKST2,
42 __FLASHCART_SAVE_TYPE_END
44
45typedef struct {
46 bool development_drive;
47 uint8_t disk_type;
48 bool bad_system_area_lbas[24];
49 uint8_t defect_tracks[16][12];
51
52typedef void flashcart_progress_callback_t (float progress);
53
55typedef struct {
56 flashcart_err_t (*init) (void);
57 flashcart_err_t (*deinit) (void);
58 bool (*has_feature) (flashcart_features_t feature);
59 flashcart_err_t (*load_rom) (char *rom_path, flashcart_progress_callback_t *progress);
60 flashcart_err_t (*load_file) (char *file_path, uint32_t rom_offset, uint32_t file_offset);
61 flashcart_err_t (*load_save) (char *save_path);
62 flashcart_err_t (*load_64dd_ipl) (char *ipl_path, flashcart_progress_callback_t *progress);
63 flashcart_err_t (*load_64dd_disk) (char *disk_path, flashcart_disk_parameters_t *disk_parameters);
64 flashcart_err_t (*set_save_type) (flashcart_save_type_t save_type);
65 flashcart_err_t (*set_save_writeback) (uint32_t *sectors);
67
68
69char *flashcart_convert_error_message (flashcart_err_t err);
70flashcart_err_t flashcart_init (void);
71flashcart_err_t flashcart_deinit (void);
72bool flashcart_has_feature (flashcart_features_t feature);
73flashcart_err_t flashcart_load_rom (char *rom_path, bool byte_swap, flashcart_progress_callback_t *progress);
74flashcart_err_t flashcart_load_file (char *file_path, uint32_t rom_offset, uint32_t file_offset);
75flashcart_err_t flashcart_load_save (char *save_path, flashcart_save_type_t save_type);
76flashcart_err_t flashcart_load_64dd_ipl (char *ipl_path, flashcart_progress_callback_t *progress);
77flashcart_err_t flashcart_load_64dd_disk (char *disk_path, flashcart_disk_parameters_t *disk_parameters);
78
79
80#endif
flashcart_err_t
Flashcart error enumeration.
Definition: flashcart.h:16
flashcart_save_type_t
Flashcart save type enumeration.
Definition: flashcart.h:33
flashcart_features_t
List of optional supported flashcart features.
Definition: flashcart.h:28
Definition: flashcart.h:45
Flashcart Structure.
Definition: flashcart.h:55