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
46typedef struct {
47 bool development_drive;
48 uint8_t disk_type;
49 bool bad_system_area_lbas[24];
50 uint8_t defect_tracks[16][12];
52
53typedef void flashcart_progress_callback_t (float progress);
54
56typedef struct {
58 flashcart_err_t (*init) (void);
60 flashcart_err_t (*deinit) (void);
62 bool (*has_feature) (flashcart_features_t feature);
64 flashcart_err_t (*load_rom) (char *rom_path, flashcart_progress_callback_t *progress);
66 flashcart_err_t (*load_file) (char *file_path, uint32_t rom_offset, uint32_t file_offset);
68 flashcart_err_t (*load_save) (char *save_path);
70 flashcart_err_t (*load_64dd_ipl) (char *ipl_path, flashcart_progress_callback_t *progress);
72 flashcart_err_t (*load_64dd_disk) (char *disk_path, flashcart_disk_parameters_t *disk_parameters);
74 flashcart_err_t (*set_save_type) (flashcart_save_type_t save_type);
76 flashcart_err_t (*set_save_writeback) (uint32_t *sectors);
78
79
80char *flashcart_convert_error_message (flashcart_err_t err);
81flashcart_err_t flashcart_init (void);
82flashcart_err_t flashcart_deinit (void);
83bool flashcart_has_feature (flashcart_features_t feature);
84flashcart_err_t flashcart_load_rom (char *rom_path, bool byte_swap, flashcart_progress_callback_t *progress);
85flashcart_err_t flashcart_load_file (char *file_path, uint32_t rom_offset, uint32_t file_offset);
86flashcart_err_t flashcart_load_save (char *save_path, flashcart_save_type_t save_type);
87flashcart_err_t flashcart_load_64dd_ipl (char *ipl_path, flashcart_progress_callback_t *progress);
88flashcart_err_t flashcart_load_64dd_disk (char *disk_path, flashcart_disk_parameters_t *disk_parameters);
89
90
91#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
Flashcart Disk Parameter Structure.
Definition: flashcart.h:46
Flashcart Structure.
Definition: flashcart.h:56