dolphin
dolphin copied to clipboard
update min win10 version from 1703/15063 to 1903/18362
- update min win10 version from 1703/15063 to 1903/18362
- according to analytics, barely any users will be affected by this.
- makes
std
timezone-related stuff available (see the issue) (actual change can be future PR)
- use GetUserDefaultGeoName instead of older apis
- This can now return 2 character results or longer, I've made it only accept the 2 character one.
- This api became available at 1709
Here's illustration of the amount of users this may affect (cannot tell from the graph if these users are actually updating dolphin, so may be less):
In total it seems less than 2%. Anyone actually updating dolphin in this older OS range should see a prompt in the Updater flow.
This is kind of doubling as a little test to see if anything blows up when we actually bump this min version number.
I believe our real world minimum Windows 10 version is currently 1809, set by Qt 6 - https://doc.qt.io/qt-6/supported-platforms.html#windows
Would we get these same benefits if we updated the minimum API version to 1809?
I believe our real world Windows 10 version is currently 1809 as set by Qt 6 - https://doc.qt.io/qt-6/supported-platforms.html#windows
I actually tested all released win10 versions against dolphin to come up with 1703, so I'm pretty sure it was that. https://github.com/dolphin-emu/dolphin/pull/11062#issuecomment-1248924488
Would we get these same benefits if we updated the minimum API version to 1809?
nope
Well, my general rule of thumb is that any OS support >=5 years old or <1% usage is fair game. 1809 as a new minimum would be nicer, but I don't feel strongly about this. This is fine, imo.
I actually tested all released win10 versions against dolphin to come up with 1703, so I'm pretty sure it was that.
Oh that's awesome, I completely missed that. I'll update my little chart.
Windows version breakdown for all analytics events reported on the latest beta build:
SELECT
CONCAT(toString(`win-ver-major`), '.', toString(`win-ver-minor`), '.', toString(`win-ver-build`)),
COUNT(*)
FROM event
WHERE (`version-desc` = '5.0-17995') AND (`win-ver-major` IS NOT NULL)
GROUP BY 1
ORDER BY 2 DESC
Query id: bcf36d86-f378-4116-8e60-fef17c88beea
┌─concat(toString(win-ver-major), '.', toString(win-ver-minor), '.', toString(win-ver-build))─┬─count()─┐
│ 10.0.19044 │ 931636 │
│ 10.0.19045 │ 818099 │
│ 10.0.22621 │ 650651 │
│ 10.0.22000 │ 376239 │
│ 10.0.19043 │ 31061 │
│ 10.0.19042 │ 26646 │
│ 10.0.18363 │ 25135 │
│ 10.0.22623 │ 19803 │
│ 10.0.17763 │ 12813 │
│ 10.0.19041 │ 10428 │
│ 10.0.18362 │ 5957 │
│ 10.0.22622 │ 3307 │
│ 10.0.25267 │ 2974 │
│ 6.2.9200 │ 2842 │
│ 10.0.17134 │ 2403 │
│ 6.1.7600 │ 2077 │
│ 10.0.16299 │ 1889 │
│ 10.0.21996 │ 1383 │
│ 10.0.25272 │ 1013 │
│ 6.0.6000 │ 886 │
│ 10.0.15063 │ 753 │
│ 10.0.25252 │ 350 │
│ 6.0.6002 │ 348 │
│ 10.0.25276 │ 317 │
│ 10.0.25236 │ 268 │
│ 10.0.22610 │ 265 │
│ 10.0.25193 │ 187 │
│ 10.0.22616 │ 185 │
│ 10.0.25247 │ 176 │
│ 10.0.20348 │ 167 │
│ 10.0.19035 │ 151 │
│ 10.0.25262 │ 119 │
│ 10.0.14393 │ 118 │
│ 10.0.22598 │ 91 │
│ 10.0.25182 │ 61 │
│ 10.0.25217 │ 49 │
│ 10.0.25120 │ 44 │
│ 10.0.25201 │ 41 │
│ 10.0.25131 │ 28 │
│ 10.0.22581 │ 27 │
│ 10.0.22526 │ 25 │
│ 10.0.22504 │ 16 │
│ 10.0.22523 │ 14 │
│ 10.0.21390 │ 13 │
│ 10.0.20215 │ 11 │
│ 10.0.25227 │ 11 │
│ 10.0.25188 │ 10 │
│ 10.0.25231 │ 8 │
│ 10.0.25197 │ 6 │
│ 10.0.22471 │ 6 │
│ 10.0.25163 │ 5 │
│ 10.0.22499 │ 5 │
│ 10.0.22489 │ 4 │
│ 10.0.25206 │ 1 │
│ 10.0.22509 │ 1 │
└─────────────────────────────────────────────────────────────────────────────────────────────┴─────────┘
55 rows in set. Elapsed: 3.033 sec. Processed 628.99 million rows, 28.77 GB (207.38 million rows/s., 9.49 GB/s.)
Seems kinda suspicious, OS versions < 10 shouldn't be able to run the binary long enough to upload stats?
Maybe running the binary in compatibility mode?
Maybe running the binary in compatibility mode?
I don't think it would work. The main problem is that Qt imports some dlls/apis which don't exist on older versions, and afair they have no fallback path, which is what was causing the first os-version-related crashes that got reported after updating to Qt6...
With cumulative percentages:
SELECT
ver,
cnt,
ROUND((100 * sum(cnt) OVER (ORDER BY ver ASC)) / sum(cnt) OVER (), 3) AS cum_pct
FROM
(
SELECT
CONCAT(RIGHT(CONCAT('0', toString(`win-ver-major`)), 2), '.', toString(`win-ver-minor`), '.', toString(`win-ver-build`)) AS ver,
COUNT(*) AS cnt
FROM event
WHERE (`version-desc` = '5.0-17995') AND (`win-ver-major` IS NOT NULL)
GROUP BY 1
)
ORDER BY ver ASC
Query id: 0d86d667-28c1-45e5-a22b-9ed62e431469
┌─ver────────┬────cnt─┬─cum_pct─┐
│ 06.0.6000 │ 886 │ 0.03 │
│ 06.0.6002 │ 348 │ 0.042 │
│ 06.1.7600 │ 2077 │ 0.113 │
│ 06.2.9200 │ 2843 │ 0.21 │
│ 10.0.14393 │ 118 │ 0.214 │
│ 10.0.15063 │ 753 │ 0.24 │
│ 10.0.16299 │ 1889 │ 0.304 │
│ 10.0.17134 │ 2403 │ 0.386 │
│ 10.0.17763 │ 12818 │ 0.823 │
│ 10.0.18362 │ 5957 │ 1.026 │
│ 10.0.18363 │ 25143 │ 1.884 │
│ 10.0.19035 │ 151 │ 1.889 │
│ 10.0.19041 │ 10430 │ 2.245 │
│ 10.0.19042 │ 26648 │ 3.154 │
│ 10.0.19043 │ 31070 │ 4.213 │
│ 10.0.19044 │ 931943 │ 35.998 │
│ 10.0.19045 │ 818344 │ 63.908 │
│ 10.0.20215 │ 11 │ 63.909 │
│ 10.0.20348 │ 167 │ 63.914 │
│ 10.0.21390 │ 13 │ 63.915 │
│ 10.0.21996 │ 1386 │ 63.962 │
│ 10.0.22000 │ 376355 │ 76.798 │
│ 10.0.22471 │ 6 │ 76.798 │
│ 10.0.22489 │ 4 │ 76.798 │
│ 10.0.22499 │ 5 │ 76.799 │
│ 10.0.22504 │ 16 │ 76.799 │
│ 10.0.22509 │ 1 │ 76.799 │
│ 10.0.22523 │ 14 │ 76.8 │
│ 10.0.22526 │ 25 │ 76.8 │
│ 10.0.22581 │ 27 │ 76.801 │
│ 10.0.22598 │ 91 │ 76.805 │
│ 10.0.22610 │ 265 │ 76.814 │
│ 10.0.22616 │ 185 │ 76.82 │
│ 10.0.22621 │ 650871 │ 99.018 │
│ 10.0.22622 │ 3307 │ 99.131 │
│ 10.0.22623 │ 19805 │ 99.807 │
│ 10.0.25120 │ 44 │ 99.808 │
│ 10.0.25131 │ 28 │ 99.809 │
│ 10.0.25163 │ 5 │ 99.809 │
│ 10.0.25182 │ 61 │ 99.811 │
│ 10.0.25188 │ 11 │ 99.812 │
│ 10.0.25193 │ 187 │ 99.818 │
│ 10.0.25197 │ 6 │ 99.818 │
│ 10.0.25201 │ 41 │ 99.82 │
│ 10.0.25206 │ 1 │ 99.82 │
│ 10.0.25217 │ 49 │ 99.821 │
│ 10.0.25227 │ 11 │ 99.822 │
│ 10.0.25231 │ 8 │ 99.822 │
│ 10.0.25236 │ 268 │ 99.831 │
│ 10.0.25247 │ 176 │ 99.837 │
│ 10.0.25252 │ 350 │ 99.849 │
│ 10.0.25262 │ 119 │ 99.853 │
│ 10.0.25267 │ 2974 │ 99.955 │
│ 10.0.25272 │ 1013 │ 99.989 │
│ 10.0.25276 │ 317 │ 100 │
└────────────┴────────┴─────────┘
55 rows in set. Elapsed: 2.728 sec. Processed 628.99 million rows, 28.77 GB (230.55 million rows/s., 10.55 GB/s.)
yea, so the numbers look OK as far as impact goes. I don't get how we see any < 10.0.14393 tho (see earlier comment https://github.com/dolphin-emu/dolphin/pull/11062#issuecomment-1248924488) but 🤷♂️
it is somewhat suspicious that we see 6.x below 10.0 but nothing in [10.0 , 10.0.14393) (I'm not worried about it / not going to look into it)
I just confirmed that we do end up seeing values like 6.0, 6.1, etc. based on compatbility mode settings:
┌──────────────────ts─┬─id───────────────┬─win-ver-major─┬─win-ver-minor─┬─win-ver-build─┐
│ 2023-01-16 16:17:01 │ 1eea601145762080 │ 6 │ 0 │ 6000 │
│ 2023-01-16 16:16:40 │ 1eea601145762080 │ 10 │ 0 │ 22621 │
└─────────────────────┴──────────────────┴───────────────┴───────────────┴───────────────┘
Oh - but your base OS is some win10 at least right? I was having a brain fart.
Yeah, 10.0.22621 is my base OS (some recent-ish win11 build).
Cycled through all the compat settings in the Windows properties menu:
┌──────────────────ts─┬─id───────────────┬─win-ver-major─┬─win-ver-minor─┬─win-ver-build─┐
│ 2023-01-16 16:19:12 │ 1eea601145762080 │ 6 │ 2 │ 9200 │
│ 2023-01-16 16:19:04 │ 1eea601145762080 │ 6 │ 1 │ 7600 │
│ 2023-01-16 16:18:56 │ 1eea601145762080 │ 6 │ 0 │ 6002 │
│ 2023-01-16 16:18:47 │ 1eea601145762080 │ 6 │ 0 │ 6001 │
│ 2023-01-16 16:17:01 │ 1eea601145762080 │ 6 │ 0 │ 6000 │
│ 2023-01-16 16:16:40 │ 1eea601145762080 │ 10 │ 0 │ 22621 │
└─────────────────────┴──────────────────┴───────────────┴───────────────┴───────────────┘
I happen to now be the first person to have ever run this latest beta build of Dolphin on "Vista SP1" compatibility mode :P
More cumulative percentages but this time looking at number of unique users instead of just raw number of events (probably more useful...)
SELECT
ver,
cnt,
ROUND((100 * sum(cnt) OVER (ORDER BY ver ASC)) / sum(cnt) OVER (), 3) AS cum_pct
FROM
(
SELECT
CONCAT(RIGHT(CONCAT('0', toString(`win-ver-major`)), 2), '.', toString(`win-ver-minor`), '.', toString(`win-ver-build`)) AS ver,
COUNTDistinct(id) AS cnt
FROM event
WHERE (type = 'dolphin-start') AND (`version-desc` = '5.0-17995') AND (`win-ver-major` IS NOT NULL)
GROUP BY 1
)
ORDER BY ver ASC
Query id: 2fef982e-e247-4765-bc02-8c044930e14b
┌─ver────────┬───cnt─┬─cum_pct─┐
│ 06.0.6000 │ 5 │ 0.004 │
│ 06.0.6001 │ 1 │ 0.004 │
│ 06.0.6002 │ 11 │ 0.012 │
│ 06.1.7600 │ 97 │ 0.08 │
│ 06.2.9200 │ 211 │ 0.228 │
│ 10.0.14393 │ 29 │ 0.249 │
│ 10.0.15063 │ 63 │ 0.293 │
│ 10.0.16299 │ 101 │ 0.364 │
│ 10.0.17134 │ 151 │ 0.47 │
│ 10.0.17763 │ 618 │ 0.904 │
│ 10.0.18362 │ 334 │ 1.139 │
│ 10.0.18363 │ 1142 │ 1.941 │
│ 10.0.19035 │ 1 │ 1.942 │
│ 10.0.19041 │ 521 │ 2.308 │
│ 10.0.19042 │ 1500 │ 3.362 │
│ 10.0.19043 │ 1796 │ 4.623 │
│ 10.0.19044 │ 45277 │ 36.432 │
│ 10.0.19045 │ 40283 │ 64.733 │
│ 10.0.20215 │ 1 │ 64.734 │
│ 10.0.20348 │ 9 │ 64.74 │
│ 10.0.21390 │ 2 │ 64.741 │
│ 10.0.21996 │ 72 │ 64.792 │
│ 10.0.22000 │ 17440 │ 77.044 │
│ 10.0.22471 │ 1 │ 77.045 │
│ 10.0.22489 │ 1 │ 77.046 │
│ 10.0.22499 │ 1 │ 77.047 │
│ 10.0.22504 │ 1 │ 77.047 │
│ 10.0.22509 │ 1 │ 77.048 │
│ 10.0.22523 │ 1 │ 77.049 │
│ 10.0.22526 │ 1 │ 77.049 │
│ 10.0.22581 │ 2 │ 77.051 │
│ 10.0.22598 │ 5 │ 77.054 │
│ 10.0.22610 │ 10 │ 77.061 │
│ 10.0.22616 │ 11 │ 77.069 │
│ 10.0.22621 │ 31058 │ 98.889 │
│ 10.0.22622 │ 118 │ 98.971 │
│ 10.0.22623 │ 1073 │ 99.725 │
│ 10.0.25120 │ 1 │ 99.726 │
│ 10.0.25131 │ 1 │ 99.727 │
│ 10.0.25163 │ 1 │ 99.727 │
│ 10.0.25182 │ 2 │ 99.729 │
│ 10.0.25188 │ 1 │ 99.73 │
│ 10.0.25193 │ 4 │ 99.732 │
│ 10.0.25197 │ 1 │ 99.733 │
│ 10.0.25201 │ 2 │ 99.734 │
│ 10.0.25206 │ 1 │ 99.735 │
│ 10.0.25217 │ 4 │ 99.738 │
│ 10.0.25227 │ 1 │ 99.739 │
│ 10.0.25231 │ 2 │ 99.74 │
│ 10.0.25236 │ 9 │ 99.746 │
│ 10.0.25247 │ 10 │ 99.753 │
│ 10.0.25252 │ 17 │ 99.765 │
│ 10.0.25262 │ 17 │ 99.777 │
│ 10.0.25267 │ 181 │ 99.904 │
│ 10.0.25272 │ 89 │ 99.967 │
│ 10.0.25276 │ 47 │ 100 │
└────────────┴───────┴─────────┘
56 rows in set. Elapsed: 1.894 sec. Processed 224.06 million rows, 20.98 GB (118.28 million rows/s., 11.08 GB/s.)
I'm just a single user, but Windows 10 LTSB 2019 is based on version 1809 and isn't upgradeable, so my machine (a dedicated Dolphin machine!) would be shut out by this change.
There's also at least one unofficial backported version of Qt 6 for Windows 7. Not sure but that could be a cause for some of the analytics as I've seen people running some newer programs on older Windows with them.
I'm just a single user, but Windows 10 LTSB 2019 is based on version 1809 and isn't upgradeable, so my machine (a dedicated Dolphin machine!) would be shut out by this change.
It is upgradable, however you're on your own to follow the MS-described steps to do so. To be blunt, I'm guessing you've gotten yourself into a mess because you've installed a build intended for enterprise management in a standalone setting.
There's also at least one unofficial backported version of Qt 6 for Windows 7. Not sure if those would show up in the analytics but I've seen people running some newer programs on older Windows with them.
Win7 is not supported by dolphin nor Qt so there is nothing to comment on here.
I'm just a single user, but Windows 10 LTSB 2019 is based on version 1809 and isn't upgradeable, so my machine (a dedicated Dolphin machine!) would be shut out by this change.
FWIW Windows 10 LTSC 2021 can be installed as an in-place upgrade for LTSB 2019. This means all your apps, user data and most of your settings can be preserved. You'll have to start the LTSC 2021 setup manually (e.g. from an ISO), it won't be offered via Windows Update, though...
I'd also suggest 1809 would be a better target due to LTSC/LTSB.
More cumulative percentages but this time looking at number of unique users instead of just raw number of events (probably more useful...)
SELECT ver, cnt, ROUND((100 * sum(cnt) OVER (ORDER BY ver ASC)) / sum(cnt) OVER (), 3) AS cum_pct FROM ( SELECT CONCAT(RIGHT(CONCAT('0', toString(`win-ver-major`)), 2), '.', toString(`win-ver-minor`), '.', toString(`win-ver-build`)) AS ver, COUNTDistinct(id) AS cnt FROM event WHERE (type = 'dolphin-start') AND (`version-desc` = '5.0-17995') AND (`win-ver-major` IS NOT NULL) GROUP BY 1 ) ORDER BY ver ASC
@delroth could you run another query like this against latest beta? since https://github.com/dolphin-emu/dolphin/pull/11458 was merged we should no longer see pre-win10 popping up...it's not a prereq for merging this PR, but would be nice to confirm it's working as intended.
There's also at least one unofficial backported version of Qt 6 for Windows 7. Not sure but that could be a cause for some of the analytics as I've seen people running some newer programs on older Windows with them.
Win7 has always been able to run Dolphin through some workarounds.
Lastest Backport for Win7 Version (QT 6.4.2) https://forum.qt.io/topic/133002/qt-creator-6-0-1-and-qt-6-2-2-running-on-windows-7/46
Also, I have tried modifying dolphin binary & QT's dll (placed some Win7 apiset dll), I can run it on Win7. ( api-ms-win-devices-config-l1-1-1.dll >> cfgmgr32.dll) (CM_Register_Notification & CM_Unregister_Notification >> CMP_RegisterNotification & CMP_UnregisterNotification )
Chinese post : https://www.ppxclub.com/forum.php?mod=viewthread&tid=719606&extra=page%3D1 English post (public) : https://www.patreon.com/posts/fixed-dolphin-5-79021437
Are you the author of these posts? If so: these are in violation of Dolphin's license, if not corrected by tomorrow I'll follow the usual DMCA process. Thanks.
Chinese post : https://www.ppxclub.com/forum.php?mod=viewthread&tid=719606&extra=page%3D1 English post (public) : https://www.patreon.com/posts/fixed-dolphin-5-79021437
Are you the author of these posts? If so: these are in violation of Dolphin's license, if not corrected by tomorrow I'll follow the usual DMCA process. Thanks.
What is the part that needs to be corrected? If it is not allowed to publish directly modified Dolphin binary file, I can remove the download link.
If you make a Dolphin binary available, you also need to make the corresponding source code available. If you somehow edited the binary directly without editing the source code... then there is no corresponding source code you can make available, meaning you can't publish the binary. Please read Dolphin's license for details.
Sorry for the off-topicness, but I didn't realize the GPL prohibited binary patches? If so, that's a little frustrating, and doesn't seem in line with the license's overall goal of promoting software freedom. I would have assumed that distributing the original source code alongside any scripts (or whatever it is) which were used to modify the binary would be compliant.
Edit: I appear to at least not be the only person who thought this, although StackExchange is obviously not a definitive legal resource: https://opensource.stackexchange.com/a/899/18954
I would have assumed that distributing the original source code alongside any scripts (or whatever it is) which were used to modify the binary would be compliant.
That might be fine. I certainly don't know law well enough to actually make a comment on whether the license permits it, but I'd consider it in the spirit of the license, at least.
@delroth could you run another query like this against latest beta? since #11458 was merged we should no longer see pre-win10 popping up...it's not a prereq for merging this PR, but would be nice to confirm it's working as intended.
┌─ver────────┬───cnt─┬─cum_pct─┐
│ 10.0.14393 │ 11 │ 0.012 │
│ 10.0.15063 │ 34 │ 0.049 │
│ 10.0.16299 │ 61 │ 0.115 │
│ 10.0.17133 │ 3 │ 0.118 │
│ 10.0.17134 │ 70 │ 0.194 │
│ 10.0.17760 │ 1 │ 0.195 │
│ 10.0.17763 │ 328 │ 0.551 │
│ 10.0.18362 │ 170 │ 0.735 │
│ 10.0.18363 │ 657 │ 1.448 │
│ 10.0.19041 │ 324 │ 1.799 │
│ 10.0.19042 │ 842 │ 2.712 │
│ 10.0.19043 │ 856 │ 3.64 │
│ 10.0.19044 │ 25611 │ 31.409 │
│ 10.0.19045 │ 28938 │ 62.786 │
│ 10.0.20348 │ 4 │ 62.791 │
│ 10.0.21286 │ 2 │ 62.793 │
│ 10.0.21390 │ 1 │ 62.794 │
│ 10.0.21996 │ 54 │ 62.853 │
│ 10.0.22000 │ 7698 │ 71.199 │
│ 10.0.22504 │ 1 │ 71.2 │
│ 10.0.22533 │ 1 │ 71.201 │
│ 10.0.22538 │ 1 │ 71.203 │
│ 10.0.22543 │ 1 │ 71.204 │
│ 10.0.22581 │ 1 │ 71.205 │
│ 10.0.22593 │ 1 │ 71.206 │
│ 10.0.22610 │ 4 │ 71.21 │
│ 10.0.22616 │ 5 │ 71.216 │
│ 10.0.22621 │ 25475 │ 98.838 │
│ 10.0.22622 │ 89 │ 98.934 │
│ 10.0.22623 │ 749 │ 99.746 │
│ 10.0.25174 │ 1 │ 99.747 │
│ 10.0.25179 │ 2 │ 99.75 │
│ 10.0.25182 │ 1 │ 99.751 │
│ 10.0.25197 │ 2 │ 99.753 │
│ 10.0.25201 │ 1 │ 99.754 │
│ 10.0.25217 │ 3 │ 99.757 │
│ 10.0.25227 │ 1 │ 99.758 │
│ 10.0.25231 │ 1 │ 99.759 │
│ 10.0.25236 │ 3 │ 99.763 │
│ 10.0.25247 │ 1 │ 99.764 │
│ 10.0.25252 │ 4 │ 99.768 │
│ 10.0.25262 │ 1 │ 99.769 │
│ 10.0.25267 │ 12 │ 99.782 │
│ 10.0.25272 │ 7 │ 99.79 │
│ 10.0.25276 │ 2 │ 99.792 │
│ 10.0.25281 │ 1 │ 99.793 │
│ 10.0.25284 │ 10 │ 99.804 │
│ 10.0.25290 │ 27 │ 99.833 │
│ 10.0.25295 │ 68 │ 99.907 │
│ 10.0.25300 │ 86 │ 100 │
└────────────┴───────┴─────────┘
Chinese post : https://www.ppxclub.com/forum.php?mod=viewthread&tid=719606&extra=page%3D1 English post (public) : https://www.patreon.com/posts/fixed-dolphin-5-79021437
Are you the author of these posts? If so: these are in violation of Dolphin's license, if not corrected by tomorrow I'll follow the usual DMCA process. Thanks.
Removed download link for modified Dolphin binary file.
ping on this? :> keep in mind, it will just gently nudge the user to run windows update...it doesn't block people from dolphin.