SatyPardus / wowdecomp
git clone https://github.com/SatyPardus/wowdecomp.git
—
—
stars, 24h
—
stars, 7 days
+364
stars, 30 days · #732
364
★ total
181
forks · 24 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageC++
License—
Created2026-10-02 (18d ago)
Last push3d ago
Watchers11
OwnerUser
Links
README excerpt
# wowdecomp A C++ decompilation of the World of Warcraft 3.3.5a client (`Wow.exe`, build 12340, June 2010). Join the discord for other clients and to show off some cool stuff you build. https://discord.gg/DsZMGUD8aT Every function is reconstructed from the original binary and keeps the address it came from in an `// OFFSET:` tag, so each one can be compared against the original. The source tree follows the layout of the original client (`Engine/Source/ `, `WoW/Source/ `, original file names). x64 is the main target. Win32 still builds and is used to check struct layouts against the 32-bit original. ## Progress The percentages below measure how much of the original binary has a counterpart in this source tree. They do **not** say how much of the game works, and the missing part is not missing gameplay: the client builds into a complete executable and the game is 100% playable. Bugs could still be hiding, though; a ported function can behave differently from the original. Measured against the 12340 binary on 2026-10-15. A function counts as ported when its address is tagged in the source. | | Ported | Total | Share of the original | |---|---:|---:|---:| | Functions | 24,515 | 27,157 | 90.3% | | Code bytes | 5,270,186 | 5,656,573 | 93.2% | The total leaves out 658 functions that IDA identifies as compiler library code and 132 import thunks. Most of the untagged remainder is code the build gets elsewhere: compiler-generated code (static initializers, template instances) that our compiler emits on its own, C runtime helpers, and third-party libraries that are linked from their upstream sources instead of being decompiled (FreeType, zlib, PCRE, parts of FMOD Ex). ## Requirements - Windows 10 or 11 - Visual Studio 2022 with the **Desktop development with C++** workload (MSVC v143 and a Windows SDK) - CMake 3.10 or newer (the one that ships with Visual Studio works) - For Win32 builds only: NASM, on `PATH` or passed as `-DNASM_EXECUTABLE= `, and `DivxDecoder.dll` from your 3.3.5a client copied to `ThirdParty/DivxDecoder/` (the build copies it next to the executables; the x64 build uses its own decoder instead) - A World of Warcraft **3.3.5a (12340)** client. No game data is included in this repository. ## Building From a Developer PowerShell or any shell with `cmake` on `PATH`: [code] In-source builds are refused, so keep the build directory separate (`build/` above). The client is written to `bin/Win/`: | Target | x64 | Win32 | |---|---|---| | `WowClient` | `WowClient64.exe` | `WowClient32.exe` | | `Wow` | `Wow64.exe` | `Wow32.exe` | `WowClient` is the client with a crash logger: it opens a console window and writes `WowClient_crash.log` when the client crashes. `Wow` is the same client without it. You can also turn the logger off in `WowClient` with `-DWOWCLIENT_CRASH_LOG=OFF`. ### Options | CMake option | Default | Effect | |---|---|---| | `WOWDECOMP_DISABLE_SIGNATURE_CHECKS` | `OFF` | Skip the MPQ file and `.toc.sig` signature checks, so modified