Skip to content

Latest commit

 

History

History
49 lines (34 loc) · 2.29 KB

readme.md

File metadata and controls

49 lines (34 loc) · 2.29 KB

Flame

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.

If you have any bugs in the game, please describe them in the discord channel: https://discord.gg/RvrQpCFUZc When you do, be sure to have followed the recommended installation steps.

How to install

  1. Go to the releases page and download the Flame-1.7.0-*.zip file of the newest release
  2. Extract the zip file into your Dungeon Keeper 2 game directory

Now run DKII-Flame-1.7.0-*.exe to play. It is possible to rename the .exe file to play Multiplayer via GameRanger.

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.

Files explained

The Data folder in the zip file contains patches for some campaign maps taken from the link https://keeperklan.com/downloads.php?do=file&id=141. These fix creatures like Dark Angels not spawning in some campaign maps.

For Software Developers

How it is done

Flame is a new approach to modifying the compiled code of Dungeon Keeper 2

Flame 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. Recompiled functions are supplemented with switchable changes that fix some game bugs

Earlier, this project implemented an approach to fully relinking DKII.EXE, which contains false positive references that caused new bugs.

Build requirements

How to build

  • mkdir build && cd build
  • "D:\Program Files\Visual Studio Community\2022\VC\Auxiliary\Build\vcvars32.bat"
  • cmake -DCMAKE_BUILD_TYPE=Release -GNinja -DCMAKE_INSTALL_PREFIX=../install ..
  • cmake --build .
  • cmake --install .
  • copy "..\install\DKII-Flame-<version>.exe" "<Dungeon Keeper2 dir>/DKII-Flame.exe"