搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

NotRexed/Hookshot

游戏

把受支持版本的 Switch 2《时之笛》静态重编译成 Windows 原生程序,用 Vulkan 运行。

1,746
152
C++
NOASSERTION
创建于 2 天前

项目介绍

Hookshot 针对 Nintendo Switch 2 版《塞尔达传说:时之笛》做静态重编译。它不通过模拟器运行游戏,而是把游戏的 ARM64 代码翻译成 C,编译成 Windows 程序,重新实现主机系统层,并把游戏的图形调用重放到 Vulkan 上。

仓库提供的是构建工具和运行时,不包含游戏、密钥或现成可执行文件;可玩的版本需要用户用自己的游戏副本在本机构建,生成文件也应留在本机 README 第 26–30 行。

项目自述为实验状态:测试仅在一台 PC(Ryzen 5 7600X、RTX 4060 Ti 16 GB)上进行,且主要集中在游戏起始区域。Kokiri Forest 的游玩、声音、手柄、键盘和存档、游戏内菜单、帧生成与放大被列为可用;Hyrule Field 和游戏其余部分、AMD 与 Intel 显卡尚未测试;不开启帧生成时步行约 50 fps 项目状态。

快速使用

图形界面是最短的路径:从 Releases 页面下载 HookshotBuilder 压缩包,解压后让 tools 文件夹与 HookshotBuilder.exe 保持相邻;选择游戏的 .nup 文件,或 romfs 与 exefs 文件夹,设定语言和输出目录,然后开始构建。构建完成后在输出目录运行 hookshot.exe。

命令行方式需要受支持的 .nup 或配套的 romfs/exefs 文件夹:

python -I nx2/make_game.py --nup "C:\path\your-game.nup" --out "C:\Games\Hookshot" --language en-US

使用文件夹输入时,把 --nup 换成 --romfs 和 --exefs README 第 72–74 行。加 --check 时只检查版本,不执行构建。构建耗时约 40 分钟。

构建前需安装带「使用 C++ 的桌面开发」工作负载的 Visual Studio Build Tools(含 Windows SDK)Visual Studio 下载。走命令行还需要 Python 3 及 lz4、numpy、capstone、unicorn,位于 C:\emsdk 的 emsdk clang emsdk,以及放在 third_party/ 的预编译工具 a64emit、lld-link、zbic 和 SDL2 环境要求。

游戏内设置

进入游戏后按 <kbd>Insert</kbd> 打开菜单。所有选项默认关闭,选择会保存在游戏可执行文件旁的 hookshot_options.ini。菜单包括帧生成(关闭/2x/3x/4x)、帧同步、内部分辨率档位、Catmull-Rom 或 Lanczos 放大、锐度、游戏速度模式、掌机配置、超宽屏处理和 FPS 计数器 游戏内菜单。

输入支持手柄或键盘鼠标;键盘上用 <kbd>W</kbd> <kbd>A</kbd> <kbd>S</kbd> <kbd>D</kbd> 移动,方向键转动镜头 操作方式。

使用约束

  • 游戏版本: 仅支持程序 0400486024DEC000、更新 v131072、构建 e0f3ccfa,其他版本无法使用 环境要求。
  • 平台: 目前仅支持 64 位 Windows 10 或 11;Linux 支持被列为贡献方向,不是现有选项 参与贡献。
  • 硬件: 需要支持 Vulkan 1.3 和 mesh shader、驱动较新的显卡,且只测试过 NVIDIA;建议至少 16 GB 内存(运行时约占用 10 GB),构建期间需约 60 GB 可用空间 环境要求。
  • 输入材料: 必须自备游戏副本。仓库不包含游戏、密钥或可执行文件,也不说明如何获取 README 第 26–30 行。
  • 构建影响: 构建只读取游戏、不修改游戏,写入所选输出目录和 %LOCALAPPDATA%\HookshotBuilder,文件系统允许时用硬链接处理 romfs README 第 99–105 行。
  • 许可证: Hookshot 自身代码为 MIT,但包含的 Eden 与 suyu 代码仍按 GPL 处理,因此编译出的游戏整体适用 GPL-3.0-or-later 许可证说明。

工作原理

nx2/lift.py 把游戏的 ARM64 代码翻译成 C,nx2/build.py 将其与 host/ 系统层一起编译;host/nvn_native.c 记录 NVN2 图形调用,gpu/vk/ 在 Vulkan 上重放;Switch 2 的 Ampere 着色器先降级到 Maxwell,再经 Eden 的着色器重编译器翻译为 SPIR-V README 第 142–151 行。更多细节见开发指南和设计说明。

HotRepo 点评

Hookshot 在 2026-11-07 进入 HotRepo 新项目榜,记录时共有 238 stars;在已记录的一小时统计窗口内新增 97 stars 和 13 forks,未记录到全语言 GitHub 日榜名次。对于一个需要特定游戏版本、长时间本机构建和 Vulkan/NVIDIA 显卡的项目,这是相当快的首日关注信号。关注度本身不能说明有多少人完成过构建,也不能说明游戏已经玩到 Kokiri Forest 之外多远。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。