2026/10/22 17:37:02

Sudachi存档数据修改指南:五步定位游戏SaveData并安全编辑

Sudachi存档数据修改指南:五步定位游戏SaveData并安全编辑 Sudachi存档数据修改指南五步定位游戏SaveData并安全编辑【免费下载链接】sudachiSudachi is a Nintendo Switch emulator for Android, Linux, macOS and Windows, written in C项目地址: https://gitcode.com/GitHub_Trending/suda/sudachi这篇文章带你基于 Sudachi跨平台 Nintendo Switch 模拟器的真实存档实现快速找到游戏存档存放在哪里、如何备份、再动手修改——没读过源码也能跟着做完。存档打不开先从哪查起游戏存档突然损坏你想手动还原或修补几个字节可翻遍配置目录只看到一堆 16 位十六进制命名的文件夹找不到任何眼熟的文件。这篇文章解决一个问题怎么根据 Sudachi 的存档体系精准定位某个账号下某款游戏的存档目录并在不弄坏存档的前提下安全读写。原理速览存档藏在虚拟NAND的哪一层大白话说Sudachi 在电脑上模拟了一块 Switch 的 NAND 文件系统存档不是单个文件而是一个目录目录名由用户ID 游戏ID按固定公式算出来。核心逻辑在 savedata_factory.cpp 的GetFullPath方法用户账号存档Account 类型即按账号隔离的存档路径固定为/user/save/0/user_id/title_id其中user_id是 128 位标识、显示为 32 个十六进制字符title_id是游戏标识的 16 位大写十六进制。// 打开存档时优先查新位置查不到才走旧路径 if (future_dir ! nullptr) { return future_path; // 新位置存在就直接用它 }系统实际维护着两套位置旧格式save/0/user_id/title_id新格式save/account/user_id-uuid/title_id。打开时先探测新位置存在就用见源码第 116–125 行。所以找存档时两个位置都得看别只认旧格式。分步实操从用户ID到具体存档第一步确认你要操作的账号 user_id。每个游戏账号对应一个 128 位user_id先拿到它后面所有路径都靠它算出来。第二步按公式生成两个候选路径。旧格式的计算逻辑只有短短一行// 旧格式save/0/user_id/title_id全部大写十六进制 return fmt::format(/user/save/{:016X}/{:016X}{:016X}, 0, user_id[1], user_id[0]);新格式则替换成/user/save/account/uuid/title_id。先查旧路径、再查新路径哪边存在哪边就是目标存档目录。第三步修改前先整目录备份。存档目录里有个.sudachi_save_size文件注意开头的点属于隐藏文件共 16 字节前后各 8 字节记录主数据与日志区大小。动手前把整个目录复制一份出错了才有得救。第四步用十六进制编辑器改数据同步更新尺寸记录。改完如果数据体积变了要把.sudachi_save_size里的数值一起改否则模拟器只会按旧尺寸读取改动等于白做。第五步进游戏跑一遍确认能正常读取。模拟器每次启动都会清空temp临时目录见第 56–62 行临时区里的东西别当作长期数据存放。踩坑与自检这几点最容易让存档变空尺寸文件名别记错。它叫.sudachi_save_size而不是save_size.dat定义在 savedata_factory.h文件缺失或不足 16 字节时模拟器会把存档尺寸直接当作 0 处理。路径格式不要只写死一套。新旧格式共存新格式的目录名里用户ID还带连字符UUID 风格只查一边就可能漏掉存档。系统级存档别乱碰。Account 与 Device 两类存档在打开时会自动创建但 System系统级存档涉及整台虚拟系统改错影响面大⚠️ 非必要不修改。修改前自检清单① 目录名是否为 32 位 16 位十六进制结构② 备份是否已完成③ 尺寸文件是否恰好 16 字节④ 改完后是否进游戏验证过一次。想写个小工具批量算路径的话直接参考静态方法GetUserGameSaveDataRoot(user_id, future)的实现见第 147–154 行几行代码就能复刻新旧两种根目录。下一步可以做什么路径逻辑拿到手后顺手就能套上界面用 Qt模拟器自身所用的界面框架搭一个目录浏览器加十六进制编辑器再补上批量备份与模板迁移。再往后可以结合模拟器的 network 模块 给存档加同步能力。实施优先级建议先写路径计算和备份这两个可独立验证的功能再接编辑器界面最后做批量与同步——这样即使后两期没做完前面也已经是一套能用的工具了。【免费下载链接】sudachiSudachi is a Nintendo Switch emulator for Android, Linux, macOS and Windows, written in C项目地址: https://gitcode.com/GitHub_Trending/suda/sudachi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考