WoW: Difference between revisions
No edit summary |
No edit summary |
||
| Line 9: | Line 9: | ||
Many attempts have been made throughout history to study the internals of this client. | Many attempts have been made throughout history to study the internals of this client. | ||
To consolidate and refine our collective understanding, [[Thunderbrew:Binana|Binana]], a repository of symbol databases and C headers, was created. | To consolidate and refine our collective understanding into a usable reverse-engineering package, [[Thunderbrew:Binana|Binana]], a repository of symbol databases and C headers, was created. | ||
=== Compilers used === | === Compilers used === | ||
Revision as of 22:56, 11 June 2025
The Whoa and Thunderbrew projects are based on the mission of recreating a faithful and open-source implementation of the World of Warcraft 3.3.5a.12340 Wrath of the Lich King client.
Why 3.3.5a?
The game and its libraries have become significantly more complex in the intervening 10+ years. By picking 3.3.5a, it's possible to imagine our implementation will eventually be complete.
Study
Many attempts have been made throughout history to study the internals of this client.
To consolidate and refine our collective understanding into a usable reverse-engineering package, Binana, a repository of symbol databases and C headers, was created.
Compilers used
On Windows, the client was known to be compiled using the Microsoft Visual C++ Compiler (but which version?)
On MacOS, the XCode version of GCC was used.
Libraries
The WoW client was known to have the following libraries:
- fmod - For in-game audio playback
- lua - Used extensively for Glue and FrameScript. Much of the client runs through this Lua interface.
- libexpat - Used to parse XML, commonly used in GlueXML and FrameXML
Software that supports 3.3.5a
3.3.5a benefits from a significant buy-in from the community of developers. This makes it the de facto standard version of WoW, allowing relative ease of development.