--- INSTALLING MSYS/MINGW --- Run the mingw installer from here: http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/ I used 20111118 the last time I updated this document, but you should feel free to try newer versions. They are more likely to work with newer sources. In the setup GUI, add the "C++ compiler" and "MSYS Basic System" options. Allow the process to download and install the mingw binaries. The setup program installs the msys.bat file to this location by default: C:\MinGW\msys\1.0\msys.bat I created a desktop shortcut to this program. --- INSTALLING DEPENDENCIES --- Run msys.bat to set up your home directory for the first time. You'll find it creates ${install_dir}\home\${USER}. Locate this directory with explorer. Extract the following file into that directory: http://mzx.devzero.co.uk/docs/mingw32.zip Confirm ${USER}\bin\mingw32 has bin, include and lib directories. Now load up System (Windows+Pause). For Vista, click "Advanced System Settings". Go to "Advanced" tab. Click on "Environment Variables". In "System variables" scroll to "Path". Double click this. Add to the end (do NOT replace) the string: ;C:\MinGW\msys\1.0\home\${USER}\bin\mingw32\bin You may need to change this to your true install directory and homedir. If any part of the path has spaces in it, you need to wrap it in "" quotes. ;"C:\MinGW\msys\1.0\home\Stupid Username\bin\mingw32\bin" Close the msys terminal and restart it with msys.bat. Type "sdl-config --version" and confirm that the command can be found. --- INSTALLING MSYSGIT --- http://msysgit.googlecode.com/files/Git-1.6.5.1-preview20091022.exe Run the installer. Select "Run Git and included Unix tools from the Windows Command Prompt". This option will add the main git tools to your machine's PATH variable. It is not as risky as the option makes out. Select "Commit line endings as they are". Complete setup. Close the msys terminal and restart it with msys.bat. Type "git" and confirm that the command can be found. NOTE: Before restarting MSYS you MUST follow these instructions: On Windows 95/98/2000/XP go to: Control Panel -> System On Windows Vista and later go to: Control Panel -> System -> Advanced system settings Click "Environment variables" on the Advanced tab. Find the "HOME" variable in System variables and delete it. (The HOME variable was added by the MSYSGIT installer and conflicts with MSYS. It will break compilation.) --- CHECKING OUT MEGAZEUX SOURCE CODE --- From the MSYS shell, run the following command: git clone git://github.com/ajs1984/megazeux.git After the clone completes, type: cd megazeux Now type: git pull This will always update to the latest available version of code. You can switch branch (if available) with: git checkout branch-name --- BUILDING MEGAZEUX SOURCE CODE --- Type: ./config.sh --platform win32 --prefix $HOME/bin/mingw32 Assuming this does not fail, type: make This build already contains debug symbols (enable optimization with --enable-release to config.sh). You can run MegaZeux with: ./megazeux.exe That's it! --- FAQ --- Q. I arbitrarily hate modular MZX! I hate DLLs! I hate multiple EXEs! Why can't I go back to the old way? Waaaahh. A. Pass "--disable-modular --disable-mzxrun" to config.sh to permanently disable these features. Q. Why are the binaries so huge? I want tiny useless binaries! A. Pass "--enable-release" to ./config.sh, then build with "make debuglink" and delete the .debug files that are generated. Q. I want to create a ZIP to give somebody else. package.sh used to let me do this. A. package.sh was replaced in 2.82b with a GNU make alternative. Build the program as normal and run "make build". You can also type "make archive" to build an archive for your platform (if you have the required archivers installed). Q. Why doesn't my crufty old MSYS/MINGW work with MegaZeux? MegaZeux sucks and is totally at fault for my troubles! A. If there are problems with older or homebrew Win32 toolchains, let me know the specifics and I'll take a look. I might decide to do nothing about it, and ask you to upgrade. Q. Why the crazy prefixing thing? Can't I just put all my stuff in /usr? A. I decided to go the prefix route to minimize the impact of MZX on existing MinGW/MSYS installations. MZX uses customized versions of SDL and requires newish versions of all libraries, which I periodically compile and link here. These are the only supported binaries, and they aren't entirely trivial to build.. Of course, you CAN copy the contents of the tree into /usr and this should work. If it doesn't work and you can prove it's a problem with the MZX build system and NOT user error, please let me know. Q. My question isn't answered here, how come? A. Bug 'ajs' on IRC or send an email query to alistair@devzero.co.uk and I'll try my best to answer your question(s).