Flame modifies the Dungeon Keeper 2 code to fix the bugs found in both single and multiplayer. It works with the Disk, Steam and GOG versions of the game.
Warning: Saves and network sessions between Flame and non-Flame Dungeon Keeper 2 versions are incompatible.
But you can use -original-compatible flag to disable some patches that breaks compatibility.
- If you have any bugs in the game, please describe them in the discord channel: https://discord.gg/RvrQpCFUZc or in the GitHub issues.
- It helps a lot if you include steps how to reproduce found bug
- Attaching a good test map is welcome
If you reporting several bugs, please split them to several Discord messages / GitHub issues. Please, be sure to have followed the recommended installation steps.
Imagine you are playing through a storyline campaign and there are moments that are extremely frustrating or simply prevent you from progressing further in the game. These bugs, I consider them critical, and those are the ones I will focus on fixing.
You can vote for an bug that you consider critical at your discretion by placing a rocket emoji(?) on the corresponding issue
- Go to the releases page and download the Flame-1.7.0-*.zip file of the newest release
- Extract the zip file into your Dungeon Keeper 2 game directory
- That's it. Now you can run
DKII-DX.exeas usual
Note: It is possible to find newer test builds on github actions
Note 2: The Data directory are not required for this to work, but are recommended.
The Data folder in the zip file contains patches by Quuz for level editor
Flame is a new approach to modifying the compiled code of Dungeon Keeper 2
Flame recompiles some functions of DKII.EXE into a separate flame/Flame.dll file.
DKII-DX.EXE depends on PATCH.dll. I decompiled whole PATCH.dll functional and included it into flame/Flame.dll.
Flame comes with its own PATCH.dll which handles loading flame/Flame.dll and replacing the references to
the original functions with the references to recompiled functions.
Recompiled functions are supplemented with switchable changes that fix some game bugs and add some functionality
Earlier, this project implemented an approach to recompiles some functions of DKII.EXE into a separate .exe file.
Then it merges this file with the original .exe file, replacing the references to the original functions with the references to recompiled functions. Due to development and debug complexity the exe merge method was replaced by the dll dynamic loading with function replacement.
Also Earlier, this project implemented an approach to fully relinking DKII.EXE,
which contains false positive references that caused new bugs. Due to problems with false positive references, the relinking method was replaced by the exe merge method.
- CMake 3.25 or higher https://cmake.org/download/
- Visual Studio 2022
- Dungeon Keeper II v1.70 (GOG/Steam version)
- Python 3 https://www.python.org/downloads/windows/
cmd (instructions is not for powershell):
mkdir build && cd build"D:\Program Files\Visual Studio Community\2022\VC\Auxiliary\Build\vcvars32.bat"cmake -DCMAKE_BUILD_TYPE=Debug -GNinja -DCMAKE_INSTALL_PREFIX=../install ..cmake --build .cmake --install .copy /Y "..\install\PATCH.dll" "<Dungeon Keeper2 dir>\PATCH.dll"copy /Y "..\install\flame" "<Dungeon Keeper2 dir>\flame"