From 19d609284725ccca2ccf51e47bde108ff6af041b Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 17 Mar 2017 21:01:50 +0100 Subject: 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 --- Source/Core/DiscIO/Enums.cpp | 56 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'Source/Core/DiscIO/Enums.cpp') 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 companies = { -- cgit v1.2.3 From 04c49aa395073b1706e02115c11b4f7f1377f428 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 17 Mar 2017 21:10:41 +0100 Subject: Fix GetSysMenuRegion's handling of Wii Menu 1.0 This was a regression in 58bd129. --- Source/Core/DiscIO/Enums.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'Source/Core/DiscIO/Enums.cpp') diff --git a/Source/Core/DiscIO/Enums.cpp b/Source/Core/DiscIO/Enums.cpp index a124362266..67799a380d 100644 --- a/Source/Core/DiscIO/Enums.cpp +++ b/Source/Core/DiscIO/Enums.cpp @@ -126,6 +126,9 @@ Country CountrySwitch(u8 country_code) u8 GetSysMenuRegion(u16 title_version) { + if (title_version == 33) + return 'A'; // 1.0 uses 33 as the version number in all regions + switch (title_version & 0xf) { case 0: -- cgit v1.2.3 From 9d54e4a9de3b7f31a8df2e9fc6d9c3be3806aab4 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 17 Mar 2017 21:16:59 +0100 Subject: Return a more meaningful type from GetSysMenuRegion --- Source/Core/DiscIO/Enums.cpp | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) (limited to 'Source/Core/DiscIO/Enums.cpp') diff --git a/Source/Core/DiscIO/Enums.cpp b/Source/Core/DiscIO/Enums.cpp index 67799a380d..f6311422fe 100644 --- a/Source/Core/DiscIO/Enums.cpp +++ b/Source/Core/DiscIO/Enums.cpp @@ -18,6 +18,23 @@ bool IsNTSC(Region region) // Increment CACHE_REVISION (ISOFile.cpp & GameFile.cpp) if the code below is modified +Country TypicalCountryForRegion(Region region) +{ + switch (region) + { + case Region::NTSC_J: + return Country::COUNTRY_JAPAN; + case Region::NTSC_U: + return Country::COUNTRY_USA; + case Region::PAL: + return Country::COUNTRY_EUROPE; + case Region::NTSC_K: + return Country::COUNTRY_KOREA; + default: + return Country::COUNTRY_UNKNOWN; + } +} + Region RegionSwitchGC(u8 country_code) { Region region = RegionSwitchWii(country_code); @@ -124,23 +141,23 @@ Country CountrySwitch(u8 country_code) } } -u8 GetSysMenuRegion(u16 title_version) +Region GetSysMenuRegion(u16 title_version) { if (title_version == 33) - return 'A'; // 1.0 uses 33 as the version number in all regions + return Region::UNKNOWN_REGION; // 1.0 uses 33 as the version number in all regions switch (title_version & 0xf) { case 0: - return 'J'; + return Region::NTSC_J; case 1: - return 'E'; + return Region::NTSC_U; case 2: - return 'P'; + return Region::PAL; case 6: - return 'K'; + return Region::NTSC_K; default: - return 'A'; + return Region::UNKNOWN_REGION; } } @@ -153,16 +170,16 @@ std::string GetSysMenuVersionString(u16 title_version) switch (GetSysMenuRegion(title_version)) { - case 'J': + case Region::NTSC_J: region_letter = "J"; break; - case 'E': + case Region::NTSC_U: region_letter = "U"; break; - case 'P': + case Region::PAL: region_letter = "E"; break; - case 'K': + case Region::NTSC_K: region_letter = "K"; break; } -- cgit v1.2.3