Compile MESS 0.136 and earlier on Windows

The compiler used for MESS and MAME on Windows has changed starting with version 0.137. These instructions are for versions 0.136 and older. For current compile instructions, go here.

Setting up the source

MESS is developed as a patch for the MAME source, so the MESS source distribution does not include important files like the makefile, which come from MAME.

Download the MESS source and the MAME source with the same version number. Extract the MAME source into a directory somewhere, then extract the MESS source overtop of it, overwriting files if prompted.

Setting up the build tools

Download the Build Tools (or from MAMEDev.org) and follow the instructions to install them. To verify your install, open a command line window and try the following:

C:\>gcc --version
gcc (GCC) 4.2.1-sjlj (mingw32 sjlj-unwind)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

The output should be the same or similar. If there is an error message like this:

C:\>gcc --version
'gcc' is not recognized as an internal or external command,
operable program or batch file.

Then your path environment variable is not setup correctly. To fix this temporarily, use the following command:

C:\>path C:\mingw\bin;%path%

If you installed the tools into a different directory, change the location appropriately.

Building MESS

You are now ready to compile MESS. To do so, change to the directory where you installed the MESS (and MAME) sources using the cd command and drive letters. For example:

C:\>D:

D:\>cd mess

D:\mess>

To start the build process, type mingw32-make TARGET=mess:

D:\mess>mingw32-make TARGET=mess
mkdir.exe -p obj/windows/mess
mkdir.exe -p obj/windows/mess/build
mkdir.exe -p obj/windows/mess/emu/audio
mkdir.exe -p obj/windows/mess/emu/cpu
mkdir.exe -p obj/windows/mess/emu/cpu/apexc
...

When it's finished, you will have some new executables, among them mess.exe and messui.exe.

You will need to create MESS's config files before running, to do that, type mess -cc:

D:\mess>mess -cc

You have now fully compiled MESS, have fun! :)

To compile a symbols-enabled version for backtracing add SYMBOLS=1:

D:\mess>mingw32-make TARGET=mess SYMBOLS=1

See also