summaryrefslogtreecommitdiff
path: root/gba_memory.c
diff options
context:
space:
mode:
authorAutechre2020-09-09 01:54:33 +0200
committerGitHub2020-09-09 01:54:33 +0200
commit4a2848af48359a6c06ceb0f38da2051088536f04 (patch)
tree637dedf3897396fcc44ea9c970711c9c59e87ab0 /gba_memory.c
parente4b12f434055fc703e80d18cbf350582877802d0 (diff)
parenta3725fd81fbd3c779753aea351efeb0193a56ac9 (diff)
downloadpicogpsp-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.c')
-rw-r--r--gba_memory.c54
1 files changed, 4 insertions, 50 deletions
diff --git a/gba_memory.c b/gba_memory.c
index a2d2a93..567010b 100644
--- a/gba_memory.c
+++ b/gba_memory.c
@@ -367,40 +367,11 @@ u32 gbc_sound_update = 0;
// If the GBC audio waveform is modified:
u32 gbc_sound_wave_update = 0;
-typedef enum
-{
- BACKUP_SRAM,
- BACKUP_FLASH,
- BACKUP_EEPROM,
- BACKUP_NONE
-} backup_type_type;
-
-typedef enum
-{
- SRAM_SIZE_32KB,
- SRAM_SIZE_64KB
-} sram_size_type;
-
// Keep it 32KB until the upper 64KB is accessed, then make it 64KB.
backup_type_type backup_type = BACKUP_NONE;
sram_size_type sram_size = SRAM_SIZE_32KB;
-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;
-
flash_mode_type flash_mode = FLASH_BASE_MODE;
u32 flash_command_position = 0;
u8 *flash_bank_ptr = gamepak_backup;
@@ -459,25 +430,6 @@ u8 read_backup(u32 address)
// EEPROM is 512 bytes by default; it is autodetecte as 8KB if
// 14bit address DMAs are made (this is done in the DMA handler).
-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;
-
-
eeprom_size_type eeprom_size = EEPROM_512_BYTE;
eeprom_mode_type eeprom_mode = EEPROM_BASE_MODE;
u32 eeprom_address_length;
@@ -2197,7 +2149,8 @@ u32 save_backup(char *name)
void update_backup(void)
{
- save_backup(backup_filename);
+ if (!use_libretro_save_method)
+ save_backup(backup_filename);
}
#define CONFIG_FILENAME "game_config.txt"
@@ -2480,7 +2433,8 @@ u32 load_gamepak(const struct retro_game_info* info, const char *name)
if (p)
strcpy(p, ".sav");
- load_backup(backup_filename);
+ if (!use_libretro_save_method)
+ load_backup(backup_filename);
memcpy(gamepak_title, gamepak_rom + 0xA0, 12);
memcpy(gamepak_code, gamepak_rom + 0xAC, 4);