nx2/ 静态重编译 与 AArch64 LifterAOT Lifter | nx2/lift.py, nx2/insn.py, nx2/nso2.py, nx2/image.py | Python 3 (Capstone, Unicorn 2.1, LZ4, Zstandard)mkw-recomp (7336f0a) + Rexcomp a64-kit | work/sa/gen/*.c(约 1.4 GB,分布于 57 个 C 分块,294,450 个函数) | 在 0x80000000 处加载 Switch 2 NSO 模块并处理 DT_RELR 重定位,解析跳转表(1,475 个表),并将 17,668,191 条 ARMv8.2+ 指令(包括 UDOT)翻译为 C。 |
nx2/nup.py 与 nx2/unpack.py 转储提取器转储引入 | nx2/nup.py, nx2/unpack.py, nx2/dump.py, third_party/zbic | Python 3 + C(Atmosphere ZBIC 解码器)Hookshot / mkw-recomp | work/dump/exefs + work/dump/romfs(已提取 26.2 GB) | 针对 0400486024DEC000 v131072 校验 Switch 2 转储的七大特征标志,解压 .nup 归档,并解压固件 22.0.0+ 采用 ZBIC 编码的 main NSO 二进制文件。 |
nx2/build.py 与 nx2/make_game.py Native 编译器 DriverBuild 与 Link System | nx2/build.py, nx2/make_game.py, nx2/split_hot.py, nx2/pgo_pieces.py | Python 3 + Clang / LLD (llvm-mingw ucrt-x86_64)mkw-recomp + Hookshot split_hot PGO 流水线 | hookshot.exe (426 MB) / hookshot + image.bin | 将提升出的热点代码拆分至 8 个并行翻译单元,应用 LLVM raw format 11 PGO 分支分析特征,以 -O1 编译冷代码块并以 -O2 编译热点块,最终链接生成原生可执行文件。 |
host/ Native Horizon OS 与 SDK 22.2.8 HLE 运行时系统与服务运行时 | host/hos_main.c, host/hos_setjmp.c, host/nn_hid.c, host/nn_applet.c, host/posix/ | C11 / Win32 与 POSIX Threads / Assembly经由 mkw-recomp 适配的 TOTKPort hos/ | 直接链接至 hookshot.exe / hookshot | 在运行时替换 485 nn:: SDK 边界,预留 512 GB 客制虚拟地址空间,将 nn::os 纤程映射到原生纤程,并处理文件系统、音频(libopus)与 HID 控制器。 |
host/nvn_native.c NVN2(API 231.40)命令录制器图形 API 前端 | host/nvn_native.c, host/nvn2.c, gpu/render/rx_nvn.h | C11mkw-recomp NVN2 层 | 供 gpu/vk/ 使用的内存中 NVN2 操作流 | 在客户机内存上就地实现 Switch 2 NVN2 API 231.40 接口过程,在提交时刻捕获内存池状态,并将命令缓冲区提交串流传输至 Vulkan 后端。 |
gpu/vk/ Vulkan 1.3 Backend 与 Queue Replay EngineVulkan 1.3 Renderer | gpu/vk/vk_main.cpp, gpu/vk/vk_replay.cpp, gpu/vk/vk_memory.cpp, gpu/vk/vk_draw.cpp, gpu/vk/vk_coopmat.cpp | C++20 (Vulkan 1.3, VMA, Dear ImGui)mkw-recomp gpu/vk + Hookshot OoT 修复 | hookshot_vk.dll (Windows) / hookshot_vk.so (Linux) | 通过 VK_EXT_mesh_shader 在 Vulkan 1.3 上回放 NVN2 命令流,执行跨队列 WaitEvent 同步,运行用于 TAAU/过场动画超采样的 HMMA f16 协作矩阵,并借助回写差异比对管理 VRAM 内存池镜像。 |
gpu/vk/eden/ Ampere SM86 到 Maxwell 降级转换与 SPIR-V RecompilerShader Recompiler | gpu/vk/eden/, lower_to_maxwell.h, structured_control_flow.cpp | C++20(Eden 着色器重编译器 + sirit)Eden(Eglantine 构建 181)+ Lichii 控制流修复 | hookshot_programs.bin, hookshot_programs.idx, hookshot_pipelines.bin | 将 10,154 个 Switch 2 Nin_Ounce_NVN2 Ampere SASS(SM86)着色器(包括 249-GPR REGMAP_nx2 顶点/网格程序与任务着色器)降级至 Maxwell IR,并输出 Vulkan SPIR-V。 |
gpu/vk/vk_dlss.cpp NVIDIA DLSS 与内置 AMD FSR 3.1 超采样技术时间超采样与帧生成 | gpu/vk/vk_dlss.cpp, gpu/vk/vk_menu.cpp | C++20 (NVIDIA NGX SDK 310.9.16, AMD FidelityFX SDK 1.1.4)Hookshot 原生集成 | 内置 FSR 3.1 + 运行时 nvngx_dlss.dll 加载器 | 拦截 OoT 的动态分辨率抖动、运动矢量和深度缓冲区,以在所有 GPU 上驱动内置 AMD FSR 3.1,或在检测到 nvngx_dlss.dll 时启用可选的 NVIDIA DLSS 超分辨率(Transformer 预设 K/M/L)。 |
builder/ Hookshot Builder GUI(Windows WPF 与 Linux AppImage)玩家 Launcher 与 Builder UI | builder/HookshotBuilder.sln, scripts/linux/appimage.sh | C#(Windows 上的 .NET 8 WPF)/ Linux 上的 Shell 与 PythonHookshot 官方第一方构建器 | HookshotBuilder.exe / Hookshot-x86_64.AppImage | 校验用户提供的 .nup 或 romfs+exefs 转储,调度无需分发受版权保护资源的单次 10–45 分钟本地 C 构建,并提供运行/Update 控制面板。 |
scripts/ 与 tests/ 存档迁移工具、性能分析器及回归测试套件工具套件与验证 | scripts/oot_saves.py, scripts/prof.py, scripts/framelog.py, tests/run_all.py | Python 3 与 PowerShellHookshot 官方第一方工具 | oot-save-backups/、免游戏文件 CI 回归检测门禁 | 提供 Hookshot 与各 Switch 2 模拟器(Lichii、Eglantine、Orchid、NX2navi)之间的双向存档迁移、1 ms 堆栈采样性能分析,以及无需游戏资产的源码回归测试。 |