Windows Installation


Revision as of 05:27, 3 June 2019 by Josh @ Dreamland (Talk | contribs)
Jump to: navigation, search
The official logo of Windows based operating systems and environments.



These steps will help you configure an ENIGMA setup using the modern MSYS2 project. This setup better facilitates both 32-bit and 64-bit compilation.

- NOTE: The x86_64 download button will support compilation of both 32-bit and 64-bit games.


- NOTE: You do not need to type the entire command below. Both Command Prompt and MSYS2 have a right-click menu option that allows you to just paste the command from this wiki page.
- NOTE: These packages are for 64 bit, if you want 32 bit then you need to install the same packages but replace :x with :i in the name of each package. Packages that are virtual (e.g, git) need only the colon after their name to install them with Pacboy.
- The Pacboy command you will need to run is (just press Enter when prompted):
pacboy -S git: make: gcc:x boost:x protobuf:x libpng:x rapidjson:x pugixml:x yaml-cpp:x openal:x dumb:x libvorbis:x libogg:x flac:x mpg123:x libsndfile:x zlib:x libffi:x box2d:x glew:x glm:x alure:x grpc:x pkg-config:x
- Or for 32 bit you'd need to run:
pacboy -S git: make: gcc:i boost:i protobuf:i libpng:i rapidjson:i pugixml:i yaml-cpp:i openal:i dumb:i libvorbis:i libogg:i flac:i mpg123:i libsndfile:i zlib:i libffi:i box2d:i glew:i glm:i alure:i grpc:i pkg-config:i
- Misc packages you may optionally install for some extensions include:
libgme sfml bullet gtk2


Configure an IDE

- Once Java is installed you would most likely want to set up your PATH variable in msys2 (this is one of several ways to fix java command not found)
- Edit the file C:\msys64\etc\profile and add the following
if [[ $MSYSTEM = "MINGW32" ]] && [[ $(arch) = "x86_64" ]]; then
  export PATH=/c/Program\ Files\ \(x86\)/Java/jre1.8.0_181/bin:$PATH
  export PATH=/c/Program\ Files/Java/jre1.8.0_181/bin:$PATH
- This will check your MSYS2 install's arch (which will be 32 bit if you're on 32 bit) in addition to checking the MINGW platform you are using to determine whether to try to load 32 bit or 64 bit jre.
- NOTE: Make sure you change the Java version to the one you have installed; the easiest way to check this is to navigate to C:\Program Files\Java and checking the version.
- NOTE: This method of launching LGM using MSYS2 is recommended over double-clicking the jar because the environment will be configured correctly so that it includes MinGW for ENIGMA to find it.


Cannot find libcompileEGMf

Nine times in ten, this is because you are running 32-bit Java and 64-bit ENIGMA/MinGW, or vice-versa. If the DLL actually exists in your ENIGMA directory, check your Java architecture.

If the file actually doesn't exist, there was probably a build error.

Compiler build errors

Compiler build errors should essentially never happen. They likely mean ENIGMA is so old, C++ no longer allows for what it's doing... or you misconfigured MSys.

The parser isn't happy

ERROR in parsing engine file: The parser isn't happy. Don't worry, it's never happy.

This is true, but some errors are more erroneous than others:

Creating swap.
Dumping whiteSpace definitions...
Opening ENIGMA for parse...
ERROR(ENIGMAsystem/SHELL/Universal_System/lua_table.h,22,34): Could not find map
ERROR(ENIGMAsystem/SHELL/Universal_System/lua_table.h,23,33): Could not find vector
ERROR(ENIGMAsystem/SHELL/Universal_System/lua_table.h,24,29): Could not find cstring
ERROR(ENIGMAsystem/SHELL/Universal_System/lua_table.h,25,19): Could not find cstddef

Those errors are bad. They mean ENIGMA has no idea how to talk to GCC, and they'll likely lead to engine build errors.

How to change your export directories in LateralGM (if your username isn't Unix-friendly).

A likely cause of build errors on Windows is, unfortunately, your username. On Windows, your fully-decorated username appears in most paths, and C:/Users/↑1 ⍵∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂⍵⍝Conway's "Game of Life"/AppData/ENIGMA/ cannot be used with GNU make, because it contains spaces.

Engine build errors

If the build error is in a game, this could be bad code or could indicate an installation or ENIGMA problem. EDL does not share complete feature parity with any one version of Game Maker. It's possible the feature you are using is not implemented. If you are getting severe build errors, you can check the other troubleshooting steps, but feel free to file a bug or contact us on the Forums or GitHub, or more directly over IRC, or Discord.


It is possible for antivirus applications to interfere with ENIGMA's installation. For example, Avast is known to destroy MSys installations. If ENIGMA isn't functioning properly on your machine, please make sure your antivirus is not interfering with it or the toolchain (MSys). So far, we have no reported incidents of this nature. If the compiler build is failing, this is a possibility to consider.

Personal tools