Emulator save lost: can you recover your progress?
Browser emulator saves live in IndexedDB, not on your hard drive. Learn why an emulator save lost situation is often permanent, and how to prevent it.
By RGS Editorial · Published: · Updated:
Last reviewed by RGS Editorial on
How browser emulator saves actually work
If your emulator save lost situation happened in a browser-based emulator, the short answer is: recovery is rarely possible. Browser emulators store save data inside IndexedDB — a structured key-value database built into your browser — rather than as a file on your hard drive. When that storage is cleared or never written in the first place, the data is gone.
IndexedDB is part of the Web Storage specification and is sandboxed per origin (protocol + domain + port) and per browser profile. That means saves created on https://retrogamespace.com in Chrome are completely separate from saves in Firefox, Safari, or even a different Chrome profile on the same machine. The browser provides no built-in user-facing interface to browse or export this data; it is entirely managed by the web application running in the tab.
From the emulator's perspective, writing a save is straightforward: when the emulated game flushes its SRAM (battery-backed save RAM), the emulator serializes that memory region and commits it to IndexedDB. On page load, the emulator reads it back. Everything works correctly as long as IndexedDB retains that record — and there are several common reasons it does not.
Common ways saves disappear
There are four distinct causes behind a browser save disappeared event, and each one has a different likelihood of being recoverable. Knowing which one hit you determines your next move.
- Clearing browsing data: Chrome, Firefox, Edge, and Safari all include an option to delete 'site data' or 'cookies and site data'. IndexedDB is classified as site data. If you selected that option — even while targeting cookies — every IndexedDB database for every origin was wiped simultaneously. This is the most common cause on desktop and produces no warning.
- Incognito or private-browsing mode: Browsers explicitly do not persist IndexedDB to disk when a private window is closed. Any save written during that session existed only in RAM and was discarded the moment you closed the window. There is no recoverable copy.
- iOS Safari storage quota eviction: Apple's WebKit engine on iOS applies a 7-day inactivity rule to website storage under certain conditions, and the OS can evict site data when device storage is critically low. Safari on iPhone and iPad is the most frequently cited environment for unexplained emulator progress loss.
- Different browser profile or browser: Because IndexedDB is scoped per origin and per profile, switching from your work Chrome profile to your personal Chrome profile, or from Chrome to Firefox, gives you a completely empty database. Your old saves still exist — in the other profile — and can be recovered simply by switching back.
A fifth edge case worth mentioning: some browser extensions that advertise 'privacy' or 'anti-tracking' features periodically wipe site storage on a schedule. If you cannot identify any of the four causes above, check your installed extensions for storage-clearing behavior.
When recovery is actually possible
To attempt to recover emulator save data, you need at least one of the following conditions to be true. None of them apply universally, so read each one carefully before investing time.
- You exported a .srm file before the loss: If you previously used the emulator's export or download function to save a .srm (SRAM dump) file to your device, that file is still on your hard drive. Re-importing it through the emulator's import function will restore your progress to whatever point the export captured.
- Your saves are in a different browser profile: Open the browser's profile switcher and look for other profiles. Navigate to the emulator site in each one. If your save data appears, export it as a .srm immediately and then re-import it into your primary profile.
- You have a cloud or sync backup: If the emulator you were using integrates with a cloud-sync service, check that service's web interface or app for any stored save states or SRAM files. Cloud sync for RGS is planned for a future release — see the site blog for current availability.
- You are on Android Chrome and have not rebooted: Chrome on Android caches IndexedDB writes in memory before committing to disk. In the narrow window between a crash and a reboot, a forced sync triggered by revisiting the page may recover the last session. This is an unreliable edge case, not a procedure to count on.
There is no method to extract IndexedDB data directly from browser internals without developer tooling, and even then only if the database has not been deleted. In Chrome, you can open DevTools (F12), go to Application → Storage → IndexedDB, and check whether a database for the site still exists. If it shows entries, the emulator's own import/export tools are the correct way to extract them — do not attempt to edit the raw LevelDB files Chrome uses internally, as that risks corrupting other browser data.
When recovery is not possible — and why
The hard truth about IndexedDB save recovery is that once the database record is deleted, there is no recycle bin, no shadow copy, and no server-side backup to fall back on. Unlike a file you deleted from your desktop, IndexedDB data does not pass through the operating system's file deletion pipeline in any user-accessible way.
Specifically, recovery is not possible in the following situations: the 'Clear site data' or equivalent option was used in the browser; the session took place in a private/incognito window; iOS Safari evicted the data due to inactivity or storage pressure; or a privacy extension deleted the storage on a schedule. In all four of these cases, the underlying bytes have been overwritten or were never committed to persistent storage.
Forensic disk recovery tools (such as those used to undelete files) do not help here. Chrome, Firefox, and Safari all store IndexedDB as compact binary formats (LevelDB in Chrome's case) that are continuously rewritten during normal browser operation. By the time you notice the save is missing, the physical sectors that once contained the data have almost certainly been overwritten.
We will not suggest third-party 'IndexedDB recovery' utilities that circulate online. The ones we have examined either scan for generic file signatures that have nothing to do with game save data, or they require handing browser internals to a closed-source application. Neither approach is reliable for this use case, and both carry real risk.
Preventing save loss in the future
The only reliable protection against a browser save disappeared event is keeping a copy of your save data outside IndexedDB. That means exporting a .srm file at regular intervals — ideally after every meaningful play session — and storing it somewhere that is not subject to browser data clearing.
- Export .srm files regularly: Use the emulator's export function after each session and save the resulting file to a folder on your hard drive or cloud storage. A .srm file is small (typically 8 KB for a Super Nintendo game with standard SRAM) and takes seconds to download.
- Keep at least two dated copies: Naming files with a date suffix (e.g. zelda-lttp-2024-11-03.srm) makes it easy to roll back to an earlier checkpoint if a save becomes corrupted. One recent backup is better than none; two dated backups give you a recovery point even if the most recent export has a problem.
- Never play in incognito mode for games you care about: Incognito is appropriate for testing or one-off sessions. It is not appropriate for a multi-hour RPG playthrough, because the browser will unconditionally discard all storage when the window closes.
- On iOS, visit the emulator site at least once every 7 days: Apple's WebKit storage eviction timer resets on each visit. Regular activity reduces — but does not fully eliminate — the risk of iOS clearing your data.
- Watch for the RGS cloud sync feature: When cloud sync ships, it will allow saves to be stored server-side and synced across devices. Until it is available, .srm export remains the only cross-device backup method on this site. Check the RGS blog for release announcements.
- Avoid browser extensions that wipe site data: If you use a privacy extension, review its settings for any automatic storage-clearing schedule and either disable that feature or add retrogamespace.com to its allowlist.
One platform-specific note for iOS users: as of iOS 17, you can add a website to your Home Screen as a Progressive Web App. Storage created inside a Home Screen PWA is held in a separate quota container from the standard browser and is not subject to the same 7-day eviction rule applied to Safari tabs. If you play frequently on iPhone or iPad, adding the site to your Home Screen is a meaningful structural improvement, not a complete solution. You should still export .srm files, because the PWA container can still be cleared manually or when the app is removed from the Home Screen.
FAQ
- Why did clearing browsing history delete my emulator saves?
- Browsers treat IndexedDB as a category of 'site data' alongside cookies and cached files. When you select any option that deletes site data or cookies and site data, IndexedDB databases are included in that sweep. The browser presents no per-database confirmation before deleting them, so the loss is often unexpected.
- Can I recover an emulator save lost after closing incognito mode?
- No. Browsers explicitly discard all storage — including IndexedDB — when a private browsing window closes. The data existed only in RAM and was never written to disk, so there is no recoverable copy anywhere on the device.
- Does IndexedDB save recovery work with any third-party tools?
- Not reliably for game save data. Chrome stores IndexedDB as LevelDB files that are continuously compacted and rewritten during normal use, so by the time a save is noticed as missing, the underlying data has generally been overwritten. We do not recommend closed-source recovery utilities for this use case.
- Why do my browser saves keep disappearing on iPhone?
- iOS Safari applies storage eviction policies that can clear website data after roughly 7 days of inactivity, and the OS can also clear site storage when the device is low on space. Adding the emulator site to your iOS Home Screen as a PWA places its storage in a separate container with different eviction rules, which reduces but does not eliminate the risk. Exporting .srm files remains the safest backup method.
- My saves are still there in a different browser — how do I move them?
- Open the emulator in the browser or profile where the saves still exist, use the export function to download a .srm file for each game, then open the emulator in your primary browser or profile and use the import function to load those files. The saves will then be written into that profile's IndexedDB.
- What is a .srm file and why does exporting it protect my saves?
- A .srm file is a raw binary dump of a game's SRAM — the battery-backed memory a cartridge used to store save data. Exporting one saves a copy of that memory to your local file system, outside IndexedDB. Because it lives as an ordinary file rather than in browser storage, it is not affected by browser data clearing, incognito sessions, or iOS eviction.