summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO
diff options
context:
space:
mode:
authorGaryOderNichts <12049776+GaryOderNichts@users.noreply.github.com>2022-10-21 23:22:49 +0200
committerGaryOderNichts <12049776+GaryOderNichts@users.noreply.github.com>2022-10-22 13:36:55 +0200
commit88c57a00a351148c7c66787dc3af1c2e5e641305 (patch)
tree8ad36558cb020734631d9f5d33028390b957e8d4 /Source/Core/DiscIO
parent82d20ce352f51d05fbdc998cc1abd4514d5623cc (diff)
Show vWii System Menu version in Menu Bar
Diffstat (limited to 'Source/Core/DiscIO')
-rw-r--r--Source/Core/DiscIO/Enums.cpp114
-rw-r--r--Source/Core/DiscIO/Enums.h2
2 files changed, 69 insertions, 47 deletions
diff --git a/Source/Core/DiscIO/Enums.cpp b/Source/Core/DiscIO/Enums.cpp
index 0594e3161a..393f30076f 100644
--- a/Source/Core/DiscIO/Enums.cpp
+++ b/Source/Core/DiscIO/Enums.cpp
@@ -362,7 +362,7 @@ Region GetSysMenuRegion(u16 title_version)
}
}
-std::string GetSysMenuVersionString(u16 title_version)
+std::string GetSysMenuVersionString(u16 title_version, bool is_vwii)
{
std::string version;
char region_letter = '\0';
@@ -386,52 +386,74 @@ std::string GetSysMenuVersionString(u16 title_version)
break;
}
- switch (title_version & 0xff0)
+ if (is_vwii)
{
- case 32:
- version = "1.0";
- break;
- case 96:
- case 128:
- version = "2.0";
- break;
- case 160:
- version = "2.1";
- break;
- case 192:
- version = "2.2";
- break;
- case 224:
- version = "3.0";
- break;
- case 256:
- version = "3.1";
- break;
- case 288:
- version = "3.2";
- break;
- case 320:
- case 352:
- version = "3.3";
- break;
- case 384:
- version = (region_letter != 'K' ? "3.4" : "3.5");
- break;
- case 416:
- version = "4.0";
- break;
- case 448:
- version = "4.1";
- break;
- case 480:
- version = "4.2";
- break;
- case 512:
- version = "4.3";
- break;
- default:
- version = "?.?";
- break;
+ // For vWii return the Wii U version which installed the menu
+ switch (title_version & 0xff0)
+ {
+ case 512:
+ version = "1.0.0";
+ break;
+ case 544:
+ version = "4.0.0";
+ break;
+ case 608:
+ version = "5.2.0";
+ break;
+ default:
+ version = "?.?.?";
+ break;
+ }
+ }
+ else
+ {
+ switch (title_version & 0xff0)
+ {
+ case 32:
+ version = "1.0";
+ break;
+ case 96:
+ case 128:
+ version = "2.0";
+ break;
+ case 160:
+ version = "2.1";
+ break;
+ case 192:
+ version = "2.2";
+ break;
+ case 224:
+ version = "3.0";
+ break;
+ case 256:
+ version = "3.1";
+ break;
+ case 288:
+ version = "3.2";
+ break;
+ case 320:
+ case 352:
+ version = "3.3";
+ break;
+ case 384:
+ version = (region_letter != 'K' ? "3.4" : "3.5");
+ break;
+ case 416:
+ version = "4.0";
+ break;
+ case 448:
+ version = "4.1";
+ break;
+ case 480:
+ version = "4.2";
+ break;
+ case 512:
+ version = "4.3";
+ break;
+ default:
+ version = "?.?";
+ break;
+ }
}
if (region_letter != '\0')
diff --git a/Source/Core/DiscIO/Enums.h b/Source/Core/DiscIO/Enums.h
index 087234b59d..ebbef8cd42 100644
--- a/Source/Core/DiscIO/Enums.h
+++ b/Source/Core/DiscIO/Enums.h
@@ -88,7 +88,7 @@ Country CountryCodeToCountry(u8 country_code, Platform platform, Region region =
std::optional<u16> revision = {});
Region GetSysMenuRegion(u16 title_version);
-std::string GetSysMenuVersionString(u16 title_version);
+std::string GetSysMenuVersionString(u16 title_version, bool is_vwii);
const std::string& GetCompanyFromID(const std::string& company_id);
} // namespace DiscIO