diff options
author | Autechre | 2020-09-09 01:54:33 +0200 |
---|---|---|
committer | GitHub | 2020-09-09 01:54:33 +0200 |
commit | 4a2848af48359a6c06ceb0f38da2051088536f04 (patch) | |
tree | 637dedf3897396fcc44ea9c970711c9c59e87ab0 /gba_memory.h | |
parent | e4b12f434055fc703e80d18cbf350582877802d0 (diff) | |
parent | a3725fd81fbd3c779753aea351efeb0193a56ac9 (diff) | |
download | picogpsp-4a2848af48359a6c06ceb0f38da2051088536f04.tar.gz picogpsp-4a2848af48359a6c06ceb0f38da2051088536f04.tar.bz2 picogpsp-4a2848af48359a6c06ceb0f38da2051088536f04.zip |
Merge pull request #75 from negativeExponent/use_libretro_save_api
add optional support for backup saves using libretro api
Diffstat (limited to 'gba_memory.h')
-rw-r--r-- | gba_memory.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/gba_memory.h b/gba_memory.h index 630c622..f1243b5 100644 --- a/gba_memory.h +++ b/gba_memory.h @@ -21,6 +21,7 @@ #define MEMORY_H #include "libretro.h" +extern int use_libretro_save_method; typedef enum { @@ -215,6 +216,62 @@ extern flash_device_id_type flash_device_id; extern const u8 *state_mem_read_ptr; extern u8 *state_mem_write_ptr; +typedef enum +{ + BACKUP_SRAM, + BACKUP_FLASH, + BACKUP_EEPROM, + BACKUP_NONE +} backup_type_type; + +typedef enum +{ + SRAM_SIZE_32KB, + SRAM_SIZE_64KB +} sram_size_type; + +typedef enum +{ + FLASH_BASE_MODE, + FLASH_ERASE_MODE, + FLASH_ID_MODE, + FLASH_WRITE_MODE, + FLASH_BANKSWITCH_MODE +} flash_mode_type; + +typedef enum +{ + FLASH_SIZE_64KB, + FLASH_SIZE_128KB +} flash_size_type; + + +extern backup_type_type backup_type; +extern sram_size_type sram_size; +extern flash_size_type flash_size; + +typedef enum +{ + EEPROM_512_BYTE, + EEPROM_8_KBYTE +} eeprom_size_type; + +typedef enum +{ + EEPROM_BASE_MODE, + EEPROM_READ_MODE, + EEPROM_READ_HEADER_MODE, + EEPROM_ADDRESS_MODE, + EEPROM_WRITE_MODE, + EEPROM_WRITE_ADDRESS_MODE, + EEPROM_ADDRESS_FOOTER_MODE, + EEPROM_WRITE_FOOTER_MODE +} eeprom_mode_type; + +extern eeprom_size_type eeprom_size; + +extern u8 gamepak_backup[1024 * 128]; + static inline void state_mem_write(const void* src, size_t size) { memcpy(state_mem_write_ptr, src, size); |