Ocarina Recomp Wiki / Hookshot
Hookshot: Ocarina of Time recomp for PC & Linux
Hookshot is NotRexed’s static recompilation of the Switch 2 edition. Hookshot Builder turns your own copy into hookshot.exe or a Linux build in about 40 minutes; the latest release is device-lost-fix.
- device-lost-fix
- Windows + Linux
- 2,006 GitHub stars
- GPL-3.0
Hookshot at a glance
| Repository | github.com/NotRexed/Hookshot (GPL-3.0-or-later) |
| Latest release | device-lost-fix, “GPU crash fix, faster builds”, November 8, 2026, 02:34 UTC |
| Platforms | Windows 10/11 x64 (Hookshot Builder), Linux x86_64 (AppImage) |
| Game | Ocarina of Time, Nintendo Switch 2 edition (program 0400486024DEC000, update v131072, build e0f3ccfa) |
| Developer’s test PC | Ryzen 5 7600X, RTX 4060 Ti 16 GB: about 50 fps walking without frame generation |
| Releases / downloads | 20 releases, 65,221 downloads (November 8, 2026) |
Hookshot appeared on November 5, 2026 and has shipped 20 releases since, several a day. Its README calls it experimental and lists the tested area as Kokiri Forest; Hyrule Field and the rest of the game are marked “not tested yet”, and AMD and Intel cards “never tested” by the developer, although many AMD fixes have since come from contributors.
Download Hookshot
| File | Platform | Size | Bytes | SHA-256 | GitHub |
|---|---|---|---|---|---|
HookshotBuilder.zip | Windows x64 | 398.2 MB | 398,156,393 | c663d16738e3d8970c40bc12e0f2587f96a2e582228139dc0bbb9b4ed79078d9 | Download |
Hookshot-device-lost-fix-x86_64.AppImage | Linux x86_64 | 215.5 MB | 215,493,112 | 29e6214c4403567fc64b04dffee2d37051208d64f8f4d098c7bd97ad7f222774 | Download |
Hookshot’s release tags are names, not numbers. The author’s rule from the release notes: every release includes all the fixes from the releases before it: always take the newest one. Compare a downloaded file with the SHA-256 checker.
How to build Hookshot on Windows
- Download
HookshotBuilder.zipfrom the Releases page, extract it and runHookshotBuilder.exe. Keep thetoolsfolder beside it. - Choose your own game files (the builder accepts a
.nup, orromfsandexefsfolders). The builder checks that the copy is the supported version. - Choose a language and a folder for the finished game, and start the build. It takes about 40 minutes.
- When it finishes, open
hookshot.exein that folder.
The build reads your game and never changes it; it writes to the chosen folder and to %LOCALAPPDATA%\HookshotBuilder. To uninstall, delete both. The command-line route (python -I nx2/make_game.py …) needs Python with lz4, numpy, capstone, unicorn and zstandard, plus the tools folder contents from the builder ZIP.
This site does not explain how to obtain or extract game files. Use a copy you own; never share hookshot.exe, the generated code or the shader caches, because they are made from your game.
Hookshot on Linux
Make the AppImage executable (chmod +x) and start it: it is Hookshot Builder with the compiler, libraries and Vulkan renderer inside, so nothing else has to be installed. Choose your game files, a language and a folder, build, then press Play; the game is also added to your applications menu. --play starts the built game without opening the builder, and --cli takes the same options as make_game.py.
- Needs a 64-bit x86 PC with glibc 2.35 or newer (Ubuntu 22.04, Debian 12, Fedora, Arch, SteamOS…) and a Vulkan 1.3 driver with mesh shaders (Mesa or NVIDIA).
- Build files go to
~/.cache/hookshot-builder; saves to~/.local/share/hookshot. - Switches go in
hookshot_env.txtbeside the game, oneNAME=VALUEper line, as on Windows.
In-game menu: frame generation, upscaling, ultrawide
Press Insert in game, or Home (or Select + Start) on a controller. Everything is off by default; choices are saved in hookshot_options.ini.
| Option | Choices |
|---|---|
| Quality preset | Custom, Minimum (4GB), Low (6GB), Balanced (8GB), High (12GB), Ultra (16GB+) |
| Frame generation | Off, 2x, 3x, 4x (up to 8x since foliage-linux-updater) |
| Frame pacing | Off, On |
| Resolution | Auto (the game’s own dynamic resolution), 100%, 75%, 67%, 50% |
| Upscaling | Off, Catmull-Rom, Lanczos |
| Sharpness | 0 to 100% |
| Game speed | Per frame, Real time (default since foliage-linux-updater) |
| Handheld profile | Off, On |
| Ultrawide | 16:9, Monitor’s shape |
| FPS counter | Off, On |
With Game speed on Per frame the game slows down whenever it is under 60 fps; Real time keeps normal speed. Ultrawide keeps the 3D in shape but stretches the HUD and softens the picture, per the README.
Updating to a newer release
A new release is not a patch: the game is built again from your copy with the new code. Close the game, back up the user folder (Windows) or ~/.local/share/hookshot (Linux), extract the new builder to a new folder, and build again with the same input and the same game folder.
| Kept | Replaced |
|---|---|
| Your saves | hookshot.exe and its files |
hookshot_options.ini (menu choices) | image.bin and the shader list |
hookshot_env.txt | language.txt |
Mods
Put RomFS mods in a mods folder beside hookshot.exe, in the layout emulators use (mods/<name>/romfs/…). Folders starting with - or _ are off; when two mods change the same file, the folder name that sorts last wins. ExeFS patches (.pchtxt, .ips) are not loaded, because the code is compiled ahead of time.
Environment switches
| Setting | What it does |
|---|---|
HOOKSHOT_JOBS=<n> | How many files compile at once during a build. |
HOOKSHOT_NO_UPDATE_CHECK=1 | Stops the game from offering newer releases at start. |
RX_VK_PIPE_SKIP=0 | Restores the old behaviour of stopping the frame until a new shader is built (more stutter). |
RX_VK_MOVIE_UPSCALE=linear | Replaces the movies’ neural upscale with a linear one for small GPUs; softer movies. |
RX_VK_NO_FOLLOW=1 | AMD black-screen test switch from the brighter release; turns off the newest lighting change. |
HOS_MODS | Points the mods folder somewhere other than mods beside the game. |
If something goes wrong
| Problem | What to do |
|---|---|
| “Hookshot supports build e0f3ccfa” | The copy is the wrong version or lacks its update. Hookshot checks the version before building. |
| The game opens and closes | Update the graphics driver. Since no-visual-studio, CPUs without AVX2 no longer crash at start. |
| Black screen with sound while a save loads | The GPU “device lost” crash; device-lost-fix addresses the case seen about 1 start in 7 on NVIDIA. Attach hookshot_log.txt to an issue if it remains. |
| Black movies on Windows | Windows has no AV1 decoder. The game now says so and opens the free “AV1 Video Extension” page. |
| Stutter the first time you see something | Shaders are being prepared; it gets better on the second visit. The first start after an update translates every shader again. |
| Wrong language | Change the code in language.txt beside the game; the file lists them all. |
| “Incomplete .nup” | The input file is truncated. Recent builders name this immediately instead of failing late with “short read”. |
Report bugs on the Hookshot issue tracker with where you were in the game, your graphics card and a screenshot or video. Never attach game files.
Recent Hookshot releases
device-lost-fix(November 8, 2026): GPU crash while loading fixed (#150); faster builds.no-visual-studio: bundled llvm-mingw compiler; fewer flashes; 30 mesh shaders fixed (#351); CPUs without AVX2 (#363); about 15% more fps (27 → 31 in Kokiri on the test PC); Controls page; text speed; quality presets; Alt+Enter fullscreen; SDL 3.4.20 with Steam Controller support.foliage-linux-updater: EvilOOT foliage and lighting; update offer from the game; Linux AppImage; frame generation up to 8x; rumble on DualSense and Xbox.movie-sync,less-stutter,small-vram: movie sound in sync, laptop dual-GPU fix, shorter shader freezes (worst 2.6 s → 1.2 s), 4–8 GB VRAM fixes.
Every release is in the changelog. To compare Hookshot with the other projects, see Hookshot vs Ocarina Recomp.
Frequently asked questions
What is Hookshot?
Hookshot (NotRexed/Hookshot) is a static recompilation of The Legend of Zelda: Ocarina of Time for Nintendo Switch 2. It translates the game’s code to C, reimplements the console’s system software and rebuilds the graphics on Vulkan, producing hookshot.exe on Windows or hookshot on Linux from your own copy. It is GPL-3.0-or-later and was created on November 5, 2026.
Who makes Hookshot?
NotRexed, who also lists BlueShell (Mario Kart World), Skybound (Tears of the Kingdom) and the a64-kit tools in the credits. EvilBoyce (evilmfkr) contributed the foliage, lighting, water and fog fixes, and many contributors send pull requests.
Is Hookshot on GitHub?
Yes, at github.com/NotRexed/Hookshot. Builds are attached to its Releases page; there is also a Discord linked from the README. The repository had 2,006 stars and 186 forks on November 8, 2026.
Does Hookshot need Visual Studio?
Not any more. Since the no-visual-studio release (November 8, 2026), Hookshot Builder brings its own compiler (llvm-mingw), Python and libraries. Visual Studio 2022 is only needed to change the builder itself.
How long does a Hookshot build take?
About 40 minutes according to the README, and you can use the PC meanwhile. device-lost-fix runs one compiler per CPU thread (as many as free memory allows), so builds are faster than before. Rebuilding over the same folder with the same input skips re-reading the game.
Does Hookshot run on Linux and Steam Deck?
Linux: yes, through the AppImage (glibc 2.35 or newer, Vulkan 1.3 with mesh shaders on Mesa or NVIDIA). The README lists SteamOS among compatible systems, but only one Linux PC had been tested and no Steam Deck result is reported. On AMD with RADV, batching submits raised a Radeon 8060S from about 10 to 30–50 fps.
How do I update Hookshot?
Download the new builder (or AppImage), then build again with the same input and the same game folder. Saves (user, or ~/.local/share/hookshot on Linux), hookshot_options.ini and hookshot_env.txt are kept. Since foliage-linux-updater the game also offers newer releases at start (turn off with HOOKSHOT_NO_UPDATE_CHECK=1).