Directions for building the Windows Installer. it is required that you have cygwin with tar, gzip, 'zip', and perl installed http://www.cygwin.org alternatively, steps 3 and 4 can be completed on a linux machine (which will probably work better anyway) The following additional tools are required: NSIS 2.0b3 or newer: nsis.sourceforge.net Optionally: upx 1.90 or newer: http://upx.sourceforge.net/#unstable resource hacker: http://www.users.on.net/johnson/resourcehacker/ 1) Compile uqm.exe. Note that uqmversion.h defines the version of UQM to build, and should be set appropriately before compiling 2) Build content .zip files and content.nsh For this procedure, you must have no modifications in the content tree. having additional files won't cause any issues, but there can't be any modified files. ./build_archives.pl This will generate .zip files of the content directory (assuming uqmversion.h defines the version as 0.3): uqm-0.3-content.zip uqm-0.3-voice.zip uqm-0.3-3domusic.zip These files should be uploaded to the distribution web page It will also generate content.nsh which contains information about the archives, for use in the installer 3) Modify the install script: Edit options.nsh, and change the following variables: DOWNLOAD_LOCATION: The default directory to download the archives from if not using a mirror file. NOTE: This parameter can be overridden by setting <...>_LOCATION an a per-archive basis. MIRROR_LOCATION: The default location of the mirror file to use for retrieving the archives if <...>_USE_MIRROR is defined (see below). The mirror file contains a list of directries (http) where the data-file can be downloaded from. NOTE: This parameter can be overridden by setting <...>_LOCATION an a per-archive basis. Each of the archives can be fine-tuned using per-archive defines. For most of these, the defaults should be fine. The only paramater that is likely to need changing is: <...>_USE_MIRROR: Whether to use a mirror file or not. If this parameter is not defined then DOWNLOAD_LOCATION will be used, ootherwise MIRROR_LOCATION will be used. If <...>_LOCATION is defined, then <...>_USE_MIRROR must still be set depending on whetehr the locationn is a mirror-file or directory. (NOTE: DO NOT set it to '0'. The value should either be defined as '1' or not at all. Defining it is '0' WILL break things) The other sections that may be changed are defined below, however it is STRONGLY recommended that you do not change them without being sure of what you are doing! <...>_LOCATION: The path (http) to retrieve the data-file or mirror- file from (depending on the value of 'USE_MIRROR') USE_UBX: This will compress uqm.exe and the installer with ubx. This may break the game and/or installer, and is not recomended. MUI_VERSION: The version of UQM you are building. This parameter is normally auto-defined by reading uqmversion.h, but can be manually overridden if needed. 4) Run NSIS to build the installer: makensis uqm.nsi The installer expects all the dlls to be in the same directory as uqm.exe 5) You should be done.