summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/Enums.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2017-03-17 21:01:50 +0100
committerJosJuice <josjuice@gmail.com>2017-03-18 10:08:13 +0100
commit19d609284725ccca2ccf51e47bde108ff6af041b (patch)
tree6d82ebd9193caf133ef661e938f08704cd996e60 /Source/Core/DiscIO/Enums.cpp
parent47fe78a76a0519c80422b37c453fab7bdc89962e (diff)
Display nicer version strings for the Wii Menu
The Tools > Load System Menu option displays the version of the installed Wii Menu. This commit changes the way we display that version, like so: "Load System Menu 514P" -> "Load System Menu 4.3E" The numbers are from http://wiibrew.org/wiki/System_Menu
Diffstat (limited to 'Source/Core/DiscIO/Enums.cpp')
-rw-r--r--Source/Core/DiscIO/Enums.cpp56
1 files changed, 56 insertions, 0 deletions
diff --git a/Source/Core/DiscIO/Enums.cpp b/Source/Core/DiscIO/Enums.cpp
index 2ef5b0e344..a124362266 100644
--- a/Source/Core/DiscIO/Enums.cpp
+++ b/Source/Core/DiscIO/Enums.cpp
@@ -141,6 +141,62 @@ u8 GetSysMenuRegion(u16 title_version)
}
}
+std::string GetSysMenuVersionString(u16 title_version)
+{
+ if (title_version == 33)
+ return "1.0"; // 1.0 uses 33 as the version number in all regions
+
+ std::string region_letter;
+
+ switch (GetSysMenuRegion(title_version))
+ {
+ case 'J':
+ region_letter = "J";
+ break;
+ case 'E':
+ region_letter = "U";
+ break;
+ case 'P':
+ region_letter = "E";
+ break;
+ case 'K':
+ region_letter = "K";
+ break;
+ }
+
+ switch (title_version & ~0xf)
+ {
+ case 96:
+ case 128:
+ return "2.0" + region_letter;
+ case 160:
+ return "2.1" + region_letter;
+ case 192:
+ return "2.2" + region_letter;
+ case 224:
+ return "3.0" + region_letter;
+ case 256:
+ return "3.1" + region_letter;
+ case 288:
+ return "3.2" + region_letter;
+ case 320:
+ case 352:
+ return "3.3" + region_letter;
+ case 384:
+ return (region_letter != "K" ? "3.4" : "3.5") + region_letter;
+ case 416:
+ return "4.0" + region_letter;
+ case 448:
+ return "4.1" + region_letter;
+ case 480:
+ return "4.2" + region_letter;
+ case 512:
+ return "4.3" + region_letter;
+ default:
+ return "?.?" + region_letter;
+ }
+}
+
std::string GetCompanyFromID(const std::string& company_id)
{
static const std::map<std::string, std::string> companies = {