Releases: DiaLight/Flame
Flame bugfixes
I'm slowly decompiling functions that use the ddraw.dll graphics library in order to then try to update the graphics engine
While I was working on this, the community found several bugs. Because these bugs were fixed, I'm making this release in the middle of work
This release fixes the following Flame related bugs:
- Keepers can't complete the campaign levels. Fixed by use LevelFixes instead of Quuz_LevelFixes by default. details
- fixed the lack of sound when pressing a button. details
- fixed saving options changed in the game
added -skip-launcher command line flag
update v260206:
- fixed crash on trying to manual save game. details
update v260228
- fixed freezing in FPV mode when running through Wine. details
Alternative resources
I was thinking about how many original files Flame replaces when it installs. It would be cool to put them in a separate folder, and then tell the game to look in that folder first when it needs a file
In the Flame welcome window, you can now choose which folders in the flame/resources/* path and in what order the game will search for files before searching its default paths
Releases will now come with additional resources for the laziest
Flame is now dll. Welcome window
This update without bug fixes. I don't want to fix bugs anymore. I want to create new ones
[breaking change] Flame is now a dll and is loaded from custom PATCH.dll
- The reasons for these changes are described in the Discord channel message
- Join link: https://discord.gg/RvrQpCFUZc
[new] Flame can now be built in debug mode and be debugged in your favorite IDE
[new] added welcome window with settings. You no longer have to manually edit the Flame settings file
[new] added resources unpacking and parsing progress window
[change] moved Flame loading resources to PATCH.dll since this dll is now loading Flame.dll
[change] StackWalker has been reworked
[added] big screen resolution support
[new] flame config was split to sections
- Game progress section is now saved to Data/Save/Flame-GameProgress.txt file
- This file is picked up by Steam and GOG cloud system for synchronizing game progress
I'm too lazy to document all the minor changes in releases. I'll only describe the significant ones. For details, see the commits
Quality of life
I still haven't gotten around to custom campaigns. I guess I shouldn't guess what direction I'll work in yet.
changes made since last release:
[new] added flame:limit-tps option for high frequency monitors
[new] reworked mouse relative/absolute mode control. rotate/zoom by mouse is now supported
[new] added autosave feature
[new] added ability to disable builtin gog patches
[new] reversed DirectPlay part of Weanetr.dll (You can now use Flame in NukemNet)
[new] added autohost and autoconnect options to start game from the network menu (for NukemNet)
[fix] reworked fix for freeze at game exit
[fix] dk2 bug where it was not possible to save value 0 in flame config
[fix] flame config was not allowing the game to run if there are errors in the config
[fix] flame config error message was unreadable
[fix] all scirmish games were limited to 1 minute by default
[misc] hardcore refactoring of respondToAttack
[fix] respond to threat fix was reworked
[fix] added drop select penalty to drop blocking creatures
[fix] game was freezing when alt+F4 exiting while level running
[fix] there was some network freezes in single threaded mode
[fix] there was black font in game texts
because of my inattention
[fix] fixed crash after skipping level finish cutscene
One Flame config for all options
It's been a while since the last release. I left protocol analysis, moved on to reversing the GUI structure to implement custom campaigns, and found myself enjoying implementing the Flame configuration.
Since I made some big changes, it's time to release.
changes made since last release:
[build process] venv directory renamed to .venv
[gui] Completely reversed structure of the GUI of the main menu and all submenus. Now I can change the position, size, text of any element in the main menu.
Also now I can add new custom menu views. But there is still the in-game gui structure that needs to be reversed
[fix] automatically generate missing texture if texture loading fails (null surface fix)
[utils] I added the CImg library as a dependency to debug some textures. I want to know what is inside the buffers I encounter in the code (src/dk2/gui/visual_debug.h)
[cfg] I added the Toml11 library as a dependency to store all possible game configs in one file with the documentation
[misc] Now I create a flame subfolder in the game directory and store all flame related files in the flame subfolder
[misc] Flame-CrashInfo-.txt files will be saved in the /flame/CrashInfo/ directory whenever a crash occurs
[misc] Flame-StackInfo-.txt files will be saved in the /flame/StackInfo/ directory when the user presses F12 key
[cfg] Flame config is implemented (src/tools/flame_config.cpp). It will be saved in flame/config.toml path in game directory
[cfg] All registry interactions have been redirected to the flame config. The registry branch "HKEY_CURRENT_USER\Software\Bullfrog Productions Ltd" will no longer be created
[cfg] gog config values are now stored in the flame config. Values from the file %APPDATA%/GOG/DungeonKeeper2/Config.ini will no longer be read
[cfg] All DKII command line parameters are now stored in the flame config
[cfg] All previously introduced Flame command line options are now stored in the flame config
[misc] Flame DKII is now fully portable. All configs and progress are now stored in the /flame directory
[cmd] any value in the flame config can be temporarily overridden by command line flags. This makes the original DKII command line options work and the new system backwards compatible.
[cmd] Added command line option -h, which describes available flame config options
[fix] added flame:single-core config value enabled by default. https://discord.com/channels/480505152806191114/1289590948702982176/1359977521743134861
[fix] in single-core mode the game sometimes freezes when exiting the game (always in windowed mode). Haven't found the cause yet. Fixed by setting the process to use two cores when exiting the game
quick fix: Flame-1.7.0-250428.zip
correct fix for freeze at game exit
quick fix: Flame-1.7.0-250501.zip
fixed bug where it was not possible to save value 0 in flame config
quick fix: Flame-1.7.0-250504.zip
flame config will not allow the game to run if there are errors in the config
fixed flame config error format
fixed bug: all scirmish games was limited to 1 minute by default
Step to Multiplayer Tweaks and Fixes
weanetr was decompiled, but without DirectPlay
all weanetr usages in dk2 was decompiled and weanetr.dll was removed from flame.exe import table
added option to be original DKII-DX compatible -original_compatible
[Quuz] added Data\editor and Data\Sound folders with files fixes by Quuz
fixed interface selection when connecting to a local network with multiple interfaces installed on a PC
added optional -myip <ipv4> option to force select network interface
compile app in gui mode by default
mouse dx actions allocation moved to dk2 memory space
resume all threads after traces was collected in bug hunter
added instructions in readme on how to report bugs
v241029
fixed bugs:
[Elden] crash on entity spawn limit in HeroParty
[Quuz] ability to drop creature anywhere by grabbing it with a CTA flag
More details on the fixes in Keeper Klan Discord server https://discord.gg/RvrQpCFUZc
quick fix: Flame-1.7.0-241101.zip
[Elden] MPD hero gates is not working (decompilation mistake)
quick fix: Flame-1.7.0-241103.zip (broken for multiplayer)
[Slook] sometimes we couldn't drop units from the evil hand (bad CTA drop fix)
quick fix: Flame-1.7.0-241104.zip
[Elden] If you throwing a creatures now it can crash
The entire CTA fix(drop_thing_from_hand_fix) has been reworked
quick fix: Flame-1.7.0-241107.zip
[Quuz] You can drop an imp through the fog of war
quick fix: Flame-1.7.0-241109.zip
[Quuz] If you use possession on a sleeping creature you will be invisible. No one will attack you
quick fix: Flame-1.7.0-241119.zip
[Rothinsky] As soon as the enemy dungeon heart is destroyed the game freezes
Comfy gaming update
fixed bugs:
[BlueFire4101] Wooden Bridges not burning on lava properly
[Biervampir] You can scroll in the main menu, to zoom out of your dungeon
[aabluedragon] The host port number seems to be limited up to 4 digits in the game menu.
[L0nger] seems like low fps on flame
[DiaLight] added -windowed option to run the game in windowed mode (
Warning! In windowed mode, some GOG patches are disabled)
[Elden,Impboy] 100 rooms bug crash
[Elden] increased max room limit from 96 to 255
[YourMaster] properly remove whole room near room limit
[YourMaster] bundle campaign fixes
[SexyJesus] increased zoom limits
[SexyJesus] fixed mouse sensitivity in possession
[Biervampir] Chat in multiplayer can crash the game
[DiaLight] fixed crash in windowed mode on intel graphics
bug hunter: Fixed single-frame traces
bug hunter: try search codeview guid for libs with no version info
bug hunter: calc sha1 for libs with no version info and no codeview
CrashInfo: Fixed potential hangs when creating CrashInfo
Crashinfo: dump only game related threads
More details on the fixes in Keeper Klan Discord server https://discord.gg/RvrQpCFUZc
Bug hunter update
fixed bugs:
[DiaLight] mouse control rewritten from dinput to user32 messages
[DiaLight] made wasdeq control keys by default. QE - rotation, zoom - mouse
[YourMaster] backstabbing bug (a.k.a. North/South bug)
[Longer] workshop bug in which crafting first item determines work cost for all the future items
[YourMaster] in 1.7 the AI does not drop his creatures to attack
[BlueFire4101] creatures don't consistently setup Lair properly
When an exception occurs that was not handled by try/catch blocks and it will definitely crash the game, information about the error appears in the game folder in Flame-CrashInfo-<date>.txt
Pressing F12 during the game will collect stack traces of all threads and save them in Flame-StackInfo-<date>.txt. The collection can be done no more than once per second while holding the key
More details on the fixes in Keeper Klan Discord server https://discord.gg/RvrQpCFUZc