Retroarch: Auto save not working with latest nightly

Created on 19 Oct 2016  路  7Comments  路  Source: libretro/RetroArch

After seeing Issue #3049 I tried the latest nightly build (2016-10-19) and I am still having issues. It appears to automatically save the state the first time. However, after closing and re-opening Retroarch, it will not overwrite the save state.

Steps to reproduce:
Download fresh copy of latest build and extract it

Open RetroArch, turn on these options:

  • Settings -> Saving -> Sort Saves In Folders
  • Settings -> Saving -> Sort Savestates In Folders
  • Settings -> Saving -> Auto Save State
  • Settings -> Saving -> Auto Load State

Download Gameboy core (TGB Dual)
Load any .gb rom
Use the shortcut key to exit RetroArch (auto save state is created)
Open RetroArch and load the same core/content (auto load state ok)
Use the shortcut key to exit RetroArch (this time, the save state is NOT overwritten)

minor

Most helpful comment

my current tests with the hotkey (on ubuntu linux / batocera.linux) :

  • 07/01/2017 sources : it works only the first time. after, nothing is saved.

after some debugging, it looks like that loading works, but saving create a new file with the previous content of the file itself and not the current game state.

when saving the state

  • there is a mecanism to save in memory the state.auto before erasing it when it exists to be able to rollback.

the file state.auto is saved each time on the disk, but not with the correct content.
It looks like it is saving it again with the backed up content. (so, erasing it with itself.)

in task_save.c, line 1151, replacing :

     if (path_file_exists(path)) { // state.auto
       task_push_load_and_save_state(path, data, info.size, true, autosave);
     } else {
        task_push_save_state(path, data, info.size, autosave);
     }

by
if(false)

solve the issue, but it's a quite and dirty fix for the moment. I've not yet found the root cause.

All 7 comments

Here's my report (latest). Same options and TGB Dual. I exit via In-Game Menu.

| First | Second | Third |
| --- | --- | --- |
| f58d7f Retro.rtc | 244554 Retro.rtc | 58b615 Retro.rtc |
| d4a627 Retro.srm | d4a627 Retro.srm | d4a627 Retro.srm |
| 19b148 Retro.state.auto | 7546d3 Retro.state.auto | 669c5f Retro.state.auto |

Here's my report (latest). Same options and TGB Dual. I exit via WM's kill.

| First | Second | Third |
| --- | --- | --- |
| 2da361 Game.rtc | 642002 Game.rtc | 3569cf Game.rtc |
| fdb8ef Game.srm | fdb8ef Game.srm | fdb8ef Game.srm |
| 7b82a2 Game.state.auto | 7b82a2 Game.state.auto | 7b82a2 Game.state.auto |

Here's my report (latest). Same options and TGB Dual. I exit via Escape shortcut.

| First | Second | Third |
| --- | --- | --- |
| 62a796 Arch.rtc | 749023 Arch.rtc | 3ebbdc Arch.rtc |
| 7f093e Arch.srm | 7f093e Arch.srm | 7f093e Arch.srm |
| b32818 Arch.state.auto | b32818 Arch.state.auto | b32818 Arch.state.auto |

I just tried. My results:

  • Close content: auto saves as expected
  • Close via quit retroarch: auto saves as expected
  • Close via hotkey: doesn't auto save

my current tests with the hotkey (on ubuntu linux / batocera.linux) :

  • 07/01/2017 sources : it works only the first time. after, nothing is saved.

after some debugging, it looks like that loading works, but saving create a new file with the previous content of the file itself and not the current game state.

when saving the state

  • there is a mecanism to save in memory the state.auto before erasing it when it exists to be able to rollback.

the file state.auto is saved each time on the disk, but not with the correct content.
It looks like it is saving it again with the backed up content. (so, erasing it with itself.)

in task_save.c, line 1151, replacing :

     if (path_file_exists(path)) { // state.auto
       task_push_load_and_save_state(path, data, info.size, true, autosave);
     } else {
        task_push_save_state(path, data, info.size, autosave);
     }

by
if(false)

solve the issue, but it's a quite and dirty fix for the moment. I've not yet found the root cause.

I am currently experiencing this as well on the latest retropie.

Though, another hack-y, not true, solution to this is simply set up the auto save intervals:

vim /opt/retropie/configs/all/retroarch.cfg

And set the following lines (May not be next to one another):

savestate_auto_save = true savestate_auto_load = true autosave_interval = 10

autosave_interval is measured in seconds. So do whatever you see fit. I came across this as I am making gifts, and wanted to ensure no one lost their saves :)

Was this page helpful?
0 / 5 - 0 ratings