oceanpacificpeace/lichii-shader-sync
游戏把共享的 Vulkan 着色器缓存下载并安装进 Lichii/Eden 模拟器,减少游戏首次运行时的卡顿。
项目介绍
Lichii Shader Sync 用于把共享的 Vulkan 着色器缓存包下载并安装到 Lichii 或 Eden 这两个 Nintendo Switch 模拟器中。它解决的是模拟器首次运行游戏时需要现场编译着色器、导致早期卡顿的问题。
缓存包以 Release 形式发布,并附带按游戏区分的清单;README 中的徽章显示《时之笛》的缓存包含 88,982 个着色器。同步时会校验并验证每个下载内容,旧缓存保留为 .bak 文件。工具还提供从本地 cache.bin 打包并发布缓存包的命令。
快速使用
- 在 Lichii 中先运行一次游戏,然后完全关闭 Lichii。
- 从最新 Release下载程序并运行
Lichii-Shader-Sync.exe。Windows SmartScreen 可能拦截,README 要求选择 More info → Run anyway。 - 点击 Update shaders,再启动 Lichii。
命令行等价方式是 lichii-sync sync,加 -dry-run 可先预览将要下载的内容。项目用 Go 编写,README 徽章注明 Go 1.15+。
特定构建的注意事项
- 在 117 及之后的构建中,请在
nx2_switches.txt里保持EDEN_NX2_PRELOAD_ALL_PIPELINES关闭。这些构建会在大约 2.5 分钟后逐出未使用的管线,此时预加载大缓存包会让游戏卡住约 20 秒。 - 更新 GPU 驱动后,README 建议做一次可选预热:把 GPU 着色器缓存调到 10 GB 或 Unlimited,开启预加载,启动游戏并在标题画面等到编译完成,退出后关闭预加载。Linux 上通过
.bashrc中的__GL_SHADER_DISK_CACHE、__GL_SHADER_DISK_CACHE_SIZE和__GL_SHADER_DISK_CACHE_PATH设置。
发布缓存包
lichii-sync pack 命令把本地 cache.bin 拆分为分块文件并生成清单:lichii-sync pack -title <TITLEID> [-prev <TITLEID>.json] <cache.bin> out/ <TITLEID>-<date>。要先上传分块再上传清单;缓存包的 Release 不能标记为 Latest,否则 README 的下载按钮会指向缓存包而不是程序本身。
使用约束
- 仅面向 Lichii 和 Eden,不是通用着色器缓存工具。
- Windows 图形界面流程分发的是未签名的预编译
.exe,需要用户绕过 SmartScreen 警告;Linux 部分只给出环境变量调整,没有 GUI 操作说明。 - 仓库未声明许可证,且项目为非官方,与 Lichii、Eden 没有隶属关系。
HotRepo 点评
该项目在 2026-11-08 出现在 HotRepo 的 Go 新项目列表中,约 12 小时内新增 100 Star 和 5 Fork,但没有记录到 GitHub 日榜名次。这只是单次快照观察,不能说明持续采用情况。技术上值得留意的是缓存包与清单分离的发布方式,以及 117+ 构建逐出管线、使大包预加载适得其反的说明;对准备使用的读者来说,只提供二进制、不说明源码对应关系是主要风险点。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。