-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unfortunate conflation/coupling of quick saves and regular save states #314
Comments
Unfortunately this is by design (But I don't remember why it was done that way), it parses current statefile path and takes the path part when creating new quick save path. It is guaranteed that there is always someone who depends on this :) Per-config statefile path via config file is acceptable solution. |
Haha, tell me about it 😅
That would be awesome, thank you @tonioni 💯 If at least the quick saves and the manual saves 100% reliably end up in the designated Savestates subfolder of the game set in the per-game configs, everything would be a lot less confusing. Then I could live with the basename switching behaviour, sure. |
Saw this being mentioned in the 6.0.0 b1 notes. Thanks for the quick enhancement @tonioni 🥇 Can't test it unfortunately due to the save state creation regression:
(☝🏻 ignore that; user error...) |
Confirmed @tonioni, it works beautifully on 6.0.0 beta 3, thanks! 🏅 Is there any chance to backport these three commits to a new 5.3.2 minor release? Then I could include 5.3.2 in my gamepack due to be out in a month or so. I'm just asking because 6.0.0 might far away, maybe only "production ready" by the end of the year. Of course, if 5.3.2 would be too much work, I understand and I'll just wait. |
5.3.2 might happen but it probably won't happen in next 1-2 months at least. |
Thanks Toni 👍🏻 |
Please bear with me and let me describe the problem first.
How to reproduce
Start game and create quick saves
Rick Dangerous_1.uss
andRick Dangerous_2.uss
.Create manual save state (and break reloading previously created quick saves)
Games/Rick Dangerous
or something. Call it "blah", so the path of the new state file isGames/Rick Dangerous/blah.uss
.Games/Rick Dangerous/blah_3.uss
andGames/Rick Dangerous/blah_4.uss
. We have effectively switched the quick save base name by creating a manual save state. 🛑Untick the manual save state (and break all quick save functionality)
Restore quick save functionality and "get back on track"
Why this is a problem
At the very least, this is very confusing behaviour and I don't think any of this "emergent functionality" is desired. All the problems come from the conflation of manually managed save states and quick saves.
In my concrete case, I have per-game configs in my upcoming Amiga game pack. I provide quick saves to skip code checks and lengthy loading sequences for some games. Note the configs ending with
[skip intro]
and[skip code check]
in the below screenshot:These are stored withing the game folders, e.g.
Now, if someone loads the game normally using the Heimdall config, their quick saves will be stored in
$BASEDIR\Quicksaves
asHeimdall_1
,Heimdall_2
, etc.But if they use the Heimdall [skip code check] config which loads the
$BASEDIR\Games\Heimdall\Savestates\SkipCodeCheck.uss
state first, the quick saves will be placed next to that state asSkipCodeCheck_1.uss
,SkipCodeCheck_2.uss
, etc.This is inconsistent and super confusing. It would take a lot of words to explain it to users how to "manually convert" quick saves created with the Heimdall [skip code check] so they can load them when they use the Heimdall config and vice versa. Well, I don't even want to explain all that because the process is error prone and they'll most likely screw it up.
This severely limits the usability of quick saves for my use case, and I'm inclined to not even mention quick saves at all in the documentation.
Resolution ideas
Solution 1
Do nothing, leave everything as is.
I would simply instruct people to never use quick saves to avoid all this confusion (not ideal). But I genuinely think this weird coupling affects not just my game pack but can cause a lot of confusion for any regular WinUAE user.
Solution 2
Completely decouple quick saves from manually managed save states. I can't imagine many (or any) people actively relying on this weird basename coupling, so I think it's safe to improve the situation by making the following technically backwards-breaking changes:
_1.uss
,_2.uss
, etc. prefixes in the global save states folder set in the Paths tab (if no config was loaded, the name would bedefault
as per the current behaviour).Solution 2++
My preferred solution. For my use case, it would be even better to have a per-config save state path setting as well. If this is not specified, the global state file path would be used as fallback.
This would be just handy because it's a pain in the ass to manually browse to
$BASEDIR\Games\GameName\Savestates\
every single time you load or restore a state via the fila dialogs (and it's a little bit error prone, too). So if the per-config save state path is defined, the save/restore state dialogs would default to this path instead of the global state file path.Additionally, quick saves would be created in this per-game path which is a nice touch (and there's less chance for name clashes and overwriting previously created state files).
You could even add this as a "hidden" setting (not exposed on the UI) if you're really not in the mood of changing the UI.
Thanks for reading this far @tonioni and for considering my request 😄 Also, Happy New Year 😎
The text was updated successfully, but these errors were encountered: