In-Game Battery Saves vs Save States: Anti-Corruption Guide
Why save states overwrite your genuine battery saves, how to fix the RetroArch RAM flushing bug that loses progress on shutdown, and how to preserve Pokemon Real-Time Clocks (RTC).
Load State, recalling an older state from 4 hours ago. By default, RetroArch instantly overwrites your genuine in-game save with the old state's memory. You lose 4 hours of progress permanently unless a single config switch is flipped.RetroArch SaveRAM & RTC Config Builder
Select your gaming scenario to calculate corruption risk and generate exact retroarch.cfg code snippets.
retroarch.cfg:Copy & Paste Ready
# Protect In-Game Battery Saves from State Overwrite
block_sram_overwrite = "true"
# Flush SRAM from console RAM to MicroSD every 10 seconds
autosave_interval = "10"
# Enable Real-Time Clock synchronizer
rtc_enable = "true"
# Save state slot increment on save
state_slot_auto_increment = "true"
Understanding Battery Saves (.srm/.sav) vs Save States (.state)
Represents the actual persistent memory inside the cartridge (SRAM, Flash, or EEPROM, typically 32KB to 512KB). It only records what the game developers intended: your party, items, coordinates, and story flags. It is clean, portable, and immune to emulator core updates.
A brute-force memory dump of the entire console's RAM, CPU registers, audio buffers, and hardware timers at that exact nanosecond (several megabytes in size). While convenient for quick pausing, it can corrupt game logic if restored mid-animation or during an audio interrupt.
The Pokemon Berry Tree & Real-Time Clock Glitch
In Pokemon Ruby, Sapphire, and Emerald, the cartridge contains an internal oscillator crystal that increments a 32-bit counter representing elapsed seconds since the save file was created.
When you save in-game, the game writes both your party data and the current LastSavedTimestamp.
When you load a Save State that was saved on a previous day, the emulator forces the RTC counter backwards. The game's anti-cheating check notices that CurrentRTC < LastSavedTimestamp. To prevent clock manipulation, the game enters a Time Lockout state:
- Berry trees never progress or bear fruit
- Shoal Cave high and low tides stop alternating
- Mirage Island never cycles
- Daily lottery drawings never refresh
- Always use the in-game Save option (Start > Save) whenever you reach a Pokemon Center or finish a major battle.
- If you must use a Save State for a difficult capture, use it immediately and save in-game right after the capture to realign the RTC timestamps.
- In RetroArch mGBA Core Options, ensure
Real Time Clock (RTC)is set to System Time rather than Fixed Time. - Never change your retro handheld's OS system clock while a Pokemon game is running in the background.
Save Integrity & Corruption Q&A
Q: Why did my in-game Pokemon or RPG save disappear after turning off my retro handheld?
By default, RetroArch and many standalone emulators keep your in-game battery saves (SRAM) cached in volatile console RAM rather than immediately writing them to your MicroSD card. The save is only committed to physical storage when you cleanly exit the game through the emulator menu ('Close Content' or 'Quit RetroArch'). If you hold the hardware power button or your battery dies before exiting cleanly, the cached save data in RAM vanishes completely.
Q: How do you make RetroArch automatically save in-game progress to the SD card immediately?
Open RetroArch -> Settings -> Saving -> SaveRAM Autosave Interval -> set this to '10 seconds' (or edit retroarch.cfg to autosave_interval = '10'). With this enabled, RetroArch will check for changes in battery RAM and flush them to your physical .srm/.sav file on the MicroSD card every 10 seconds, guaranteeing your progress is saved even during a sudden power cut or crash.
Q: Why does loading a Save State wipe out my newer in-game battery save?
A save state is an exact snapshot of the console's entire RAM chip at that split second—which includes the old state of the cartridge's battery backup RAM. When you load a state from 3 hours ago, the old RAM snapshot overwrites the console's current memory, instantly wiping out your newer in-game save. To prevent this in RetroArch, go to Settings -> Saving -> 'Don't Overwrite SaveRAM on Loading Save State' and toggle it ON.
Q: Why do Pokemon berry trees and day/night cycles break when using Save States?
Pokemon games (Gold/Silver/Crystal, Ruby/Sapphire/Emerald) rely on hardware Real-Time Clock (RTC) chips. When you load a save state taken on Tuesday, the emulator jumps back in time, while your handheld's system clock still reads Friday. This desynchronization triggers the game's anti-time-travel penalty: berry trees stop growing, tides freeze in Shoal Cave, and lottery numbers never reset. Always save in-game at Pokemon Centers before creating a state.
Related Save File & Storage Guides
Setup automated Syncthing sync between Android, Linux, and PC.
Fix 0-byte corrupt save states and carve .srm saves using PhotoRec.
Prevent Disc 2 save migration errors in Metal Gear Solid & FFVII.