这个项目建立在下面这些开源工作之上,谢谢各位作者和维护者,我只是个不懂技术的普通人,是站在前人的肩膀上和 AI 的帮助下才能实现这些。之前没有鸣谢是我的失误,在此特别致谢并致歉。
Ryujinx(Ryubing 1.3.2,MIT):dm/third_party/ryujinx 原样内置了它的着色器翻译库( 三个项目,未修改),用来把 Switch 原版着色器翻译成 SPIR-V。开发过程中,我们还用打了补丁的 Ryujinx 跑原版游戏,作为画面和游戏状态的对照参考(做法见 dm/verify/README.zh-CN.md;构建和驱动它的脚本不在本仓库里)。
deko3d(devkitPro,zlib):dm/gfx/nvn/nvn_tex.c 里的贴图排布尺寸算法移植自它。
nvn.h(h1k421,MIT):图形接口声明 dm/gfx/nvn/include/nvn.h。
libdeflate(Eric Biggers,MIT):解压游戏数据。
bcdec(iOrange,MIT 或 Unlicense):在不支持 BC 贴图格式的设备上解压 BC 贴图。
FLIP(NVIDIA,BSD 3-Clause):画质验证里的画面差异度量。
离线修复补丁(LFS Mod Offline Fix):dm/tools/patch_nso.py 里让游戏离线运行的 7 处改写取自这个社区补丁。它的首发处和作者我们没有确切记录,知道的请开 Issue 告诉我们。
构建与验证用到的工具:SPIRV-Cross(把 SPIR-V 转成 Metal 着色语言)、XcodeGen、.NET、Capstone 和 Unicorn(改写前后的反汇编与等价核对)、Pillow、numpy、lz4、astcenc(老机型补充包)、hactool(从游戏包取文件)、libimobiledevice、LLVM。版本和地址见 docs/DEPENDENCIES.zh-CN.md。
社区贡献:Joe Hu 报告并定位了多处秘境问题,还提出了验证矩阵;seedds 在另一款游戏的移植中发现并定位了渲染目标视图格式的问题(#
36)。他们在相应提交里署名为共同作者。#
以上鸣谢均已更新在GitHub主页。很感激,很抱歉。