With none of our active developers using Windows 7 as their primary OS, the userbase dwindling, and Windows 7 starting to meaningfully fall behind newer versions of Windows, it's going to become more and more likely that features are accidentally broken in Windows 7. Eventually, the differences between Windows 7 and newer versions of Windows may increase to the point where we drop support for the aged OS. We don't plan on purposefully breaking support, but, its days are numbered.
Windows 7 had a hell of a run. After the wide rejection of Windows Vista, Windows 7 set the bar for all Windows versions to come. It continued the technical advancements from Vista while righting most of its wrongs, all wrapped up in a friendly, reliable package. This combination was a tremendous success, and users loved Windows 7 so much that it had a support lifespan of over 10 years!
Dolphin has been proud to support Windows 7 for its entire life, and then some. We've supported Windows 7 for 13 years, making it our longest supported single operating system version ever. However, all good things must come to an end. While Windows 7 was able to survive the release of Windows 8 and 8.1, Windows 10 finally provided another popular option, and users have moved on. With Microsoft ending support for Windows 7 a few years ago and more and more software abandoning it, supporting Windows 7 has become a liability for us.
After several months of breaking/restoring Windows 7 support, we've decided to drop support for Windows 7... and Windows 8 and 8.1. We did not take this decision lightly, but after evaluating the situation, we knew what had to be done in order to make sure we can keep working on Dolphin without having to make compromises.
Trials of Supporting Windows 7 in 2022¶
One of the main reasons that supporting Windows 7 has become such a burden is that Microsoft very strongly wanted people to use Windows 10. Once Windows 10 released most new features simply never came to Windows 7. Over the past couple of years, we ran into differences with Direct3D11 support which affected LogicOps Emulation, BSOD issues when using USB Passthrough, among others.
Running into a minor issue here and there wasn't going to cause us to drop support, however. But within the last couple of months, time has caught up to Windows 7. In our previous Dolphin Progress Report, we detailed the back and forth of trying to keep Windows 7 running. We broke it and then fixed it and then broke it again, and had to fix that too.
This was made all the more difficult by the fact that Dolphin's developers have long moved on. Not only are we no longer using Windows 7 regularly, we don't even have any Windows 7 systems readily available for us to test with! This meant that Windows 7 was totally untested by the Dolphin team, so Windows 7 support could break at any time and we'd only know when a user reported issues to us.
This put developers in a rough spot. If we did merge something and it broke Windows 7, that meant we had to add more branches to the code and complicate features, or potentially use a different method altogether to implement said feature. And if an issue was reported months later, which was common due to dwindling user numbers on Windows 7, that meant that it usually fell on another developer to pick up the pieces and fix things. It was okay when it came to one or two minor issues every year, but when it was happening multiple times a month, something had to change.
Few Windows 7 Users to Support¶
When it comes time to make difficult maintenance decisions, one of the things we have to do is a cost versus benefit analysis. In this case, Windows 7 was costing an increasing amount of developer time to maintain. But, if a lot of Dolphin's users were still on Windows 7, then perhaps this would be worth the trouble, at least for now.
So how many Windows 7 users did we actually have? We turned to our optional usage statistics to find out.
Mouse over or tap on a graph for details.
Why and When We Drop Support¶
A shockingly small number of Dolphin's users were on Windows 7, and none of our developers used Windows 7, yet we were still fixing Windows 7 support well into 2022. How did it last so long? The answer is that Dolphin is an open source project! If someone breaks support for an older operating system when merging a new feature, anyone can come behind them and do the work on their own to refactor the code to support the new feature while still maintaining support for the old OS. As long as the new code meets current standards and doesn't over complicate things too much, support is resumed.
However, there is a limit to the sustainability of this process. As a project, we rely heavily on a number of outside libraries and APIs. For example, we use the Microsoft Visual Studio to compile our Windows builds, Qt for our desktop graphical user interface, Cubeb audio library for sound, multiple graphics and input APIs, on and on. These are our dependencies, and if they drop support for an older operating system, the labor involved to refactor code on our own becomes astronomical. At that point, we're not refactoring a single change, we're refactoring someone else's entire project. This is so challenging that even large corporations avoid doing this. For our little volunteer team, it's just too much. So while we do what we can to support older operating systems, when our dependancies move on, it is time for us to move on too.
We were honestly expecting our Windows 7 support to be killed by Visual Studio moving on first, much like it did for Windows XP. But no, something else came up.
Qt6 released without support for Windows 7, and surprisingly also without 8 and 8.1 support. As mentioned earlier, Dolphin uses the Qt GUI framework for our primary desktop GUI. While we have some support through dear imgui and our NO-GUI mode, Dolphin heavily relies on Qt, and Qt6 provided some fixes and functionality that would iron out a few GUI problems that users had reported and allow for new features. As soon as Qt6 was announced to not have support for versions of Windows before Windows 10, their days were numbered. We did however delay our move to Qt6 for quite a while (Qt6 first released in December of 2020), but we wanted the fixes that Qt6 brought and wanted to use its new features. So when one of our developers made a pull request to update Dolphin to Qt6, we weighed out all of the reasons above, and came to a decision.
With the merging of Qt6 support on the Windows buildbot in 5.0-16393, Dolphin has dropped Windows 7, Windows 8, and Windows 8.1. Our minimum spec for Windows is now Windows 10. The currently released beta build is the last beta that will have support for Windows 7 and Windows 8.x. Users on these operating systems should turn off Auto-Update, as newer builds will no longer work on their operating system.
And so we say goodbye to a titan in the history of Operating Systems. As Qt6 is rolled out, our requirements will be bumped up accordingly for all of the different operating systems, except Android which uses a different GUI system altogether.