diff --git a/src/menu/rom_database.c b/src/menu/rom_database.c index 840dfb9d..5ef5cb41 100644 --- a/src/menu/rom_database.c +++ b/src/menu/rom_database.c @@ -224,7 +224,7 @@ uint8_t rom_db_match_expansion_pak(rom_header_t rom_header) { // Space Station Silicon Valley has known issues on NTSC. // We only check for the known working market here. - if ( (rom_header.metadata.unique_identifier == *(uint16_t *) "SV") && (rom_header.metadata.destination_market != MARKET_PAL_GENERIC)) { + if ( (rom_header.metadata.unique_identifier == *(uint16_t *) "SV") && (rom_header.metadata.destination_market != MARKET_EUROPEAN_BASIC)) { return DB_MEMORY_EXPANSION_FAULTY; } diff --git a/src/menu/rom_database.h b/src/menu/rom_database.h index ac62cb78..f04e8a4a 100644 --- a/src/menu/rom_database.h +++ b/src/menu/rom_database.h @@ -114,54 +114,48 @@ typedef enum { N64_ALECK64 = 'Z' } rom_media_type_t; -/** @brief ROM market type enumeration. */ +/** @brief ROM market region & language type enumeration. */ typedef enum { - /** @brief The ROM is designed for all regions. */ - MARKET_ALL = 'A', - /** @brief The ROM is designed for Brazil (probably PAL-M). */ - MARKET_BRAZIL = 'B', - /** @brief The ROM is designed for China (probably PAL-D). */ - MARKET_CHINA = 'C', - /** @brief The ROM is designed for Germany (probably PAL). */ - MARKET_GERMANY = 'D', - /** @brief The ROM is designed for USA. (probably NTSC-M) */ - MARKET_USA = 'E', - /** @brief The ROM is designed for France (probably PAL). */ - MARKET_FRANCE = 'F', + /** @brief The ROM is designed for Japanese and "English" languages. */ + MARKET_JAPANESE_MULTI = 'A', // 1080 Snowboarding JPN is the only ROM that uses this? possibily a mistake, or the fact it also includes American English!. + /** @brief The ROM is designed for Brazil (Portuguese) language. */ + MARKET_BRAZILIAN = 'B', + /** @brief The ROM is designed for Chinese language. */ + MARKET_CHINESE = 'C', + /** @brief The ROM is designed for German language. */ + MARKET_GERMAN = 'D', + /** @brief The ROM is designed for North American "English" language. */ + MARKET_NORTH_AMERICA = 'E', + /** @brief The ROM is designed for French language. */ + MARKET_FRENCH = 'F', /** @brief The ROM is designed for a NTSC Gateway 64. */ MARKET_GATEWAY64_NTSC = 'G', - /** @brief The ROM is designed for Netherlands (probably PAL). */ - MARKET_NETHERLANDS = 'H', - /** @brief The ROM is designed for Italy (probably PAL). */ - MARKET_ITALY = 'I', - /** @brief The ROM is designed for Japan. (probably NTSC-J) */ - MARKET_JAPAN = 'J', - /** @brief The ROM is designed for Korea. */ - MARKET_KOREA = 'K', + /** @brief The ROM is designed for Dutch language. */ + MARKET_DUTCH = 'H', + /** @brief The ROM is designed for Italian language. */ + MARKET_ITALIAN = 'I', + /** @brief The ROM is designed for Japanese language. */ + MARKET_JAPANESE = 'J', + /** @brief The ROM is designed for Korean language. */ + MARKET_KOREAN = 'K', /** @brief The ROM is designed for a PAL Gateway 64. */ MARKET_GATEWAY64_PAL = 'L', - // MARKET_UNKNOWN_M = 'M', - /** @brief The ROM is designed for Canada. */ - MARKET_CANADA = 'N', - // MARKET_UNKNOWN_O = 'O', - /** @brief The ROM is designed for all PAL regions. */ - MARKET_PAL_GENERIC = 'P', - // MARKET_UNKNOWN_Q = 'Q', - // MARKET_UNKNOWN_R = 'R', - /** @brief The ROM is designed for Spain (probably PAL). */ - MARKET_SPAIN = 'S', - // MARKET_UNKNOWN_T = 'T', - /** @brief The ROM is designed for Australia (probably PAL). */ - MARKET_AUSTRAILA = 'U', - // MARKET_UNKNOWN_V = 'V', - /** @brief The ROM is designed for Scandinavia. */ - MARKET_SCANDINAVAIA = 'W', - /** @brief The ROM is designed for a PAL market (just unsure which and why). */ - MARKET_PAL_X = 'X', - /** @brief The ROM is designed for a PAL market (just unsure which and why). */ - MARKET_PAL_Y = 'Y', - /** @brief The ROM is designed for a PAL market (just unsure which and why). */ - MARKET_PAL_Z = 'Z' + /** @brief The ROM is designed for Canada region (English and French) language. */ + MARKET_CANADIAN = 'N', + /** @brief The ROM is designed for European market and languages (must at minimum include English). */ + MARKET_EUROPEAN_BASIC = 'P', // Sometimes used for Australian region ROMs as well. + /** @brief The ROM is designed for Spanish language */ + MARKET_SPANISH = 'S', + /** @brief The ROM is designed for Australia (English) language. */ + MARKET_AUSTRALIAN = 'U', + /** @brief The ROM is designed for Scandinavian (Swedish, Norwegian, Finnish, etc.) languages. */ + MARKET_SCANDINAVIAN = 'W', + /** @brief The ROM is designed for an undefined region and TBD language(s). */ + MARKET_OTHER_X = 'X', // many EU ROM's, Top Gear Rally (Asia) and HSV Racing (AUS) ROM uses this. + /** @brief The ROM is designed for a European region and language(s). */ + MARKET_OTHER_Y = 'Y', // many EU ROM's uses this. + /** @brief The ROM is designed for an undefined region and TBD language(s). */ + MARKET_OTHER_Z = 'Z' // no known ROM's use this. } rom_destination_market_t; diff --git a/src/menu/views/load.c b/src/menu/views/load.c index bfa96385..246bc181 100644 --- a/src/menu/views/load.c +++ b/src/menu/views/load.c @@ -42,45 +42,48 @@ static char *format_rom_media_type (rom_media_type_t media_type) { static char *format_rom_destination_market (rom_destination_market_t market_type) { // TODO: These are all assumptions and should be corrected if required. + // From http://n64devkit.square7.ch/info/submission/pal/01-01.html switch (market_type) { - case MARKET_ALL: - return "All"; - case MARKET_BRAZIL: - return "Brazil (MPAL)"; - case MARKET_CHINA: - return "China"; - case MARKET_GERMANY: - return "Germany (PAL)"; - case MARKET_USA: - return "USA (NTSC)"; - case MARKET_FRANCE: - return "France (PAL)"; - case MARKET_NETHERLANDS: - return "Netherlands (PAL)"; - case MARKET_ITALY: - return "Italy (PAL)"; - case MARKET_JAPAN: - return "Japan (NTSC)"; - case MARKET_KOREA: - return "Korea"; - case MARKET_CANADA: - return "Canada"; - case MARKET_SPAIN: - return "Spain (PAL)"; - case MARKET_AUSTRAILA: - return "Austraila (PAL)"; - case MARKET_SCANDINAVAIA: - return "Scandinavaia"; + case MARKET_JAPANESE_MULTI: + return "Japanese & English"; // 1080 Snowboarding JPN + case MARKET_BRAZILIAN: + return "Brazilian (Portuguese)"; + case MARKET_CHINESE: + return "Chinese"; + case MARKET_GERMAN: + return "German"; + case MARKET_NORTH_AMERICA: + return "American English"; + case MARKET_FRENCH: + return "French"; + case MARKET_DUTCH: + return "Dutch"; + case MARKET_ITALIAN: + return "Italian"; + case MARKET_JAPANESE: + return "Japanese"; + case MARKET_KOREAN: + return "Korean"; + case MARKET_CANADIAN: + return "Canadaian (English & French)"; + case MARKET_SPANISH: + return "Spanish"; + case MARKET_AUSTRALIAN: + return "Australian (English)"; + case MARKET_SCANDINAVIAN: + return "Scandinavian"; case MARKET_GATEWAY64_NTSC: - return "Gateway (NTSC)"; + return "LodgeNet/Gateway (NTSC)"; case MARKET_GATEWAY64_PAL: - return "Gateway (PAL)"; - case MARKET_PAL_GENERIC: - return "Generic (PAL)"; - case MARKET_PAL_X: // FIXME: some AUS ROM's use this so not only EUR - case MARKET_PAL_Y: - case MARKET_PAL_Z: - return "Unknown (PAL)"; + return "LodgeNet/Gateway (PAL)"; + case MARKET_EUROPEAN_BASIC: + return "PAL (includes English)"; // Mostly EU but is used on some Australian ROMs + case MARKET_OTHER_X: // FIXME: AUS HSV Racing ROM's and Asia Top Gear Rally use this so not only EUR + return "Regional (non specific)"; + case MARKET_OTHER_Y: + return "European (non specific)"; + case MARKET_OTHER_Z: + return "Regional (unknown)"; default: return "Unknown"; }