存档管理 .srm 游戏内存档 vs .state 即时存档的本质区别
两种存档的区别
RetroArch 的存档体系建立在 libretro API 的两个机制上:
| 文件 | 扩展名 | 是什么 | 特点 |
|---|---|---|---|
| 游戏内存档 | .srm(或 .sav、.dat 等因核心而异) | 游戏自己的存档系统(相当于当年卡带/记忆卡里的存档) | 体积小(几 KB 到几 MB)、稳定、跨核心通用性强,换核心也能读 |
| 即时存档 | .state | 整个模拟状态的二进制快照 | 体积大(几十 MB)、随存随读,但严格绑定产生它的核心与版本 |
结论:.srm 当底仓,.state 当便利贴
- 长期进度(比如通关存档、几百小时的等级进度)一定要落到游戏内存档——
.srm跨核心通用,换了新核心还能读,甚至跨平台迁移都没问题 - 即时存档就是便利贴——打 BOSS 前存一档、练级时存一档、探索地图存一档,想回到刚才的进度随手 Load State
不要反过来——把重要进度只存在 .state 里。核心大版本更新后旧的 .state 大概率读不出来。
存档存在哪
路径因平台和设置而异,以本机显示为准:
Settings → Directory 里看两行:
- Savefile:游戏内存档目录
- Savestate:即时存档目录
常见默认位置:
| 平台 | Savefile | Savestate |
|---|---|---|
| Windows | %APPDATA%\RetroArch\saves\<核心名>/ | %APPDATA%\RetroArch\states\<核心名>/ |
| macOS | ~/Library/Application Support/RetroArch/saves/ | ~/Library/Application Support/RetroArch/states/ |
| Android | 内部存储 RetroArch/saves/ 或 RetroArch/states/ | 同上 |
| Linux | ~/.config/retroarch/saves/ | ~/.config/retroarch/states/ |
按核心分子文件夹存放——saves/mgba/ 里是 mGBA 核心的 GBA 游戏存档,saves/pcsx_rearmed/ 里是 PCSX-ReARMed 核心的 PS1 游戏存档。
改存档目录
想把存档集中到自建目录(比如移动硬盘、存储卡):
- 先把现有
saves/states文件夹整个复制到新位置 - 再进 Settings → Directory 改 Savefile / Savestate 指向新目录
- 改完进游戏读一次档,确认进度还在
顺序不能反——改目录不会搬旧文件。先改后搬的话,RetroArch 会从零开始,旧存档还在原处但读不到了。
存档槽位
即时存档有 10 个槽位(0-9),可以同时存多个快照:
- Current Slot:当前槽位,Load State 和 Save State 都操作它
- 可以在 Quick Menu → State Slots 里切换槽位
- 槽位 0 通常是"自动存档槽"(如果开启自动存档)
不要只钉一个槽位——打 BOSS 前存 1 档、平时存 2 档、关键剧情存 3 档,留退路。自动存档槽万一存了个坏掉的状态,你还有手动存的好档。
自动即时存档的一个坑
RetroArch 支持退出游戏时自动存即时档、下次启动时自动读档。它方便,但有个知名坑:
如果退出瞬间游戏正处在崩溃或花屏状态,这个坏档会被反复自动载入——怎么进都是坏的。
对策:
- 遇到自动读档进坏档,进 Quick Menu 把自动加载关掉
- 用
.srm游戏内存档回到之前的好进度 - 重新进游戏,再开自动加载
换设备迁移进度
- 旧设备上确认存档目录位置
- 把
saves/(游戏内存档)、states/(即时存档)和system/(BIOS)整个复制出来 - 新设备上装好同版本或更高版本的 RetroArch
- 放到新设备的对应存档目录下,目录结构保持一致
- 重扫一遍播放列表即可
.srm 可以跨平台、跨核心(只要新核心支持这种存档格式)。.state 不能跨核心、不能跨大版本更新。