This page describes how to build Fuse on Windows using the MinGW-w64 compiler and MSYS2, an environment that includes a collection of Unix tools. These instructions are correct as of May 2023.
Download the installer of MSYS2 (64 bits, Windows 8.1+) and run the setup program.
Make sure you update the package database and pacman after the installation:
pacman -Suy
Install the following packages (other dependencies will be automatically selected as well):
pacman -S base-devel
pacman -S autoconf
pacman -S automake
pacman -S libtool
pacman -S mingw-w64-i686-toolchain
pacman -S mingw-w64-i686-libgcrypt
pacman -S mingw-w64-i686-libpng
Start a new shell with the MinGW64 Win32 compiler MSYS2 MINGW32:
C:\msys64\mingw32.exe
and test the compiler availability:
gcc --version
Let's start building some libraries needed by libspectrum and Fuse. Only libspectrum is a requirement for Fuse, the rest provide some features than could be disabled. Normally, you should use the latest version available.
Upstream source tarball from <http://audiofile.68k.org/> is outdated (version 0.3.6). Download latest git source code with some Debian patches:
https://github.com/sbaldovi/audiofile/archive/refs/heads/patched.zip
and then build the library:
$ cd audiofile-patched/
$ ./autogen.sh --disable-static --disable-flac --disable-docs --disable-examples
$ make
$ make install-strip
$ cd ..
Get the source tarball from <ftp://xmlsoft.org/libxml2/>. The current version is 2.9.12.
$ cd libxml2-2.9.12/
$ ./configure --disable-static --without-iconv --without-python --without-lzma
$ make
$ make install-strip
$ cd ..
Get the source tarball from <http://sourceforge.net/projects/fuse-emulator/files/libspectrum/>. The current version is 1.5.0.
$ cd libspectrum-1.5.0/
$ ./configure --disable-static --with-fake-glib
$ make
$ make install-strip
$ cd ..
Get the source tarball from <http://sourceforge.net/projects/fuse-emulator/files/fuse/>. The current version is 1.6.0.
Patch compat.h file by adding this line:
#include <ws2tcpip.h>
after:
#include <winsock2.h>
Build the program:
$ cd fuse-1.6.0/
$ ./configure --with-win32
$ make
$ make dist-win32-dir
$ cd ..
That should make the fuse-1.6.0-win32/ directory with almost all files.
The executable will need some libraries from c:\msys32\mingw32\bin\ (or /mingw32/bin/):
libaudiofile-1.dll
libbz2-1.dll
libgcc_s_dw2-1.dll
libgcrypt-20.dll
libgpg-error-0.dll
libpng16-16.dll
libspectrum-9.dll
libstdc++-6.dll
libxml2-2.dll
libwinpthread-1.dll
zlib1.dll
Congratulations! You have now built Fuse for Windows from sources.
The SDL UI doesn't look like a native Windows application but has some nice features like full-screen. To build this flavour take these extra steps...
Install the libSDL 1.2 library:
$ pacman -S mingw-w64-i686-SDL
Configure Fuse with these options:
$ ./configure --without-win32 --with-sdl
Finally copy also this library to the fuse-1.6.0-sdl/ directory:
SDL.dll