GitHub Hot Board

GitHub Hot Board · リポジトリアーカイブ

Revivedx/SavageWindRecomp

Work-in-progress static recompilation of The Legend of Zelda: Breath of the Wild (Switch, v1.9.0) for Windows and Linux. Bring your own dump: no game files, keys or dumping tools included. (説明はリポジトリ自身のドキュメント由来です。)

データ時点 October 25Revivedx

最高順位

#11

ダークホース · 埋もれた本命

1.3K

累計スター

67

フォーク数

3

直近 30 日のランクイン日数

掲載 3 日 · 直近30日 +297 スター · 日平均 +993 日連続ランクイン

プロジェクト状態ライセンス: NOASSERTION最終 push: October 25未解決 Issue(PR 含む): 60

2026-10-25 から収集。不明 = 未収集

README にバッジを貼ろう · Revivedx/SavageWindRecomp[![README にバッジを貼ろう](https://git.vaiox.xyz/api/badge/Revivedx/SavageWindRecomp.svg)](https://git.vaiox.xyz/ja/repo/Revivedx/SavageWindRecomp)
<a href="https://git.vaiox.xyz/ja/repo/Revivedx/SavageWindRecomp"><img src="https://git.vaiox.xyz/api/badge/Revivedx/SavageWindRecomp.svg" alt="README にバッジを貼ろう" height="20"></a>

プロジェクト文書

Savage Wind Recomp

Important

This project is made almost entirely with AI. Nearly all of the code, tooling, reverse engineering and documentation here is written by an AI (Anthropic's Claude, through Claude Code), directed, tested and reviewed by a human. It builds on LAS Recomp, which was made the same way. If you don't trust code written by AI, you can simply ignore this project. As with anything on the internet, you run the code at your own discretion.

Savage Wind Recomp is a work-in-progress static recompilation of The Legend of Zelda: Breath of the Wild (Nintendo Switch, version 1.9.0) into a native application for Windows and Linux. The goal is a full PC version of your own copy of the game: a launcher, PC-style graphics options, mods, any controller, keyboard and mouse, and its text and voices in any of its languages.

Warning

Playable, but how far is unknown. Savage Wind plays the opening in the Shrine of Resurrection and the Great Plateau around it at 60 fps, with sound, voices, the HUD, saving and loading. Nobody has played past the Great Plateau on Savage Wind yet, so expect bugs or crashes further on. This is an alpha, a preview for testers. If you find a bug, please report it on GitHub: every report shows how far the game really works.

Tip

Want to contribute? Look at the test branch first. It has every change that is implemented and being tested, ahead of the latest release, so you don't start on something that's already done or in progress. Base your work on test and open pull requests against it: main only moves for a release. See CONTRIBUTING.md.

Note

No game files are included. Savage Wind Recomp needs your own legally obtained copy of the game, updated to version 1.9.0, dumped from your own Nintendo Switch. This project does not include, and will not provide, game files, keys, firmware, dumping or decryption tools, or instructions on how to obtain any of them. Savage Wind never decrypts anything: it only reads files you have already extracted yourself. The recompilation of the game code happens locally, on your machine, from your files.

Getting started (Alpha 3)

  1. Download from Releases:
    • Windows: SavageWind-0.3.0-alpha.3-windows.zip. Extract it to a folder you can write to (not Program Files): your game files, saves and settings are kept in that folder.
    • Linux (x86-64, Steam Deck too): Savage_Wind-0.3.0-alpha.3-x86_64.AppImage. Make it executable (chmod +x) and run it; your game files, saves and settings go to ~/.local/share/savagewind. See docs/linux.md.
    • Linux on ARM (aarch64): Savage_Wind-0.3.0-alpha.3-aarch64.AppImage is highly experimental: it has never run on real ARM hardware. Reports from real hardware are welcome (docs/linux.md, "Testing on ARM").
  2. Run savagewind.exe (or the AppImage). The first time it asks for your game files: pick the folder with your own extracted game (exefs/ and romfs/, version 1.9.0, see below) and choose Set up game files. It checks the version, copies the files, builds the data image and recompiles the game code on your machine - once (about 6 minutes for the game code with a 12-thread CPU, plus the copy and the optional shader precompilation). Your own files aren't changed. When it's done the game starts.
  3. From then on Savage Wind goes straight into the game. The settings, including the text and voice languages, are in the game's Options (pause menu > System > Options, or Options on the title screen).
  4. Savage Wind Configuration (Savage Wind Configuration.exe on Windows, the AppImage's Savage Wind Configuration desktop action or --config on Linux) opens the configuration screen: Play, Settings, your game files (set them up again, rebuild the game code, delete them) and Quit. In game, Quit to Start Screen also comes back to it.

Coming from Alpha 2: extract Alpha 3 to a new folder and set the game files up again with your 1.9.0 files (the game code has to be built again); copy your save folder over to keep your progress. What's new is in CHANGELOG.md.

The setup and configuration screens show Savage Wind's own art. To see a picture of your own there instead, put it next to savagewind.exe (on Linux, in the data folder) as splash.jpg or splash.png; it's only read from your folder and never part of Savage Wind.

Needs Windows 10 or later, a CPU with SSE4.2 (2008 or newer), a GPU with Vulkan 1.3 and about 35 GB of free disk space. AVX2 isn't required: on a CPU without AVX2 / FMA the setup builds the game code in a compatible mode, which runs slower.

What you need

  • Your own Breath of the Wild (cartridge or digital) and its 1.9.0 update, the latest, extracted from your own console:
    • the ExeFS of that version (main, main.npdm, rtld, sdk, subsdk0)
    • the RomFS with that update applied (base game and update merged)
  • DLC: not supported yet (planned, see the roadmap); the title screen's Downloadable Content entry is hidden until then.
  • Windows 10 or later or Linux, on x86-64 (a CPU with SSE4.2; without AVX2 / FMA the game code runs in a slower compatible mode), and a GPU with Vulkan 1.3.

The files go in extracted/ next to the program (git ignores this folder):

extracted/
  exefs/   main, main.npdm, rtld, sdk, subsdk0
  romfs/   the complete RomFS (base game + the 1.9.0 update merged)

The main module's build id tells the exact version; python tools/sw_probe.py (it reads extracted/exefs) prints it and what the recompiler will find there.

Status

Estimates of where each part stands. "Tested in game" is how much of the game has been played through on Savage Wind so far.

Part Progress What it means
✅ Recompiler 100% The whole game (main, sdk and multimedia modules) recompiles to native code
✅ Game files setup 100% Version check, copy, data image and code build, all from your own files
✅ Text and voice languages 100% Any of the game's 15 text languages (16 with 1.9.0's Thai) with any of its 8 voice languages
✅ Voices in another language: crash fix 100% Fixed (#2): the game now sets aside enough memory for voice banks bigger than its own, so any voice language works with any text language
✅ Menus in 12 languages 100% Savage Wind's own screens follow the text language
✅ Sound and voices 100% Mixed by the game SDK's own audio renderer, with room reverb
✅ Keyboard and mouse 100% Every key and mouse button remappable, mouse camera
✅ Settings in the game's Options 100% Video, audio, controls and language pages drawn by the game itself
✅ Direct start + Configuration 100% savagewind.exe goes straight into the game; Savage Wind Configuration has the rest
✅ Window sizes and fullscreen 100% The sizes your display can show; windowed, borderless or exclusive
✅ Ultrawide 100% Video > Fill wide screens (on by default): a window or screen wider than 16:9 (21:9, 32:9) shows more of the world to the sides instead of bars. The HUD stays 16:9 in the middle; the pause menu, the map and the start screen are shown 16:9. Narrower shapes (16:10, 4:3) keep the 16:9 picture with bars
✅ Internal resolution and FSR 1 100% Native resolution up to 4K, or AMD FSR 1 quality modes
✅ Anisotropic filtering and sharpening 100% Ground and paths sharp at a distance (2x to 16x); AMD CAS sharpening of the 3D image, useful with FSR 1
✅ Higher-resolution shadows 100% Sun shadows at the console's 896x896, or sharper at 2048, 4096 or 8192 (Video > Shadow resolution)
✅ Shader and pipeline cache 100% Places you've already seen don't stutter again
✅ Full shader precompilation 100% Optional and on by default, at setup or later in Savage Wind Configuration: all of the game's ~14,000 shaders are translated and compiled ahead of time, so new places and effects don't stutter the first time
✅ Faster game code build 100% The one-time setup takes about 15 minutes instead of about 40 (12 threads) from the next release: the game code builds in about 6 minutes instead of 30 (#43, by @adriadam10)
✅ Frame rate 100% 60 fps by default, or 30, 90, 120 or no limit, with the game at the same speed; menus, cutscenes and conversations too, and videos at their own speed
✅ Field of view 100% Video > Field of view: 70% to 150% of the game's own in play; cutscenes and conversations keep theirs
✅ Steady 60 fps in the open world 100% Holds 60 fps in real play on the Great Plateau (RTX 3060, Ryzen 5 5600X); steady 120 fps (8 ms frames) is the next goal
✅ Game version 1.9.0 100% The latest version and the supported one (its Thai text isn't offered yet). 1.8.2 still sets up and runs, but isn't supported: a bug is only fixed if it also happens on 1.9.0
🔧 Horizon OS services 90% Threads, files, controllers, applets and time: all the opening and the Great Plateau use
🔧 Maxwell shader translator 90% Every shader seen so far translates to Vulkan
🔧 Graphics (NVN on Vulkan) 80% Shrine and Great Plateau look right, shadows included; far parts of the map can still be missing (#20)
🔧 Controllers 70% Any controller SDL knows, by button position; automatic recognition is next, then camera speed set apart for each axis
🔧 Motion controls (gyro) 80% The controller's gyroscope and accelerometer (DualSense, DualShock 4, Switch controllers, Steam Deck) for motion aiming and the tilt shrines; without one, hold T and move the mouse to tilt. Sensitivity and inversion in Options > Controls. Not yet tried with a real controller or in a shrine
🔧 Button icons for your device 80% The game's button prompts show your bound keys and mouse buttons, or Xbox / PlayStation / Nintendo buttons, switching with the device you use
🔧 Variable refresh rate (VRR) 80% Video > VSync: On lets G-SYNC and FreeSync displays show every frame as soon as it's ready, a little under the refresh rate; Fast (the default), Adaptive and Off too. Still to be tried on a VRR display
🔧 Tested in game 50% The Shrine of Resurrection, the Great Plateau, and a walk through every region on a 100% save file. The main quests and the Divine Beasts aren't tested yet, so expect bugs there: report what breaks
🔧 Linux 90% Builds and runs on x86-64 (from LAS Recomp); a steady 144 fps on an RTX 3070 Ti with a Ryzen 5 7600X, and no Linux-only issues so far
🗺️ AMD FSR 3 + frame generation 5% Planned: motion vectors from depth and the camera, FidelityFX SDK
🗺️ NVIDIA DLSS (RTX) 0% Planned, after FSR 3; under NVIDIA's own SDK license
🗺️ Colour grading and HDR 0% Planned: exposure, contrast and saturation settings, colour presets, fog and bloom on or off, and real HDR output on HDR displays
🗺️ Draw distance and detail 0% Planned: trees, grass and objects drawn farther away on strong PCs, or nearer for more fps, and a fixed level of detail (the most detailed models at any distance)
🗺️ Free camera and photo mode 0% Planned: a free camera with the HUD hidden and its own speed and sensitivity, for screenshots, and camera paths through keyframes for videos
🗺️ Effects on or off 0% Planned: a Video page that turns each of the game's own effects on or off, where BOTW has them: ambient occlusion, volumetric fog, grass (3 layers), character light (normal and custom), tone mapper, fragment and main lighting, bloom (3 layers), lens flare, cel shading, fog effects, water, torch fire, the sword sheath, depth of field (also when aiming the bow), screen-space reflections, global illumination and far lights
🗺️ Graphics extras 0% Later: ambient occlusion, volumetric fog and depth of field
🗺️ Built-in benchmark 0% Planned: fixed camera routes that measure fps and frame times and save the results, to compare settings
🗺️ GPU readings on AMD and Intel (Windows) 0% Planned: the performance overlay's GPU use and VRAM for any GPU on Windows (#58); today only NVIDIA, and AMD on Linux
🗺️ Mods 0% Planned
🗺️ Accessibility and assists 0% Planned: text size, colour-blind filters and toggles in place of held buttons; enemy and Link health, damage dealt and taken, weapon durability and stamina use on screen; optional assists: infinite stamina, health or weapon durability, arrows and rupees, no damage at all, no fall damage, health that refills over time, nearby enemies defeated at once, and multipliers for weapon durability, stamina use, damage dealt and taken, and walking, running, climbing, swimming and gliding speed
🗺️ Teleport with bookmarks 0% Planned: save places and travel back to them
🗺️ DLC 0% Later
🗺️ amiibo rewards without figures 0% Planned

✅ done · 🔧 in progress · 🗺️ roadmap

Controls

Any controller SDL knows works, by button position; one with a gyroscope (DualSense, DualShock 4, Switch controllers, Steam Deck) also aims and tilts by motion. Keyboard and mouse defaults:

Action Key Action Key
Move W A S D Camera Mouse (or I J K L)
Walk (hold) C Crouch Left Ctrl
Jump (X) Space Sprint / back (B) Left Shift
Interact / confirm (A) E Attack (Y) Left click
Shield / lock on (ZL) Right click Bow (ZR) F
Rune (L) Q Throw (R) R
Look (right stick press) Middle click D-pad Arrow keys
Inventory (Plus) Tab Map (Minus) M
Tilt the controller (hold, motion puzzles) T + mouse

Every key and mouse button can be remapped in the game's Options (the Keyboard pages), next to the mouse sensitivity and Y inversion, motion sensitivity and inversion and the tilt key (Controls). The game's button prompts show the keys you bound, or your controller's own buttons (Controls > Button icons: Automatic follows the device you use). Esc frees the cursor, a click in the window takes it back. F10 cycles the performance overlay (off, FPS, full).

Building from source

Windows

More detail in docs/BUILD-windows.md.

  1. One-time setup, in PowerShell from the repository root: powershell -ExecutionPolicy Bypass -File tools\setup_windows.ps1. It installs MSYS2 (UCRT64: clang, make, SDL3, FFmpeg, Vulkan, shaderc) and Python for the tools, and switches the clone to LF line endings.
  2. From an MSYS2 UCRT64 shell (or Git Bash with export PATH="/c/msys64/ucrt64/bin:/c/msys64/usr/bin:$PATH"):
    • make -j builds the app, build/savagewind.exe.
    • Put your files in extracted/ (above), then make gen (recompiles the game code into generated/, about a minute) and make -j again (builds it into build/swgame.dll; the first build takes 15-20 minutes).
    • build/savagewind.exe extracted --build-romfs packs your RomFS into the image the runtime reads (extracted/romfs.bin, about 15 GB).
  3. Run: build/savagewind.exe extracted --play, from a shell with C:\msys64\ucrt64\bin on PATH.

Linux

See docs/linux.md: the same steps with the distribution's clang, SDL 3, FFmpeg, shaderc and Vulkan Memory Allocator (build/savagewind, build/swgame.so).

Developer notes (in Spanish) - what was changed from LAS Recomp, how the boot got this far, and the debugging switches - are in docs/SAVAGE-WIND.md.

Respect copyright

  • The Legend of Zelda: Breath of the Wild is © Nintendo. This is a fan project. It is not affiliated with, endorsed by or sponsored by Nintendo. Nintendo Switch and The Legend of Zelda are trademarks of Nintendo.
  • This repository contains no game files, no game code (also not the C code the recompiler generates from it), no assets, no fonts, no keys - and release builds won't either.
  • The game code you generate and the build made from it contain Nintendo's code. They are for your own use only: don't share them, upload them or ship them.
  • Issues, pull requests or discussions that contain game files, keys, generated code or links to pirated copies will be removed. Piracy is not supported in any way.
  • Follow the copyright laws of your country. Dumping a game you own for personal use is legal in some countries and not in others; that is your responsibility.

Credits

License

Savage Wind Recomp's own code is open source under the MIT License, as is LAS Recomp's, on which it builds. Third-party components in third_party/ keep their own licenses. The license covers this project's code only: it grants nothing for Nintendo's game, which you must supply yourself.

The Windows release zip also bundles, unchanged unless noted, under their own licenses:

  • FFmpeg 9.0.2 (libavcodec, libavformat, libavutil, libswscale), LGPL 2.1 or later: built from the official source as LGPL only, without GPL or nonfree parts, by tools/build_deps_windows.sh. They are separate DLLs: you can replace them with your own build of the same version.
  • From MSYS2 (UCRT64, sources there): SDL 3.4.18 (zlib), shaderc 2026.4 (Apache 2.0), libiconv 1.19 (LGPL 2.1 or later), the GCC 16.2 runtime (libgcc, libstdc++: GPL 3 with the GCC Runtime Library Exception) and winpthreads (MIT and BSD).
  • Zig 0.17.0 (MIT; its bundled LLVM, Clang and LLD: Apache 2.0 with LLVM Exceptions; the MinGW-w64 headers and runtime: their own permissive licenses), trimmed to what the game code build uses.
  • swgen/, this project's generator frozen with PyInstaller 6.22 (GPL 2.0 with the bootloader exception): Python 3.14 (PSF License), Capstone 5.0.9 (BSD), Unicorn 2.1.4 (GPL 2.0, source at that link) and python-lz4 4.4.5 (BSD).
  • The Fira Sans font, Medium and SemiBold (SIL OFL 1.1, FiraSans-OFL.txt), and the Noto Sans Thai font, Medium, for the menus in Thai (SIL OFL 1.1, NotoSansThai-OFL.txt).

現在のランクイン

直近30日の推移

スター累計の推移

ランキング推移

日次スター増加

同ランキングで競う隣接リポジトリ · ダークホース

← ランキングへ戻る