Any chance of developers looking into why an older mod crashes modern dengine?

I'm interested in this mod http://www.moddb.com/games/heretic/addons/the-wrath-of-magic. I contacted its developer, he still continues its development, but only aims for 1.86 engine.

The last few days I have been trying to build 1.86 for Linux, it was quite a quest, but even when it finally compiled without any error messages, it still wouldn't run.

So, any chance that you could look into why whis mode crashes modern versions of the Doomsday engine?

Comments

  • I took a quick look in the debugger. It appears the mod has some extra S_END marker lumps in the WAD that Doomsday doesn't know how to handle.

    I pushed a quick fix, please have a go with the next unstable build. It at least loaded up the first map for me, but I didn't have time to test it further.
  • I'm going to try compiling build 2524, but after reading https://manual.dengine.net/devel/compiling_and_running I can say, as a man with very limited experience in this and who has never used CMake, that it poses more questions than it answers :)

    I have only dealt with GNU autotools before and there was nothing on this link above about the fact that with CMake all the variables should be prefixed by D, like "DCMAKE_BUILD_TYPE". Well, I have done some reading and know now the most obvious stuff, but the manual is obviously for someone who has already worked with CMake before. And since I have not, even after the reading I've done, I still have some questions.

    Could you please help me with them?

    1. What is the purpose of doing
    git clone --recursive https://github.com/skyjake/Doomsday-Engine
    
    if I have manually downloaded the tarball with sources? Do I need to do it?

    2. If I have unpacked the source into ~/build/doomsday-$version, then I need to create a directory within it where it will be built, say ~/build/doomsday-$version/tmp and execute CMake from there, like
    cmake ../doomsday -DCMAKE_BUILD_TYPE=Release -DPREFIX=~/games/doomsday
    
    Is that right? But this manual https://manual.dengine.net/devel/compiling_and_running says that I need to set the PREFIX variable, but https://cmake.org/Wiki/CMake_Useful_Variables makes no mention of it, and this thread http://talk.dengine.net/discussion/comment/16386/ indicates that there are some problems with PREFIX. So should I use -DPREFIX or -DCMAKE_INSTALL_PREFIX?

    3. I opened CMakeLists.txt and found this code:
    if (NOT IOS)
        if (DENG_ENABLE_TOOLS)
            add_subdirectory (tools)
        endif ()
        add_subdirectory (tests)
    endif ()
    

    I suppose, I should enable these tools, but do I prefix them with D like the rest of CMake variables (like "-DDENG_ENABLE_TOOLS=TRUE"), or not?
  • Kzer_Za wrote: »
    1. What is the purpose of doing
    git clone --recursive https://github.com/skyjake/Doomsday-Engine
    
    if I have manually downloaded the tarball with sources? Do I need to do it?
    If you have a source tarball, you don't need to use git.

    However, Git has the advantage that it's very easy to upgrade to a newer version by doing e.g., "git pull" and doing a rebuild.
    2. If I have unpacked the source into ~/build/doomsday-$version, then I need to create a directory within it where it will be built, say ~/build/doomsday-$version/tmp and execute CMake from there, like
    cmake ../doomsday -DCMAKE_BUILD_TYPE=Release -DPREFIX=~/games/doomsday
    
    Is that right?
    That is one correct way to do it, yes. The build directory can be anywhere you like, as long as it's not the Doomsday source root directory itself.
    But this manual https://manual.dengine.net/devel/compiling_and_running says that I need to set the PREFIX variable, but https://cmake.org/Wiki/CMake_Useful_Variables makes no mention of it
    PREFIX is Doomsday's own variable that will also cause CMAKE_INSTALL_PREFIX to be set. Your earlier command line is correct.
    3. I opened CMakeLists.txt and found this code:
    I suppose, I should enable these tools, but do I prefix them with D like the rest of CMake variables (like "-DDENG_ENABLE_TOOLS=TRUE"), or not?
    You can enable CMake boolean variables like this:
    -DDENG_ENABLE_TOOLS=YES
    -DDENG_ENABLE_TOOLS=ON
    
    Tools include the multiplayer Shell, so you probably will want to built them too, yeah.

    You should check out the CMake GUI or curses-based UI (ccmake), it will show you a brief description of each build variable and make it easier to change their values.
  • I have tried compiling doomsday but it produces this error:
    CMake Error in sdk/libcore/CMakeLists.txt:
      No known features for CXX compiler
    
      ""
    
      version .
    

    I have tried setting variables
    -DCMAKE_CXX_COMPILER_ID=GNU -DCMAKE_CXX_COMPILER_VERSION=7.2.0
    

    but it has no effect.
  • I haven't seen CMake give that error before, so I'm not sure what to do about it. I suspect it means your version of CMake does not recognize the compiler? You could try clearing your build directory (or deleting CMakeCache.txt and CMakeFiles/), and run CMake with the environment variable CXX set to the compiler you wish to use.
  • edited 2017 Dec 13
    I tried the currently available edition of "Wrath of Magic" (released back in October 2010!) using the current unstable Doomsday build 2524, without any other addons.

    "Wrath of Magic" is loadable and playable, but there are a couple issues. Note that "Wrath of Magic" does not provide any new maps. It re-uses the original maps from HERETIC.WAD and replaces several textures (wall, floor, sky), sprites (pickup items, HUD weapons, etc.), sounds (items, weapons, monsters, ambient sfx) and the game music.

    Doomsday does not seem to have a fully correct concept of which textures are to be loaded. I only played the first two levels. While the first level visually appears to be handled fine for the most part (I guess), most of the textures in the second level aren't loaded correctly. For example the floor textures of the entire level are cycling through several different flats in an endless loop.

    You may refer to this comparison page at the "Wrath of Magic" homepage to see how the levels are actually supposed to look like.

    The "Wrath of Magic" documentation mentions that the "Bag of Holding" is not meant to be usable in this mod, therefore its sprite is supposed to be invisible in game. However Doomsday requires an additional WAD-file to make the bag sprite invisible. This WAD (bag.wad) is included in the distribution, actually meant to fix issues with addon megawads.
Sign In or Register to comment.