I wanted to play the latest build of Doom 64 EX, however because the latest binaries were released over 4 years ago, I have no choice but to compile it myself. Problem is, I'm a layman when it comes to such things, in fact I never did this before and it's making me tear my hair out. I followed the instructions step-by-step, at least as far as I could comprehend and I'm starting to become desperate. If anybody here could help me with this, it would be very much appreciated.
Quick rundown of what I've done:
-Downloaded and installed CMake
-Did the same for Visual Studio 2017
-Downloaded Doom64-EX-master, the Win32 dependencies & FluidSynth-Lite
-extracted the dependencies in the extern folder as specified
This is the point where I'm not making any more progress. I tried running CMake from the command line and from the supplied GUI but during generation it either errored out or gave me VS project files without stating anywhere what to do with them. So far I've had no success in seeing it spit out a .lib or .dll.
Put simply, with the latest "stable" release from 2014, v2.5, I experience occasional mouse stutter/jitter, similar to what Nevander once stated. I tried lowering my sensitivity and my polling rate (as far as I know, DPI can't be changed) but to no avail. Strangely, there is a Windows 10 specific fix which consists of newer sdl and sdl_net dlls, but I'm on Win 7 and it didn't work for me. There was also one nightly release of D64EX two years ago, which did fix the mouse stutter (!), but it crashed when trying to load custom maps and the site where it was hosted went offline. That's why I wanted to build from source myself, but as I stated earlier, I have no knowledge whatsoever. I'd be very thankful if somebody could give me some pointers or walk me through the process, since I guess it might be helpful later in my career path I plan to take. Either that or someone might be so kind to compile it for me
CMake is the only build tool that is supported -- all others have been removed. Make sure you have at least version 2.6.3, and that cmake can be found in the PATH environment variable.
Download the source code for this project, extract it (if applicable), and navigate to it. Then just run cmake:
$ cmake . # Generate build files in the current directory
$ cmake --build . # Compile the project
By default, this will compile a libfluidsynth.a on Linux and fluidsynth.lib on Windows.
It's also possible to use CMake-GUI.
I used the GUI, clicked on Configure, selected Visual Studio 15 2017 as generator, left the optional toolset -t parameter blank, chose "Use default native compilers" from the list of radio buttons and then clicked on Generate.
Here's the output I got:
Spoiler:
Selecting Windows SDK version 10.0.17763.0 to target Windows 6.1.7601.
The C compiler identification is MSVC 19.16.27023.1
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Checking whether system has ANSI C header files
Looking for 8 include files dlfcn.h, ..., float.h
Looking for 8 include files dlfcn.h, ..., float.h - not found
ANSI C header files - not found
Looking for include file unistd.h
Looking for include file unistd.h - not found
Looking for DIR in sys/stat.h;sys/types.h;dirent.h
Looking for DIR in sys/stat.h;sys/types.h;dirent.h - not found.
Looking for string.h
Looking for string.h - found
Looking for stdlib.h
Looking for stdlib.h - found
Looking for stdio.h
Looking for stdio.h - found
Looking for stdint.h
Looking for stdint.h - found
Looking for stdbool.h
Looking for stdbool.h - found
Looking for math.h
Looking for math.h - found
Looking for errno.h
Looking for errno.h - found
Looking for stdarg.h
Looking for stdarg.h - found
Looking for memory.h
Looking for memory.h - found
Looking for sys/mman.h
Looking for sys/mman.h - not found
Looking for sys/types.h
Looking for sys/types.h - found
Looking for sys/time.h
Looking for sys/time.h - not found
Looking for sys/stat.h
Looking for sys/stat.h - found
Looking for sys/ioctl.h
Looking for sys/ioctl.h - not found
Looking for fcntl.h
Looking for fcntl.h - found
Performing Test _have_inline
Performing Test _have_inline - Success
Performing Test _have_vla
Performing Test _have_vla - Failed
Check if the system is big endian
Searching 16 bit integer
Looking for stddef.h
Looking for stddef.h - found
Check size of unsigned short
Check size of unsigned short - done
Using unsigned short
Check if the system is big endian - little endian
Looking for windows.h
Looking for windows.h - found
Looking for io.h
Looking for io.h - found
Looking for dsound.h
Looking for dsound.h - found
Looking for include files windows.h, mmsystem.h
Looking for include files windows.h, mmsystem.h - found CMake Warning (dev) at CMakeLists.txt:322 (set):
Cannot set "FLUIDSYNTH_INCLUDE_DIR": current scope has no parent.
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at CMakeLists.txt:323 (set):
Cannot set "FLUIDSYNTH_LIBRARIES": current scope has no parent.
This warning is for project developers. Use -Wno-dev to suppress it.
Configuring done
Generating done
I then clicked on Open Project, then under Project -> Properties I first set it to build a .lib and then a .dll.
Then I went to Build -> Build Solution and it output a libfluidsynth.dll and .lib, even though the GitHub repo states, it should only be called fluidsynth, so I renamed them.
Then I moved them together with the contents from the dependencies archive into the doom64ex-master/extern folder as specified.
After that I tried generating MSVC files of Doom64EX with CMake, and got this output:
Spoiler:
Selecting Windows SDK version 10.0.17763.0 to target Windows 6.1.7601.
The C compiler identification is MSVC 19.16.27023.1
The CXX compiler identification is MSVC 19.16.27023.1
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx86/x86/cl.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done CMake Warning at CMakeLists.txt:40 (message):
The fluidsynth submodule wasn't initialised. Run `git submodule --init
--recursive` to use fluidsynth-lite, or add -DENABLE_SYSTEM_FLUIDSYNTH=ON
to use the system-provided FluidSynth library.
Found SDL2: C:/Users/Julien/Desktop/Doom64EX-master/extern/include/SDL2 (found version "2.0.8")
Found SDL2_net: C:/Users/Julien/Desktop/Doom64EX-master/extern/include/SDL2 (found version "2.0.1")
Found ZLIB: C:/Users/Julien/Desktop/Doom64EX-master/extern/lib/zlib.lib (found version "1.2.11")
Found PNG: C:/Users/Julien/Desktop/Doom64EX-master/extern/lib/libpng16.lib (found version "1.6.34") CMake Error at C:/Program Files/CMake/share/cmake-3.12/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find FluidSynth (missing: FLUIDSYNTH_INCLUDE_DIR)
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.12/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
cmake/FindFluidSynth.cmake:22 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:120 (find_package)
Configuring incomplete, errors occurred!
See also "C:/Users/Julien/Desktop/build/CMakeFiles/CMakeOutput.log".
So I downloaded Git, opened BASH in the directory, entered
"git submodule --init --recursive"
only for it to respond with "fatal: not a git repository (or any of the parent directories): .git"
This is where I'm drawing the line. I have no idea what I'm doing. I tried everything I could, but I assume I made a completely wrong approach. I'm eager to learn and try out new things, but apparently I'm too stupid for this stuff.
If nobody wants to help me, I'm giving up.
Edit: Compiling instructions for Doom 64 EX:
Compiling on Windows
Download and install CMAKE. Follow the instructions on the website and make sure to update the system. Clone the repository in a suitable place to build the program.
Next, download the Win32 Dependencies. Extract the archive into the extern directory. Also remember to clone fluidsynth-lite and generate the .lib and .dll files. Place these in extern\lib and extern\bin, respectively.
Next, generate the MSVC project files.
$ mkdir build # Create a build directory within the git repo
$ cd build # Change into the new directory
$ cmake .. -G "Visual Studio 15 2017" # Generate MSVC 2017 files
Visual Studio 2017 project files will now be sitting in the build directory.