Save states¶
WinUAE save states capture the entire state of the emulated machine and write it into a so-called state file that you can restore later instantaneously. Save states are useful to save your progress in games that don’t have built-in save game support. You can also use save states as an alternative saving mechanism in most (but not all) games.
Save state files have the .uss
extension. You can create them in a few
slightly different ways that cater for different use cases, but at the end of
the day, there is just a single save state format.
Compared to other emulators, WinUAE save states are very stable. The latest WinUAE can still load save states created 20 years ago! You can count on it that all your save states will continue to work in future WinUAE versions.
Danger
Not all games are compatible with save states, and you can mess things up royally with save states if you don’t know what you’re doing!
Make sure to read the Save state best practices section very carefully before you attempt to use save states in anger, and always check the Game notes to see if a game is incompatible with save states.
Quick saves¶
This method is the most useful for “save scumming” over short periods. You have nine quick save slots available for the currently loaded game config:
-
To save the current state into slots 1–9, press End+Shift+Num 1–Num 9.
-
To restore the state from slots 1–9, press End+Num 1–Num 9.
Save states created this way are stored in the $RML_BASE\Quicksaves
folder.
The state files are named after the currently loaded config and the index of
the quick save slot. For example, if you load the game config Another
World and then quick save into slots 1, 2, and 5, you’ll end up with the
following state files:
$RML_BASE\Quicksaves\Another World_1.uss
$RML_BASE\Quicksaves\Another World_2.uss
$RML_BASE\Quicksaves\Another World_5.uss
Warning
Quick saves behave in a rather unintuitive way with Special config variants. Make sure to read that section carefully, and the Quick saves and named saves too which describes a way how to reconcile the two save state creation methods.
Named save states¶
The above quick save method is great for save scumming to get over a difficult part in a game (especially in action games), but for more “permanent” saves, it’s better to use the named save states method.
To create a named save state, press End+Shift+F6 to bring up the save
state dialog. Select the destination folder for your save state, give it a
name, then press the Ok button. It is highly recommended to use the
dedicated Savestates
subfolder in your individual game folders to keep
things organised.
To load a save state, press End+F6 to bring up the restore state dialog, select the state file, and then press Ok.
Important
When restoring a save state, you must be running the same config you used when creating it. Failing to do so will likely result in a crash of the emulated machine or the game misbehaving.
This is why putting your save states in the Savestates
subfolder within
the game’s folder is the recommended best practice.
Again, always start the game first before loading a save state!
Save states created with different config variants of the same game are
compatible with each other (e.g., Another World
and Another World [skip
code check]
). That’s because they use the exact same emulated machine
configuration.
Special config variants¶
Quite a few games have special config variants to skip the intro of the game or the manual-based copy protection checks. These special configs are implemented via the automatic save state loading feature of WinUAE—you can create configs that will load a save state immediately after launching them.
For example, Another World has two configs: Another World, which
starts the game normally, and Another World [skip code check], which loads
a save state taken right after having passed the code check. All such special
save states are stored in the Savestates
subfolder within the individual game
folders. In this case, the location of the state file is $RML_BASE\Another
World\Savestates\SkipCodeCheck.uss
.
Creating special config variants¶
If you want to create your own “skip intro” or “skip code check” config variants for existing game configs, this is how to do it. We’ll use the imaginary game Bikini Bandits in our example.
-
Start the game using the existing
Bikini Bandits
config. -
Wait until the game loads, then bring up the WinUAE settings window by pressing F12.
-
Go to the Configurations tab, create a new config variant by changing the config name to
Bikini Bandits [skip intro]
(or whatever else you fancy), then press the Save button. -
Now go to the Host / Miscellaneous tab and press the Save State button. This will bring up the familiar save state file dialog.
-
Navigate to the
$RML_BASE\Games\Bikini Bandits\Savestates
folder, enterSkipIntro
as the name of the new state file, then press Ok. -
Note that the state file’s name now appears in the combo box left of the state management buttons, and the checkbox right to it is ticked. This is a “hidden feature”; it means the state file will be immediately loaded after starting the config.
-
Go back to the Configurations tab, make sure the name field still shows
Bikini Bandits [skip intro]
, then press the Save button to update your config.
To test your new config, restart WinUAE and load your new Bikini Bandits
[skip intro]
config. The game should now start from the saved state
instantaneously.
Warning
Always create the new config first in the Configurations tab and make sure you press the Save button before going to the Miscellaneous tab!
If you don’t save the new config first, the config name will revert to the last loaded (or saved) config when returning to the Configurations tab, so you’ll need to type it in again. This is rather error-prone; it’s very easy to overwrite your original config by mistake if you’re doing things this way.
Emulating “resume game”¶
You can use this method to emulate a “resume game” feature in games that have
no save game support. Just create Bikini Bandits [save]
or something similar
with the above method, then use End+Shift+F6 to update your save state
file whenever you want or before quitting the game.
Starting Bikini Bandits [save]
will then always resume your game from your
last save point, which is pretty comfortable!
Quick saves and named saves¶
A small complication is that if you load a named save state, subsequent quick
saves will use the name and folder of the last loaded named save state. In
other words, loading a named save state changes the base name of the quick
save (which is the currently loaded config’s name by default) and its destination folder (which
is $RML_BASE\Quicksaves
by default).
For example, if you start the Another World [skip code check] config
variant which loads $RML_BASE\Another World\Savestates\SkipCodeCheck.uss
and
then create a quick save in slot 1, the quick save will be called as
SkipCodeCheck_1.uss
in the folder $RML_BASE\Another World\Savestates
. Then
if you restart WinUAE and launch the regular Another World config, you
won’t be able to restore the game from quick save slot 1 by pressing
End+Num 1 as WinUAE will be looking for Another World_1.uss
in the
Quicksaves
folder.
The workaround is to load your quick save using the Named save states method, which will set the base name and destination folder of the quick saves, then you can use quick saves normally from that point.
Info
Admittedly, this is a bit complicated and not the best user experience. Future WinUAE versions will replace the handling of such scenarios with a more intuitive method.
Save state best practices¶
Using save states is 100% safe in games with no in-game save support (virtually all action games), or to state it differently, in games that never write anything to any disk.
The overwhelming majority of adventure, strategy, puzzle games, and simulators that feature in-game saves are also safe. Generally, you can even mix in-game saves with save states, but make sure to never create a save state when you’re in the “disk menu” or the “save menu” of the game, or when there is any disk activity in progress.
Persistent game worlds¶
Some games, typically complex RPGs, change the data on the disk as you progress through the game. Using save states in these games will invariably result in crashes, bugs, or the loss of all your progress. You must only use the in-game save feature in such games!
Games that lock you into using a single save slot always belong to this category (e.g., Ultima IV: Quest of the Avatar and Rogue: The Adventure Game). Other affected titles might instruct you to create copies of your original game disks or “scenario disks” before playing. Note that these games might still support manual save files (e.g., Amberstar, Demon’s Winter), Legend of Faerghail, Phantasie, etc.)
The common problem is that these games write to the floppies or the hard drive after performing certain in-game actions without you explicitly saving the game (e.g., when entering or exiting battles, when entering a city or a new area, etc.) Because of this, the save states and the contents of the disks can become out of sync, and the game is not expecting this. You can recognise these games by the occasional floppy or hard drive write indicators (flashing red lights) in the on-screen display in the bottom-right corner. The Game notes also warn you about such games, so make sure to check them out before starting your next long RPG.
WHDLoad games¶
WHDLoad games perform in-game saves to memory only, then write these cached save games to disk when you exit the game with the F10 key. The same sync issues explained in the previous section apply—never use save states with WHDLoad games if you don’t like losing your progress!
Running games for too long¶
Certain games can manifest some really weird bugs if you let them run for too long without a restart (or they’ll just simply crash). Back in the day, people played a game for a few hours or maybe half a day at most, then turned off their Amigas. Nobody tested how the game would behave if you kept it running for tens of hours or days on end!
The solution is to stay on the safe side and periodically “convert” your WinUAE save states to in-game saves, then restart the game and load one of your in-game saves. It’s recommended to do this after every 5-10 hours of using save states exclusively.