If figuring out how a modern game works sounds like fun to you, then you're in the right place! You're more than welcome to contribute; this is a group effort and every contribution helps.
If you have any questions about the project or if you need help with anything, come say hi on the Zelda Decompilation Discord server!
Check out our About page for detailed information about what the project is and what we do.
To contribute to the project, you will need:
- The Switch version of Breath of the Wild, either 1.5.0 or 1.6.0 (the Wii U version will not work)
- A Windows, Linux or macOS computer
- At least 5GB of free disk space (for builds)
- A disassembler or a decompiler such as Hex-Rays or Ghidra
- While not required, getting IDA Pro 7.6+ is highly recommended as this will allow you to use the project IDA database
- Basic knowledge about using Git
- Some basic knowledge about programming (ideally C++ or Rust, or a language with object-oriented aspects such as Python or Java). Familiarity with pointers.
What you don't need:
- ❌ Game dev experience. Most of us aren't even game devs.
- ❌ Deep experience with C++. Some of our contributors didn't know C++ at all when they joined :)
- ❌ Experience with reverse engineering optimised C++ code. Very useful (for obvious reasons) but not necessary, especially if you already know how to decompile C code.
Our project docs assume that you are using Linux (native or WSL) or macOS. If you are on Windows, we strongly recommend that you set up WSL to simplify the setup process. Ubuntu 20.04 is usually a good choice.
How to set up the project
📄️ Editor setup
How to set up your editor/IDE to be more productive
📄️ Decompiler setup and tips
How to setup a decompiler tool for reverse engineering
📄️ How to decompile
A step-by-step guide to decompiling
📄️ Coding guidelines
A set of coding style guidelines that you should adhere to whenever possible.
📄️ Keeping up to date
How to keep up to date with the latest project changes
📄️ C++ codegen primer
C++ implementation trivia useful when reverse engineering and reimplementing C++ code