Menu

#676 Windows 8, 64bit, compile problems

Always occurs!
open-postponed
None
5
2022-01-01
2021-07-06
No

Here are my Doom Legacy 1.48.8 compilation results (and questions) on Windows 8 64bit, this information may be useful:

These tools and libraries (64 and 32-bit) were used.

  • Msys2 64bit 20210419
  • Mingw-w64-x86_64-9.0.0 and mingw-w64-i686-9.0.0
  • CMake 3.20.1
  • Eclipse IDE 2021‑03
  • SDL 1.2.15-9
  • SDL_mixer 1.2.12-8
  • openlibm 0.7.5-1
  • lwsock32 (shipped with mingw-w64)

Step-by-step instruction. Actual for Doom Legacy 1.48.8

In CMakeLists.txt to the names of the sources in SET SRC add the src/ folder in which they are;
To delete the name of the unused g_state.c, because CMake are spewing error.

Move the headers .h and also the hardware and SDL folders to the main folder where the make_options file is located. It is possible to arrange the files to be coordinated in CMakeLists.txt, but I have not tried.

In order not to pop up an assembly error, the compiler offers me to replace the following lines in sdl/i_system.c:

                    ( cv_mouse_motion->value ) to ( cv_mouse_move->value )

                    (cv_mouse_motion.value==0) || ! cv_grabinput.value to (cv_mouse_move->value==0) || ! cv_grabinput.value

                    switch( cv_mouse2type.EV ) to switch( cv_mouse2opt.EV )

It happens at least from the version 1.46.1; Perhaps it carries some consequences.

Attached is the error log:

  • With CMake create build configuration - Eclipse MinGW Makefiles, default native compilers
  • Build project using Eclipse (open a project from the file system)

Problems.
The second mouse (USB) works like the first, although in the usual
exe from the sourceforge the second mouse crashes the program (if
enabled in Legacy settings)

                    stderr.txt and stdout.txt reports are not generated

any native and software video mode crashes the program right after
the start of the game on the map (only opengl works fine). This error
happens only when using 64-bit doomlegacy.exe

Notes.

Doom Legacy was compiled and tested both in a 64-bit and in 32-bit forms.

Libraries SDL.DLL and SDL_MIXER.DLL were encapsulated inward doomlegacy.exe, without the need for external boot.

CMAKE warning appears if I not change the version information:

Questions.

How to enable the output of the stderr.txt log and stdout.txt in my builds?

How get rid of the crash of the native and software video modes in 64-bit doomlegacy.exe?

Is it possible to add support for the second mouse directly
through USB ports, and not through the ancient hardware which is now
even impossible to test physically?

Now a lot of information on the Legacy website is terribly outdated

  • links lead to the dead websites, as well as on old tools that are
    uncomfortable or cannot be used on current Windows systems. Maybe my
    information will be useful.

Just in case, here is my ogllog.txt (fortunately it is generated):

By the way, another bug report is not related to this topic:

In the latest versions, messages of cheats such as IDDQD and IDCLIP
are not displayed (although there are notifications in the console
itself). In Doom Legacy 1.42, all this was present (or in 1.45).

Also, animated flats are broken (idle) in Doom1 and Doom2. In
Legacy v1.45 they animated properly. Strange, but in TNT and Plutonia
animation is working. As well, animation working if you load any pwad
maps with Doom2 or Doom1.

2 Attachments

Discussion

  • Wesley Johnson

    Wesley Johnson - 2021-07-06

    Cmake warnings

     
  • Wesley Johnson

    Wesley Johnson - 2021-07-06

    Build error log

     
  • Wesley Johnson

    Wesley Johnson - 2021-07-06

    I do not know if the CMake is up to date, as I do not use cmake.

    I use the Makefiles that I have made. These have been kept up to date.

    If you have multiple source directories, then cd to the source directory of your choice.
    The Makefile will compile that source directory.

    You can also issue the Make command from the main DoomLegacy source directory, which
    will compile the src directory by default.

    The build directory has the make_options file, and the bin/ , dep/, and objs/ directories.
    The Makefile will visit the parent directory, and pick up the make_options file.

    The build command for compiling on Mingw, that I use.

    >> mingw32-make    BUILD=build_dir    clean
    >> mingw32-make     BUILD=build_dir    DEBUG=1
    

    I always copy the executable from the bin directory to a run directory which has all the support for executing DoomLegacy (like legacy.wad, SDL, and wad files). I give each version of DoomLegacy a unique name, so many versions can be in the run directory at the same time.

    The output of stderr.txt and stdout.txt are output by the OS, as it wishes. They just show up in the run directory.

    The crash of native video modes is likely due to a library incompatibility.
    You likely have got the OpenGL library right. Make sure you are using 64 libraries with the 64 bit DoomLegacy. You should have a separate run64 directory for testing 64 bit code.
    It needs to have 64 bit versions of the libraries.

     
  • Wesley Johnson

    Wesley Johnson - 2022-01-01
    • status: open --> open-postponed
     
  • Wesley Johnson

    Wesley Johnson - 2022-01-01

    I updated the CMake files as best I could, but I can tell they are still broken, and do not cover any of the options. Need to use the standard Makefile until some CMake expert can make that work as well as the existing Makefile.

     

Log in to post a comment.

MongoDB Logo MongoDB