OpenMPT > Technical Documents

OpenMPT 1.29 and libopenmpt 0.5 removed platform support

(1/2) > >>

manx:
OpenMPT 1.29 will remove support for x86 CPUs which do not support the SSE2 instruction set. This change is a consequence of using modern Microsoft Compilers which make it increasingly difficult to even target these CPUs at all.

This removes support, in particular, for the following CPU families:

* Intel Pentium
* Intel Pentium MMX
* Intel Pentium Pro
* Intel Pentium 2
* Intel Pentium 3
* AMD K5
* AMD K6
* AMD K6-2
* AMD K6-3
* AMD Athlon (K7)
* AMD Athlon XP
* Cyrix 6x86MX
* Cyrix MII
* VIA Cyrix 3
* VIA C3
* Transmeta Crusoe
* SiS 55x
* DM&P Vortex 86
* Cyrix MediaGXm
* NSC Geode GX1
* NSC Geode GX2
* AMD Geode GX
* AMD Geode NX
* AMD Geode LX
To the best of our knowledge, we have no known only very few users of OpenMPT 1.28 on any one of these CPUs (according to our statistics).

Also note that none of these CPUs are still supported by any version of Microsoft Windows which is still supported with security patches by Microsoft. Since mid 2018, even Windows 7 security patches require a CPU with SSE2 support. And about half of these CPUs are also unsupported by major Linux distributions.

The minimum required CPUs per manufacturer are:

* Intel Pentium 4 (released 2000)
* AMD Athlon 64 (released 2003)
* VIA C7 (released 2005)
* Transmeta Efficeon (released 2004)
* Zhaoxin Kaixian ZX-A (released 2016)

We are furthermore considering removing support for Windows XP, Windows XP x64, and Windows Vista in OpenMPT 1.29 and libopenmpt 0.5, making Windows 7 the minimum required Windows version. By the time OpenMPT 1.29 and libopenmpt 0.5 will be released, Windows XP and Windows Vista will have been 6 and 3 years without security updates, respectively.

We are aware that we have still about 1.5% users on these old Windows versions, however, we may still decide to drop support for these systems now, because tools that we depend on (like the InnoSetup installer that OpenMPT uses) have dropped support already (which would require us to use outdated versions which are no longer supported), and because documentation for these old system has already been removed by Microsoft.


OpenMPT 1.29 and libopenmpt 0.5 has dropped support for the following compilers:

* Visual Studio 2015
* GCC 4.8, GCC 4.9, GCC 5, GCC 6
* Clang 3.6, Clang 3.7, Clang 3.8, Clang 3.9, Clang 4
* any C++11 compiler, any C++14 compiler
The minimum required compiler versions are be:

* Visual Studio 2017
* GCC 7
* Clang 5
* any C++17 compiler (std::filesystem is not required)

Please, either upgrade your hardware and/or operating system, or you may sadly have to also stay with old OpenMPT and/or libopenmpt versions.

Technical discussion: https://bugs.openmpt.org/view.php?id=1186 / https://bugs.openmpt.org/view.php?id=1183
Elaborate reasoning why we need to drop support for older systems can be found in this thread: https://forum.openmpt.org/index.php?topic=5708


This post is still subject to change and will be updated as needed.

manx:
support matrices:

Windowslatest working OpenMPTWindows 951.16Windows 981.16Windows 98 SE1.18 (1.26.14.00-old with KernelEx)Windows ME1.18 (1.26.14.00-old with KernelEx)Windows NT41.16Windows 20001.26.14.00-oldWindows XP1.28.10.00-oldWindows Vista1.28.10.00-oldWindows 71.29 (current)Windows 81.29 (current)Windows 8.11.29 (current)Windows 101.29 (current)
CPU generationlatest working OpenMPT4861.16586, no CPUID, no CMPXCHG8B1.26.14.00-old5861.28.10.00-old686, no SSE21.28.10.00-old686, SSE21.29 (current)

Version1.191.20-1.221.23-1.241.251.261.271.281.29Timeframe20112012-20132014-201520152016-20172017-20182019-20202020-...Primary Compiler
Secondary CompilerVS2008VS2008VS2008
VS2010VS2010
VS2008VS2010
VS2008VS2015VS2017VS2019Other CompilersVS2010VS2010VS2012
VS2013
VS2015VS2012
VS2013
VS2015VS2017VS2015VS2017Version1.191.20-1.221.23-1.241.251.261.271.281.29Windows NT4 (1996-2004)nonononononononoWindows 2000 (2000-2010)yesyesyesyesyesnononoWindows XP (2001-2014)yesyesyesyesyesyesyesnoWindows Vista (2006-2017)yesyesyesyesyesyesyesnoWindows 7 (2009-2020)yesyesyesyesyesyesyesyesWindows 8 (2012-2016)maybeyesyesyesyesyesyesyesWindows 8.1 (2013-2023)maybeyesyesyesyesyesyesyesWindows 10 (2015-____)maybemaybemaybemaybeyesyesyesyesVersion1.191.20-1.221.23-1.241.251.261.271.281.29

manx:
r11430 (OpenMPT 1.29.00.10) removes optimized functions for AMD MMXEXT and AMD 3DNow! instruction sets.

Affected (by now ancient) CPUs for MMX extensions are: AMD K6, AMD K6-2, AMD K6-3, AMD Athlon (K7), Cyrix 6x86MX, Cyrix MII, VIA Cyrix III, Transmeta Crusoe, Cyrix MediaGXm, NSC Geode GX1, NSC Geode GX2, AMD Geode GX, AMD Geode LX.

Affected (by now ancient) CPUs for 3DNow! are: AMD K6-2, AMD K6-3, AMD Athlon (K7), AMD Athlon XP, VIA Cyrix III, VIA C3, NSC Geode GX2, AMD Geode GX, AMD Geode LX, AMD Geode NX.

These are (for now) still supported, just (potentially) slower.

manx:
r11458 removes optimized x86, MMX, and SSE functions for the cases where we also have SSE2 functions available.

Affected (by now ancient) desktop CPUs are: Intel Pentium (x86), Intel Pentium Pro (x86), Intel Pentium MMX (MMX), Intel Pentium 2 (MMX), Intel Pentium 3 (SSE), AMD K5 (x86), AMD K6 (MMX), AMD K6-2 (MMX), AMD K6-3 (MMX), AMD Athlon K7 (MMX), AMD Athlon XP (SSE), Cyrix 6x86MX (MMX), Cyrix MII (MMX), VIA Cyrix III (MMX), VIA C3 (SSE), Transmeta Crusoe (MMX).

These are (for now) still supported, just (potentially) slower.

manx:
r11501 removed VS2015 support.

Navigation

[0] Message Index

[#] Next page

Go to full version