diff options
| -rw-r--r-- | src/yuzu/main.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 8e7f91a0f..80e6d23a5 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp | |||
| @@ -198,6 +198,31 @@ static void RemoveCachedContents() { | |||
| 198 | Common::FS::RemoveDirRecursively(offline_system_data); | 198 | Common::FS::RemoveDirRecursively(offline_system_data); |
| 199 | } | 199 | } |
| 200 | 200 | ||
| 201 | static QString PrettyProductName() { | ||
| 202 | #ifdef _WIN32 | ||
| 203 | // After Windows 10 Version 2004, Microsoft decided to switch to a different notation: 20H2 | ||
| 204 | // With that notation change they changed the registry key used to denote the current version | ||
| 205 | QSettings windows_registry( | ||
| 206 | QStringLiteral("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"), | ||
| 207 | QSettings::NativeFormat); | ||
| 208 | const QString release_id = windows_registry.value(QStringLiteral("ReleaseId")).toString(); | ||
| 209 | if (release_id == QStringLiteral("2009")) { | ||
| 210 | const u32 current_build = windows_registry.value(QStringLiteral("CurrentBuild")).toUInt(); | ||
| 211 | const QString display_version = | ||
| 212 | windows_registry.value(QStringLiteral("DisplayVersion")).toString(); | ||
| 213 | const u32 ubr = windows_registry.value(QStringLiteral("UBR")).toUInt(); | ||
| 214 | u32 version = 10; | ||
| 215 | if (current_build >= 22000) { | ||
| 216 | version = 11; | ||
| 217 | } | ||
| 218 | return QStringLiteral("Windows %1 Version %2 (Build %3.%4)") | ||
| 219 | .arg(QString::number(version), display_version, QString::number(current_build), | ||
| 220 | QString::number(ubr)); | ||
| 221 | } | ||
| 222 | #endif | ||
| 223 | return QSysInfo::prettyProductName(); | ||
| 224 | } | ||
| 225 | |||
| 201 | GMainWindow::GMainWindow() | 226 | GMainWindow::GMainWindow() |
| 202 | : ui{std::make_unique<Ui::MainWindow>()}, system{std::make_unique<Core::System>()}, | 227 | : ui{std::make_unique<Ui::MainWindow>()}, system{std::make_unique<Core::System>()}, |
| 203 | input_subsystem{std::make_shared<InputCommon::InputSubsystem>()}, | 228 | input_subsystem{std::make_shared<InputCommon::InputSubsystem>()}, |
| @@ -259,7 +284,7 @@ GMainWindow::GMainWindow() | |||
| 259 | } | 284 | } |
| 260 | LOG_INFO(Frontend, "Host CPU: {}", cpu_string); | 285 | LOG_INFO(Frontend, "Host CPU: {}", cpu_string); |
| 261 | #endif | 286 | #endif |
| 262 | LOG_INFO(Frontend, "Host OS: {}", QSysInfo::prettyProductName().toStdString()); | 287 | LOG_INFO(Frontend, "Host OS: {}", PrettyProductName().toStdString()); |
| 263 | LOG_INFO(Frontend, "Host RAM: {:.2f} GiB", | 288 | LOG_INFO(Frontend, "Host RAM: {:.2f} GiB", |
| 264 | Common::GetMemInfo().TotalPhysicalMemory / f64{1_GiB}); | 289 | Common::GetMemInfo().TotalPhysicalMemory / f64{1_GiB}); |
| 265 | LOG_INFO(Frontend, "Host Swap: {:.2f} GiB", Common::GetMemInfo().TotalSwapMemory / f64{1_GiB}); | 290 | LOG_INFO(Frontend, "Host Swap: {:.2f} GiB", Common::GetMemInfo().TotalSwapMemory / f64{1_GiB}); |