diff --git a/libs/libopenmpt/SRB2NOTE.md b/libs/libopenmpt/SRB2NOTE.md
new file mode 100644
index 0000000000000000000000000000000000000000..95541107cfd6c51b764119827551994a79141e08
--- /dev/null
+++ b/libs/libopenmpt/SRB2NOTE.md
@@ -0,0 +1,54 @@
+# libopenmpt mingw-w64 binary info
+
+Current built version as of 2019/01/03 is 0.4.0+r11103.pkg
+
+mingw binaries (.dll): `bin/[x86 or x86_64]/mingw`
+mingw import libraries (.dll.a): `lib/[x86 or x86_64]/mingw`
+
+# Building libopenmpt with mingw-w64
+
+libopenmpt must be built from the Makefile / Android dev package in the
+[Downloads page](https://lib.openmpt.org/libopenmpt/download/#all-downloads)
+
+Use the mingw-w64 distributions from
+[SourceForge](https://sourceforge.net/projects/mingw-w64/files/#readme).
+
+You can download the appropriate 7-zip archive, extract to a folder of
+your choice, remove any existing mingw directories from your PATH,
+then call `mingw32-make.exe` from its direct location.
+
+FOR LIBOPENMPT, YOU MUST USE A MINGW PACKAGE THAT SUPPORTS THE POSIX
+THREADING MODEL! DO NOT COMPILE WITH A WIN32 THREADING MODEL!
+
+I use GCC 7.3.0:
+
+* [x86_64-posix-seh](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/7.3.0/threads-posix/seh/x86_64-7.3.0-release-posix-seh-rt_v5-rev0.7z)
+* [i686-posix-dwarf](https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/7.3.0/threads-posix/dwarf/i686-7.3.0-release-posix-dwarf-rt_v5-rev0.7z)
+
+## x86 build instructions
+
+```
+set CFLAGS=-march=pentium -static-libgcc
+set CXXFLAGS=-march=pentium -static-libgcc -static-libstdc++
+set LDFLAGS=-Wl,--out-implib,bin/libopenmpt.dll.a -Wl,-Bstatic,--whole-archive -lwinpthread -Wl,-Bdynamic,--no-whole-archive
+
+cd [libopenmpt-make-src]
+[x86-mingw-w64-bin]/mingw32-make.exe CONFIG=mingw64-win32
+```
+
+`libopenmpt.dll` and `libopenmpt.dll.a` will be built in the
+`bin/` folder.
+
+## x86_64 build instructions
+
+```
+set CFLAGS=-march=nocona -static-libgcc
+set CXXFLAGS=-march=nocona -static-libgcc -static-libstdc++
+set LDFLAGS=-Wl,--out-implib,bin/libopenmpt.dll.a -Wl,-Bstatic,--whole-archive -lwinpthread -Wl,-Bdynamic,--no-whole-archive
+
+cd [libopenmpt-make-src]
+[x86_64-mingw-w64-bin]/mingw32-make.exe CONFIG=mingw64-win64
+```
+
+`libopenmpt.dll` and `libopenmpt.dll.a` will be built in the
+`bin/` folder.
\ No newline at end of file
diff --git a/libs/libopenmpt/bin/x86/mingw/libopenmpt.dll b/libs/libopenmpt/bin/x86/mingw/libopenmpt.dll
new file mode 100644
index 0000000000000000000000000000000000000000..91d59b4f2bad16cce74019f823252f2950f1bad4
Binary files /dev/null and b/libs/libopenmpt/bin/x86/mingw/libopenmpt.dll differ
diff --git a/libs/libopenmpt/bin/x86_64/mingw/libopenmpt.dll b/libs/libopenmpt/bin/x86_64/mingw/libopenmpt.dll
new file mode 100644
index 0000000000000000000000000000000000000000..178b544889b65acc14861677b6067865cc949767
Binary files /dev/null and b/libs/libopenmpt/bin/x86_64/mingw/libopenmpt.dll differ
diff --git a/libs/libopenmpt/lib/x86/mingw/libopenmpt.dll.a b/libs/libopenmpt/lib/x86/mingw/libopenmpt.dll.a
new file mode 100644
index 0000000000000000000000000000000000000000..e06293ef0e12b4337a418a3236f321a20bf1584a
Binary files /dev/null and b/libs/libopenmpt/lib/x86/mingw/libopenmpt.dll.a differ
diff --git a/libs/libopenmpt/lib/x86_64/mingw/libopenmpt.dll.a b/libs/libopenmpt/lib/x86_64/mingw/libopenmpt.dll.a
new file mode 100644
index 0000000000000000000000000000000000000000..e3eb180d39cb48d1ff59f73ee34965046e0c0f12
Binary files /dev/null and b/libs/libopenmpt/lib/x86_64/mingw/libopenmpt.dll.a differ
diff --git a/src/win32/Makefile.cfg b/src/win32/Makefile.cfg
index fe9bb7fbedeb880337f6e24cc793e5296c84e861..11dc51d527654b725ce960da6f93620e9a55b728 100644
--- a/src/win32/Makefile.cfg
+++ b/src/win32/Makefile.cfg
@@ -13,7 +13,7 @@ ifdef MINGW64
 
 ifdef HAVE_OPENMPT
 	LIBOPENMPT_CFLAGS?=-I../libs/libopenmpt/inc
-	LIBOPENMPT_LDFLAGS?=-L../libs/libopenmpt/lib/x86_64 -llibopenmpt
+	LIBOPENMPT_LDFLAGS?=-L../libs/libopenmpt/lib/x86_64/mingw -lopenmpt
 endif
 
 	SDL_CFLAGS?=-I../libs/SDL2/x86_64-w64-mingw32/include/SDL2 -I../libs/SDL2_mixer/x86_64-w64-mingw32/include/SDL2 -Dmain=SDL_main
@@ -25,7 +25,7 @@ else
 
 ifdef HAVE_OPENMPT
 	LIBOPENMPT_CFLAGS?=-I../libs/libopenmpt/inc
-	LIBOPENMPT_LDFLAGS?=-L../libs/libopenmpt/lib/x86 -llibopenmpt
+	LIBOPENMPT_LDFLAGS?=-L../libs/libopenmpt/lib/x86/mingw -lopenmpt
 endif
 
 	SDL_CFLAGS?=-I../libs/SDL2/i686-w64-mingw32/include/SDL2 -I../libs/SDL2_mixer/i686-w64-mingw32/include/SDL2 -Dmain=SDL_main