diff options
Diffstat (limited to 'Source/Core/DiscIO/Enums.cpp')
| -rw-r--r-- | Source/Core/DiscIO/Enums.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Source/Core/DiscIO/Enums.cpp b/Source/Core/DiscIO/Enums.cpp index f7069c0012..6847b4e44a 100644 --- a/Source/Core/DiscIO/Enums.cpp +++ b/Source/Core/DiscIO/Enums.cpp @@ -145,6 +145,29 @@ Country TypicalCountryForRegion(Region region) } } +Region SysConfCountryToRegion(u8 country_code) +{ + if (country_code == 0) + return Region::Unknown; + + if (country_code < 0x08) // Japan + return Region::NTSC_J; + + if (country_code < 0x40) // Americas + return Region::NTSC_U; + + if (country_code < 0x80) // Europe, Oceania, parts of Africa + return Region::PAL; + + if (country_code < 0xa8) // Southeast Asia + return country_code == 0x88 ? Region::NTSC_K : Region::NTSC_J; + + if (country_code < 0xc0) // Middle East + return Region::NTSC_U; + + return Region::Unknown; +} + Region CountryCodeToRegion(u8 country_code, Platform platform, Region expected_region, std::optional<u16> revision) { |
