libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.1k stars 1.81k forks source link

The option to limit the number of savestates with autoincrement doesn't appear to be working. #12900

Open i30817 opened 3 years ago

i30817 commented 3 years ago

First and foremost consider this:

Description

It's as said in the title, savestates go over the limit. And i also noticed that sometimes the 'wrong' savestate seems to be deleted, when i try to load and nothing happens except a message 'savestate was loaded, like what retroarch thinks the index is and what it really is is was different.

I don't have a theory, but i have auto-increment on, a 10 savestates limit, and autosavestate (on exit) turned off and autosavestate load turned on (but since there is none, nothing should happen).

Expected behavior

Well first the limit to work. I'm pretty sure i tried both with the index starting at -1 (Auto) and from 0.

I retried it now with puae and a limit of 2 savestates (to be faster) and it never cycled but continued on.

with -1 (auto) as the start slot it said 'Saved state to slot #0' (which btw, isn't it wrong? I thought slot 0 was always skipped but maybe it's because i have autoincrement and cores start with 0 instead of -1) then continued for 1, 2, 3, 4 and never rolled back to 0.

with it starting at 0 it said 'Saved state to slot #1' and continued on through 1-4 without a rollover.

Actual behavior

The limit isn't working. There is something screwy sometimes where savestates 'disappear' or at least can't be loaded after heavy savestate-load cycles with this configuration which i'm not sure is the cause.

Steps to reproduce the bug

  1. [First step]
  2. [Second step]
  3. [and so on...]

Bisect Results

[Try to bisect and tell us when this started happening]

Version/Commit

You can find this information under Information/System Information

Environment information

i30817 commented 3 years ago

Ah i just realized this may be 'as intended' and the feature is incomplete. Or 'complete' and the reset idea is too confusing or would touch too much code.

If it's 'deleting old saves' but not but not resetting them to -1, my pattern of forcing the index down 1 slot every save after 10 (because i get real confused about them going over the limit and thinking i have 30+ savestates) might be still deleting 'older saves until i get into a situation where every save but the last was deleted or something like that.