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 v2.0.5.

  • v2.0.5
  • Windows + Linux
  • 3,188 GitHub stars
  • GPL-3.0
Advertisement

Hookshot at a glance

Repositorygithub.com/NotRexed/Hookshot (GPL-3.0-or-later)
Latest releasev2.0.5, “v2.0.5: dark faces and shader preparation fixed, AMD terrain grid, builder buttons”, November 8, 2026, 21:38 UTC
PlatformsWindows 10/11 x64 (HookshotBuilder.exe installer), Linux x86_64 (AppImage)
GameOcarina of Time, Nintendo Switch 2 edition (program 0400486024DEC000, update v131072, build e0f3ccfa)
Developer’s test PCRyzen 5 7600X, RTX 4060 Ti 16 GB: about 50 fps walking without frame generation (README); 47 fps in Kokiri Forest, up from 33, after faster-fps
Releases / downloads36 releases, 361,775 downloads (November 9, 2026)

Hookshot appeared on November 5, 2026 and has shipped 36 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

FilePlatformSizeBytesSHA-256GitHub
HookshotBuilder.exeWindows x64176 KB175,61646e1f7d6a8e2649fe34737f3d9536ff5f7e08acefc72d5194dd00ab2c1085672Download
hookshot-setup.txtChecksum list2 KB1,6580397d0b761ec9686271a82f4c0efbb45d5fa14556a884c2e6cabc5dcaddbc78bDownload
Hookshot-v2.0.5-x86_64.AppImageLinux x86_64215.3 MB215,280,12042455cc5c7c21b00ad23476e4e881f4d153dbae093f53037afc9887a8d30352cDownload

On Windows you only need HookshotBuilder.exe; hookshot-setup.txt is the list of parts and SHA-256 values it reads. Until v2.0.0 the release tags were names (low-vram, honest-eta…); “from this version on, releases have version numbers”. The rule from the release notes still holds: every release includes all the fixes from the releases before it, so always take the newest one. Compare a downloaded file with the SHA-256 checker.

How to build Hookshot on Windows

  1. Download HookshotBuilder.exe (176 KB) from the Releases page and run it. It downloads the builder and its tools (about 460 MB, once), checks every part against its checksum and opens the Hookshot window.
  2. Choose your own game files. The builder looks for .nup files in Downloads, Desktop, Documents and the top of each drive and checks each one’s version; Browse and drag and drop still work, as do romfs and exefs folders.
  3. Choose a language and a folder for the finished game, and start the build. The first build takes about 40 minutes; the window shows the time left and lets you choose the number of build workers.
  4. When it finishes, press Play, or use the Desktop and Start menu shortcuts. Since v2.0.0 the shortcut opens a launcher with Play (and Update when a newer release is out); if v2.0.0 did not create the shortcuts, update to v2.0.1 and tick the boxes; the game and its DLLs live in bin inside the game folder.

The build reads your game and never changes it; it writes to the chosen folder and to %LOCALAPPDATA%\HookshotBuilder, which since v2.0.0 keeps only the installed version (#611). 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 the builder downloads.

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.txt beside the game, one NAME=VALUE per 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.

OptionChoices
Quality presetCustom, Minimum (4GB), Low (6GB), Balanced (8GB), High (12GB), Ultra (16GB+)
Frame generationOff, 2x, 3x, 4x (up to 8x since foliage-linux-updater)
Frame pacingOff, On
ResolutionAuto (the game’s own dynamic resolution), 100%, 75%, 67%, 50%
UpscalingOff, Catmull-Rom, Lanczos
Sharpness0 to 100%
Game speedPer frame, Real time (default since foliage-linux-updater)
Handheld profileOff, On
Ultrawide16:9, Monitor’s shape (a wider picture since the ultrawide release)
FPS counterOff, On

With Game speed on Per frame the game slows down whenever it is under 60 fps; Real time keeps normal speed. Upscaling and Sharpness also work with Frame generation off. Since the ultrawide release, Ultrawide (or a window wider than 16:9) draws a wider picture instead of stretching a 16:9 one, keeping the HUD, menus and movies in the middle 16:9; it was tested at 21:9 (3440×1440) and 32:9. The Minimum (4GB) preset now really lowers the renderer’s memory use.

Updating to a newer release

Advertisement

A new release is not a patch: the game is rebuilt from your copy with the new code, but it no longer means starting over. On Windows, open hookshot.exe or the Hookshot shortcut: since v2.0.0 its launcher shows an Update button beside Play when a newer release is out. The update downloads only the changed parts of the builder (about 3–4 MB when only Hookshot’s code changed) and compiles only the changed files, using the game files kept in the folder; a test update took 3 minutes instead of 39, and the current game stays playable until the new one is complete. On Linux, download the new AppImage and build again with the same input and the same game folder. Backing up the user folder (Windows) or ~/.local/share/hookshot (Linux) first is still a good idea.

If you still have an old ZIP-based Hookshot Builder, download HookshotBuilder.exe once by hand; after that, updates are automatic. The first update to v2.0.0 or later moves the game and its DLLs into bin by itself.

KeptReplaced
Your savesThe game program and its DLLs (in bin since v2.0.0)
hookshot_options.ini (menu choices)image.bin and the shader list
hookshot_env.txt, shader caches and the kept game fileslanguage.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

SettingWhat it does
HOOKSHOT_JOBS=<n>Linux builder: how many files compile at once (set it in the terminal that starts the AppImage, or use --cli … --jobs n). On Windows, choose build workers in the builder.
HOOKSHOT_NO_UPDATE_CHECK=1Stops the game from offering newer releases at start.
RX_VK_PIPE_SKIP=0Restores the old behaviour of stopping the frame until a new shader is built (more stutter).
RX_VK_MOVIE_UPSCALE=linearReplaces the movies’ neural upscale with a linear one for small GPUs; softer movies.
RX_VK_NO_FOLLOW=1AMD black-screen test switch from the brighter release; turns off the newest lighting change.
RX_VK_WAIT_GPU=0Turns on the per-frame GPU wait from PR #513 (default on Linux); on Windows it cost about 10 fps in the author’s test.
RX_VK_KEEP_RETIRED=0Brings back giving used GPU memory back on Windows, which fast-updates turned off to avoid device-lost crashes.
HOS_PRESENT_TRACE=<file.csv>Writes a trace of frame times for stutter reports (honest-eta).
HOS_MODSPoints the mods folder somewhere other than mods beside the game.

If something goes wrong

ProblemWhat 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 closesUpdate the graphics driver. Since no-visual-studio, CPUs without AVX2 no longer crash at start.
Black screen with sound while a save loadsThe GPU “device lost” crash; device-lost-fix addressed the NVIDIA case and fast-updates the Intel Arc and AMD cases on Windows. Attach hookshot_log.1.txt (the run before the crash) to an issue if it remains.
Build stops with “clang frontend command failed due to signal”A compiler ran out of memory. Run HookshotBuilder.exe again: since compile-retry it retries that file alone.
“Github answered with an error”GitHub downloads failed (504). The installer retries for about 3 minutes, switches to GitHub’s API and keeps finished parts, so running it again carries on.
OSError [Errno 22] or WinError 1224 at onceAn earlier build was still running; since low-vram a new build stops it first.
“Windows SDK was not found” or missing toolsAn antivirus removed part of the compiler. The builder names this and offers Repair, which downloads the removed tool again.
Controllers do nothing or “Failed loading SDL3 library”Fixed in v2.0.3: SDL3.dll is back in bin\.
Stuck at “Preparing shaders: 99%”Fixed in v2.0.3: the game starts and trailing shaders finish in the background.
Crash on scene changes near Hyrule Castle, Castle Town or KakarikoFix in v2.0.0 (#287); the developer asks to be told if it still happens.
4–5 fps in big areas on higher-VRAM cards with Low presetFixed in v2.0.3: memory limits now apply only to cards that small.
The whole PC freezes on Intel ArcSince low-vram, Intel builds large shaders one at a time (#496).
Black movies on WindowsWindows has no AV1 decoder. The game now says so and opens the free “AV1 Video Extension” page.
Stutter the first time you see somethingShaders are being prepared; it gets better on the second visit. The first start after an update translates every shader again.
Wrong languageChange 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

  • v2.0.5 (November 8, 2026, 21:38 UTC): dark faces and character lighting fixed (compute shaders prepared matching play buffer layout, predicting graphics pipelines, #772); AMD dark terrain line grid in Hyrule Field fixed (#705); builder window scrolls on small/scaled screens with buttons staying visible; build cleanups (#735) and updated README (#730).
  • v2.0.4: hotfix for dark Link and character lighting from v2.0.3 buffer pointer change; RX_VK_CHECKPOINTS=1 GPU crash checkpoint logging on AMD and Intel (#734); Linux builder 1440p/4K readability (#731).
  • v2.0.3: controllers and SDL3 loading fixed (SDL3.dll back in bin\); Minimum (4GB) and Low (6GB) presets no longer throttle high-VRAM GPUs to ~5 fps; stuck at "Preparing shaders: 99%" resolved (game boots and remaining shaders compile behind it); foliage buffer pointers corrected (near-Link bushes and grass no longer vanish); foliage culling reads GPU work counts (#252); ground streaks fixed (#593); CPU draw replay ~15% faster (#585, #423; ~10 ms frame time in Kokiri on RTX 4060 Ti); faster parallel builds split by compile cost (#728, #561, #428); in-game tabbed menu (Q/E or LB/RB) with GPU selector, controller layout presets, camera inversion, and mouse look (#588, #440, #372, #465, #466); builder space cleanup button (#623).
  • v2.0.2: Linux build fixed (conflicting types for 'GetModuleFileNameA' in v2.0.0/v2.0.1 AppImages, #664); AMD and Intel translate 6 compute programs with global compare-and-swap (#597) and 1 with untracked float atomic add (#598); compare-and-swap shader loops are bounded to prevent GPU hangs (likely cause of the Great Deku Tree freeze on RX 6600, #614); two shader recompiler fixes ported from Lichii (#566) plus storage-range alignment (#447); cut-short hookshot_programs.bin no longer crashes at start (#463); ground fog kept when looking down (#638); nup.py --verify names damaged files in a .nup (#626).
  • v2.0.1: launcher and builder fix. When GitHub’s API does not answer (60 requests an hour per PC), the update check reads the release’s setup list or the builder’s version instead of claiming the game is up to date; Desktop and Start menu shortcuts are made again.
  • v2.0.0: launcher with Play and Update; game moved to bin; builder remembers your game files and install folder (#603, #616) and keeps only the installed version (#611); flickering fixed (#574, about 1.5 fps cost); water flicker and fog haze fixed (ported from Fritchii); crash on scene changes around Hyrule Castle, Castle Town and Kakariko (#287); neon colours on AMD (PR #425); fewer device-lost crashes.
  • honest-eta, fast-updates: accurate time left; updates reuse your compiled game (3 files in 10 s instead of 579); fewer device-lost crashes on Intel Arc and AMD under Windows; the installer survives GitHub outages.
  • low-vram: 4 GB cards no longer drop to 4–5 fps in big areas; Intel Arc whole-PC freeze (#496); choose build workers; light Windows theme.
  • faster-fps: per-queue fences (PR #523), 33 → 47 fps in Kokiri on an RTX 4060 Ti; texture corruption in long sessions (#386); crash opening the ocarina note sheet (#500); GPUs without mesh shaders are told so at start.
  • ultrawide: a real wider picture with the HUD kept 16:9; compute shaders compile in the background (AMD black screen after the opening); twice as many shaders prepared before the first start; audio recovers after a failed buffer.
  • new-installer, compile-retry, faster-builds: the 170 KB HookshotBuilder.exe replaces the ZIP and finds your game files; small updates; missing tree leaves (#35); crash logs kept as hookshot_log.1.txt–.4.txt; out-of-memory compiles retried.
  • device-lost-fix: GPU crash while loading (about 1 start in 7 on NVIDIA); 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.

Advertisement

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 3,188 stars and 305 forks on November 9, 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, and since new-installer the small HookshotBuilder.exe downloads them for you and checks each one against its SHA-256. Visual Studio 2022 is only needed to change the builder itself.

How long does a Hookshot build take?

The first build takes about 40 minutes according to the README, and you can use the PC meanwhile. The builder runs one compiler per 2 GB of free memory (at least 4) and retries one that runs out of memory; you can also set the number of workers. Updates are much shorter: since fast-updates they reuse what your last build compiled (a test update compiled 3 files in 10 seconds instead of 579), and since honest-eta the time left shown is accurate.

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?

Since v2.0.0, open hookshot.exe (or the Hookshot shortcut): a launcher shows your version, and an Update button appears beside Play when a newer release is out; since v2.0.1 that check works even when GitHub’s API limit is reached. It downloads only the changed parts of the builder (a few MB) and rebuilds from the game files kept in the folder, compiling only what changed. Opening HookshotBuilder.exe directly does the same. Saves, settings and shader caches are kept. On Linux, download the new AppImage. The update offer can be turned off with HOOKSHOT_NO_UPDATE_CHECK=1.