From 6d0aaeaf9036411ceb7aa68205549e246ea86a60 Mon Sep 17 00:00:00 2001 From: lentillog Date: Tue, 4 Oct 2016 18:02:52 -0700 Subject: [PATCH] Fixed crash on loading sram game after a game with no sram --- platform/libretro/libretro.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/platform/libretro/libretro.c b/platform/libretro/libretro.c index 46363618..5f326dac 100644 --- a/platform/libretro/libretro.c +++ b/platform/libretro/libretro.c @@ -877,6 +877,22 @@ static const char *find_bios(int *region, const char *cd_fname) return NULL; } +static void sram_reset() +{ + SRam.data = NULL; + SRam.start = 0; + SRam.end = 0; + SRam.flags = '\0'; + SRam.unused2 = '\0'; + SRam.changed = '\0' ; + SRam.eeprom_type = '\0'; + SRam.unused3 = '\0'; + SRam.eeprom_bit_cl = '\0'; + SRam.eeprom_bit_in = '\0'; + SRam.eeprom_bit_out = '\0'; + SRam.size = 0; +} + bool retro_load_game(const struct retro_game_info *info) { enum media_type_e media_type; @@ -933,6 +949,8 @@ bool retro_load_game(const struct retro_game_info *info) { 0 }, }; + sram_reset(); + enum retro_pixel_format fmt = RETRO_PIXEL_FORMAT_RGB565; if (!environ_cb(RETRO_ENVIRONMENT_SET_PIXEL_FORMAT, &fmt)) { if (log_cb) -- 2.39.5