summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/Enums.cpp
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2016-07-13 19:51:01 +0200
committerGitHub <noreply@github.com>2016-07-13 19:51:01 +0200
commit014037ebb7897bd7051bdd9b76128fbc20db1674 (patch)
tree2a47fb496d72d5c72413b6433afc4006fdc4aa02 /Source/Core/DiscIO/Enums.cpp
parent89a03174ccfcc0dc80c9f59b84338f508919a555 (diff)
parent0a15aaaa123482ecf7b2490a13e33a884416d51c (diff)
Merge pull request #3983 from JosJuice/discio-enums
Move DiscIO enums to a new file
Diffstat (limited to 'Source/Core/DiscIO/Enums.cpp')
-rw-r--r--Source/Core/DiscIO/Enums.cpp530
1 files changed, 530 insertions, 0 deletions
diff --git a/Source/Core/DiscIO/Enums.cpp b/Source/Core/DiscIO/Enums.cpp
new file mode 100644
index 0000000000..d19ac3e038
--- /dev/null
+++ b/Source/Core/DiscIO/Enums.cpp
@@ -0,0 +1,530 @@
+// Copyright 2016 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#include <map>
+#include <string>
+
+#include "DiscIO/Enums.h"
+#include "Common/CommonTypes.h"
+#include "Common/Logging/Log.h"
+
+namespace DiscIO
+{
+// Increment CACHE_REVISION (ISOFile.cpp & GameFile.cpp) if the code below is modified
+
+Country CountrySwitch(u8 country_code)
+{
+ switch (country_code)
+ {
+ // Worldwide
+ case 'A':
+ return Country::COUNTRY_WORLD;
+
+ // PAL
+ case 'D':
+ return Country::COUNTRY_GERMANY;
+
+ case 'X': // Used by a couple PAL games
+ case 'Y': // German, French
+ case 'L': // Japanese import to PAL regions
+ case 'M': // Japanese import to PAL regions
+ case 'P':
+ return Country::COUNTRY_EUROPE;
+
+ case 'U':
+ return Country::COUNTRY_AUSTRALIA;
+
+ case 'F':
+ return Country::COUNTRY_FRANCE;
+
+ case 'I':
+ return Country::COUNTRY_ITALY;
+
+ case 'H':
+ return Country::COUNTRY_NETHERLANDS;
+
+ case 'R':
+ return Country::COUNTRY_RUSSIA;
+
+ case 'S':
+ return Country::COUNTRY_SPAIN;
+
+ // NTSC
+ case 'E':
+ case 'N': // Japanese import to USA and other NTSC regions
+ case 'Z': // Prince of Persia - The Forgotten Sands (Wii)
+ case 'B': // Ufouria: The Saga (Virtual Console)
+ return Country::COUNTRY_USA;
+
+ case 'J':
+ return Country::COUNTRY_JAPAN;
+
+ case 'K':
+ case 'Q': // Korea with Japanese language
+ case 'T': // Korea with English language
+ return Country::COUNTRY_KOREA;
+
+ case 'W':
+ return Country::COUNTRY_TAIWAN;
+
+ default:
+ if (country_code > 'A') // Silently ignore IOS wads
+ WARN_LOG(DISCIO, "Unknown Country Code! %c", country_code);
+ return Country::COUNTRY_UNKNOWN;
+ }
+}
+
+u8 GetSysMenuRegion(u16 title_version)
+{
+ switch (title_version)
+ {
+ case 128:
+ case 192:
+ case 224:
+ case 256:
+ case 288:
+ case 352:
+ case 384:
+ case 416:
+ case 448:
+ case 480:
+ case 512:
+ return 'J';
+ case 97:
+ case 193:
+ case 225:
+ case 257:
+ case 289:
+ case 353:
+ case 385:
+ case 417:
+ case 449:
+ case 481:
+ case 513:
+ return 'E';
+ case 130:
+ case 162:
+ case 194:
+ case 226:
+ case 258:
+ case 290:
+ case 354:
+ case 386:
+ case 418:
+ case 450:
+ case 482:
+ case 514:
+ return 'P';
+ case 326:
+ case 390:
+ case 454:
+ case 486:
+ case 518:
+ return 'K';
+ default:
+ return 'A';
+ }
+}
+
+std::string GetCompanyFromID(const std::string& company_id)
+{
+ static const std::map<std::string, std::string> companies = {
+ {"01", "Nintendo"},
+ {"02", "Rocket Games / Ajinomoto"},
+ {"03", "Imagineer-Zoom"},
+ {"04", "Gray Matter"},
+ {"05", "Zamuse"},
+ {"06", "Falcom"},
+ {"07", "Enix"},
+ {"08", "Capcom"},
+ {"09", "Hot B Co."},
+ {"0A", "Jaleco"},
+ {"0B", "Coconuts Japan"},
+ {"0C", "Coconuts Japan / GX Media"},
+ {"0D", "Micronet"},
+ {"0E", "Technos"},
+ {"0F", "Mebio Software"},
+ {"0G", "Shouei System"},
+ {"0H", "Starfish"},
+ {"0J", "Mitsui Fudosan / Dentsu"},
+ {"0L", "Warashi Inc."},
+ {"0N", "Nowpro"},
+ {"0P", "Game Village"},
+ {"0Q", "IE Institute"},
+ {"12", "Infocom"},
+ {"13", "Electronic Arts Japan"},
+ {"15", "Cobra Team"},
+ {"16", "Human / Field"},
+ {"17", "KOEI"},
+ {"18", "Hudson Soft"},
+ {"19", "S.C.P."},
+ {"1A", "Yanoman"},
+ {"1C", "Tecmo Products"},
+ {"1D", "Japan Glary Business"},
+ {"1E", "Forum / OpenSystem"},
+ {"1F", "Virgin Games (Japan)"},
+ {"1G", "SMDE"},
+ {"1J", "Daikokudenki"},
+ {"1P", "Creatures Inc."},
+ {"1Q", "TDK Deep Impresion"},
+ {"20", "Zoo"},
+ {"21", "Sunsoft / Tokai Engineering"},
+ {"22", "Planning Office Wada / VR1 Japan"},
+ {"23", "Micro World"},
+ {"25", "San-X"},
+ {"26", "Enix"},
+ {"27", "Loriciel / Electro Brain"},
+ {"28", "Kemco Japan"},
+ {"29", "Seta"},
+ {"2A", "Culture Brain"},
+ {"2C", "Palsoft"},
+ {"2D", "Visit Co., Ltd."},
+ {"2E", "Intec"},
+ {"2F", "System Sacom"},
+ {"2G", "Poppo"},
+ {"2H", "Ubisoft Japan"},
+ {"2J", "Media Works"},
+ {"2K", "NEC InterChannel"},
+ {"2L", "Tam"},
+ {"2M", "Jordan"},
+ {"2N", "Smilesoft / Rocket"},
+ {"2Q", "Mediakite"},
+ {"30", "Viacom"},
+ {"31", "Carrozzeria"},
+ {"32", "Dynamic"},
+ {"34", "Magifact"},
+ {"35", "Hect"},
+ {"36", "Codemasters"},
+ {"37", "Taito / GAGA Communications"},
+ {"38", "Laguna"},
+ {"39", "Telstar / Event / Taito "},
+ {"3B", "Arcade Zone Ltd."},
+ {"3C", "Entertainment International / Empire Software"},
+ {"3D", "Loriciel"},
+ {"3E", "Gremlin Graphics"},
+ {"3F", "K. Amusement Leasing Co."},
+ {"40", "Seika Corp."},
+ {"41", "Ubisoft Entertainment"},
+ {"42", "Sunsoft US"},
+ {"44", "Life Fitness"},
+ {"46", "System 3"},
+ {"47", "Spectrum Holobyte"},
+ {"49", "IREM"},
+ {"4B", "Raya Systems"},
+ {"4C", "Renovation Products"},
+ {"4D", "Malibu Games"},
+ {"4F", "Eidos"},
+ {"4G", "Playmates Interactive"},
+ {"4J", "Fox Interactive"},
+ {"4K", "Time Warner Interactive"},
+ {"4Q", "Disney Interactive"},
+ {"4S", "Black Pearl"},
+ {"4U", "Advanced Productions"},
+ {"4X", "GT Interactive"},
+ {"4Y", "Rare"},
+ {"4Z", "Crave Entertainment"},
+ {"50", "Absolute Entertainment"},
+ {"51", "Acclaim"},
+ {"52", "Activision"},
+ {"53", "American Sammy"},
+ {"54", "Take 2 Interactive / GameTek"},
+ {"55", "Hi Tech"},
+ {"56", "LJN Ltd."},
+ {"58", "Mattel"},
+ {"5A", "Mindscape / Red Orb Entertainment"},
+ {"5B", "Romstar"},
+ {"5C", "Taxan"},
+ {"5D", "Midway / Tradewest"},
+ {"5F", "American Softworks"},
+ {"5G", "Majesco Sales Inc."},
+ {"5H", "3DO"},
+ {"5K", "Hasbro"},
+ {"5L", "NewKidCo"},
+ {"5M", "Telegames"},
+ {"5N", "Metro3D"},
+ {"5P", "Vatical Entertainment"},
+ {"5Q", "LEGO Media"},
+ {"5S", "Xicat Interactive"},
+ {"5T", "Cryo Interactive"},
+ {"5W", "Red Storm Entertainment"},
+ {"5X", "Microids"},
+ {"5Z", "Data Design / Conspiracy / Swing"},
+ {"60", "Titus"},
+ {"61", "Virgin Interactive"},
+ {"62", "Maxis"},
+ {"64", "LucasArts Entertainment"},
+ {"67", "Ocean"},
+ {"68", "Bethesda Softworks"},
+ {"69", "Electronic Arts"},
+ {"6B", "Laser Beam"},
+ {"6E", "Elite Systems"},
+ {"6F", "Electro Brain"},
+ {"6G", "The Learning Company"},
+ {"6H", "BBC"},
+ {"6J", "Software 2000"},
+ {"6K", "UFO Interactive Games"},
+ {"6L", "BAM! Entertainment"},
+ {"6M", "Studio 3"},
+ {"6Q", "Classified Games"},
+ {"6S", "TDK Mediactive"},
+ {"6U", "DreamCatcher"},
+ {"6V", "JoWood Produtions"},
+ {"6W", "Sega"},
+ {"6X", "Wannado Edition"},
+ {"6Y", "LSP (Light & Shadow Prod.)"},
+ {"6Z", "ITE Media"},
+ {"70", "Atari (Infogrames)"},
+ {"71", "Interplay"},
+ {"72", "JVC (US)"},
+ {"73", "Parker Brothers"},
+ {"75", "Sales Curve (Storm / SCI)"},
+ {"78", "THQ"},
+ {"79", "Accolade"},
+ {"7A", "Triffix Entertainment"},
+ {"7C", "Microprose Software"},
+ {"7D", "Sierra / Universal Interactive"},
+ {"7F", "Kemco"},
+ {"7G", "Rage Software"},
+ {"7H", "Encore"},
+ {"7J", "Zoo"},
+ {"7K", "Kiddinx"},
+ {"7L", "Simon & Schuster Interactive"},
+ {"7M", "Asmik Ace Entertainment Inc."},
+ {"7N", "Empire Interactive"},
+ {"7Q", "Jester Interactive"},
+ {"7S", "Rockstar Games"},
+ {"7T", "Scholastic"},
+ {"7U", "Ignition Entertainment"},
+ {"7V", "Summitsoft"},
+ {"7W", "Stadlbauer"},
+ {"80", "Misawa"},
+ {"81", "Teichiku"},
+ {"82", "Namco Ltd."},
+ {"83", "LOZC"},
+ {"84", "KOEI"},
+ {"86", "Tokuma Shoten Intermedia"},
+ {"87", "Tsukuda Original"},
+ {"88", "DATAM-Polystar"},
+ {"8B", "Bullet-Proof Software"},
+ {"8C", "Vic Tokai Inc."},
+ {"8E", "Character Soft"},
+ {"8F", "I'Max"},
+ {"8G", "Saurus"},
+ {"8J", "General Entertainment"},
+ {"8N", "Success"},
+ {"8P", "Sega Japan"},
+ {"90", "Takara Amusement"},
+ {"91", "Chunsoft"},
+ {"92", "Video System / Mc O' River"},
+ {"93", "BEC"},
+ {"95", "Varie"},
+ {"96", "Yonezawa / S'pal"},
+ {"97", "Kaneko"},
+ {"99", "Marvelous Entertainment"},
+ {"9A", "Nichibutsu / Nihon Bussan"},
+ {"9B", "Tecmo"},
+ {"9C", "Imagineer"},
+ {"9F", "Nova"},
+ {"9G", "Take2 / Den'Z / Global Star"},
+ {"9H", "Bottom Up"},
+ {"9J", "Technical Group Laboratory"},
+ {"9L", "Hasbro Japan"},
+ {"9N", "Marvelous Entertainment"},
+ {"9P", "Keynet Inc."},
+ {"9Q", "Hands-On Entertainment"},
+ {"A0", "Telenet"},
+ {"A1", "Hori"},
+ {"A4", "Konami"},
+ {"A5", "K. Amusement Leasing Co."},
+ {"A6", "Kawada"},
+ {"A7", "Takara"},
+ {"A9", "Technos Japan Corp."},
+ {"AA", "JVC / Victor"},
+ {"AC", "Toei Animation"},
+ {"AD", "Toho"},
+ {"AF", "Namco"},
+ {"AG", "Media Rings Corporation"},
+ {"AH", "J-Wing"},
+ {"AJ", "Pioneer LDC"},
+ {"AK", "KID"},
+ {"AL", "Mediafactory"},
+ {"AP", "Infogrames / Hudson"},
+ {"AQ", "Kiratto Ludic Inc."},
+ {"B0", "Acclaim Japan"},
+ {"B1", "ASCII"},
+ {"B2", "Bandai"},
+ {"B4", "Enix"},
+ {"B6", "HAL Laboratory"},
+ {"B7", "SNK"},
+ {"B9", "Pony Canyon"},
+ {"BA", "Culture Brain"},
+ {"BB", "Sunsoft"},
+ {"BC", "Toshiba EMI"},
+ {"BD", "Sony Imagesoft"},
+ {"BF", "Sammy"},
+ {"BG", "Magical"},
+ {"BH", "Visco"},
+ {"BJ", "Compile"},
+ {"BL", "MTO Inc."},
+ {"BN", "Sunrise Interactive"},
+ {"BP", "Global A Entertainment"},
+ {"BQ", "Fuuki"},
+ {"C0", "Taito"},
+ {"C2", "Kemco"},
+ {"C3", "Square"},
+ {"C4", "Tokuma Shoten"},
+ {"C5", "Data East"},
+ {"C6", "Tonkin House / Tokyo Shoseki"},
+ {"C8", "Koei"},
+ {"CA", "Konami / Ultra / Palcom"},
+ {"CB", "NTVIC / VAP"},
+ {"CC", "Use Co., Ltd."},
+ {"CD", "Meldac"},
+ {"CE", "Pony Canyon / FCI "},
+ {"CF", "Angel / Sotsu Agency / Sunrise"},
+ {"CG", "Yumedia / Aroma Co., Ltd"},
+ {"CJ", "Boss"},
+ {"CK", "Axela / Crea-Tech"},
+ {"CL", "Sekaibunka-Sha / Sumire Kobo / Marigul Management Inc."},
+ {"CM", "Konami Computer Entertainment Osaka"},
+ {"CN", "NEC Interchannel"},
+ {"CP", "Enterbrain"},
+ {"CQ", "From Software"},
+ {"D0", "Taito / Disco"},
+ {"D1", "Sofel"},
+ {"D2", "Quest / Bothtec"},
+ {"D3", "Sigma"},
+ {"D4", "Ask Kodansha"},
+ {"D6", "Naxat"},
+ {"D7", "Copya System"},
+ {"D8", "Capcom Co., Ltd."},
+ {"D9", "Banpresto"},
+ {"DA", "Tomy"},
+ {"DB", "LJN Japan"},
+ {"DD", "NCS"},
+ {"DE", "Human Entertainment"},
+ {"DF", "Altron"},
+ {"DG", "Jaleco"},
+ {"DH", "Gaps Inc."},
+ {"DN", "Elf"},
+ {"DQ", "Compile Heart"},
+ {"E0", "Jaleco"},
+ {"E2", "Yutaka"},
+ {"E3", "Varie"},
+ {"E4", "T&E Soft"},
+ {"E5", "Epoch"},
+ {"E7", "Athena"},
+ {"E8", "Asmik"},
+ {"E9", "Natsume"},
+ {"EA", "King Records"},
+ {"EB", "Atlus"},
+ {"EC", "Epic / Sony Records"},
+ {"EE", "Information Global Service"},
+ {"EG", "Chatnoir"},
+ {"EH", "Right Stuff"},
+ {"EL", "Spike"},
+ {"EM", "Konami Computer Entertainment Tokyo"},
+ {"EN", "Alphadream Corporation"},
+ {"EP", "Sting"},
+ {"ES", "Star-Fish"},
+ {"F0", "A Wave"},
+ {"F1", "Motown Software"},
+ {"F2", "Left Field Entertainment"},
+ {"F3", "Extreme Ent. Grp."},
+ {"F4", "TecMagik"},
+ {"F9", "Cybersoft"},
+ {"FB", "Psygnosis"},
+ {"FE", "Davidson / Western Tech."},
+ {"FK", "The Game Factory"},
+ {"FL", "Hip Games"},
+ {"FM", "Aspyr"},
+ {"FP", "Mastiff"},
+ {"FQ", "iQue"},
+ {"FR", "Digital Tainment Pool"},
+ {"FS", "XS Games / Jack Of All Games"},
+ {"FT", "Daiwon"},
+ {"G0", "Alpha Unit"},
+ {"G1", "PCCW Japan"},
+ {"G2", "Yuke's Media Creations"},
+ {"G4", "KiKi Co., Ltd."},
+ {"G5", "Open Sesame Inc."},
+ {"G6", "Sims"},
+ {"G7", "Broccoli"},
+ {"G8", "Avex"},
+ {"G9", "D3 Publisher"},
+ {"GB", "Konami Computer Entertainment Japan"},
+ {"GD", "Square-Enix"},
+ {"GE", "KSG"},
+ {"GF", "Micott & Basara Inc."},
+ {"GH", "Orbital Media"},
+ {"GJ", "Detn8 Games"},
+ {"GL", "Gameloft / Ubisoft"},
+ {"GM", "Gamecock Media Group"},
+ {"GN", "Oxygen Games"},
+ {"GT", "505 Games"},
+ {"GY", "The Game Factory"},
+ {"H1", "Treasure"},
+ {"H2", "Aruze"},
+ {"H3", "Ertain"},
+ {"H4", "SNK Playmore"},
+ {"HF", "Level-5"},
+ {"HJ", "Genius Products"},
+ {"HY", "Reef Entertainment"},
+ {"HZ", "Nordcurrent"},
+ {"IH", "Yojigen"},
+ {"J9", "AQ Interactive"},
+ {"JF", "Arc System Works"},
+ {"JJ", "Deep Silver"},
+ {"JW", "Atari"},
+ {"K6", "Nihon System"},
+ {"KB", "NIS America"},
+ {"KM", "Deep Silver"},
+ {"KP", "Purple Hills"},
+ {"LH", "Trend Verlag / East Entertainment"},
+ {"LT", "Legacy Interactive"},
+ {"MJ", "Mumbo Jumbo"},
+ {"MR", "Mindscape"},
+ {"MS", "Milestone / UFO Interactive"},
+ {"MT", "Blast!"},
+ {"N9", "Terabox"},
+ {"NG", "Nordic Games"},
+ {"NK", "Neko Entertainment / Diffusion / Naps team"},
+ {"NP", "Nobilis"},
+ {"NQ", "Namco Bandai"},
+ {"NR", "Data Design / Destineer Studios"},
+ {"NS", "NIS America"},
+ {"PL", "Playlogic"},
+ {"QC", "Kadokawa Shoten"},
+ {"RM", "Rondomedia"},
+ {"RS", "Warner Bros. Interactive Entertainment Inc."},
+ {"RT", "RTL Games"},
+ {"RW", "RealNetworks"},
+ {"S5", "Southpeak Interactive"},
+ {"SP", "Blade Interactive Studios"},
+ {"SV", "SevenGames"},
+ {"SZ", "Storm City"},
+ {"TK", "Tasuke / Works"},
+ {"TV", "Tivola"},
+ {"UG", "Metro 3D / Data Design"},
+ {"VN", "Valcon Games"},
+ {"VP", "Virgin Play"},
+ {"VZ", "Little Orbit"},
+ {"WR", "Warner Bros. Interactive Entertainment Inc."},
+ {"XJ", "Xseed Games"},
+ {"XS", "Aksys Games"},
+ {"YT", "Valcon Games"},
+ {"Z4", "Ntreev Soft"},
+ {"ZA", "WBA Interactive"},
+ {"ZH", "Internal Engine"},
+ {"ZS", "Zinkia"},
+ {"ZW", "Judo Baby"},
+ {"ZX", "Topware Interactive"}};
+
+ auto iterator = companies.find(company_id);
+ if (iterator != companies.end())
+ return iterator->second;
+ else
+ return "";
+}
+}