# hardware (hw = ...): # svp - Sega Virtua Processor # pico - Sega Pico (not really cart hw, but convenient to support here) # prot - siple copy protection devices in unlicensed cartridges (see prot. below) # prot_lk3 - Lion King 3 / Super King Kong 99 protection. # # cartridge properties (prop = ...): # no_sram - don't emulate sram/EEPROM even if ROM headers tell it's there # no_eeprom - save storage is not EEPROM, even if ROM headers tell it is # filled_sram - save storage needs to be initialized with FFh instead of 00h # force_6btn - game only supports 6 button pad (32X X-men proto) # # mappers (hw = ...): # ssf2_mapper - used in Super Street Fighter2 # x_in_1_mapper - used in many *-in-1 pirate carts # realtec_mapper # radica_mapper - similar to x_in_1_mapper # piersolar_mapper - used in Pier Solar # # save storage memory range (inclusive, overrides ROM header): # sram_range = # # EEPROM: # eeprom_type = <1|2|3> - enable EEPROM, use type X (7bit, 2 addr words, 3 addr words). # See EkeEke's gen_eeprom.pdf "mode" descriptions for 24Cxx EEPROMs. # eeprom_lines = # - select data bus pins that are connected to EEPROM # SCL, SDA_IN and SDA_OUT pins (0-15 for D0-D15). # hw = prot: # prot_ro_value16 = - return constant on reads at location # ( & ), ignore writes. # prot_rw_value16 = - same as above, but writeable [Virtua Racing - SVP] check_str = 0x150, "Virtua Racing" check_str = 0x810, "OHMP" hw = svp [Virtua Racing - SVP] check_str = 0x150, "VIRTUA RACING" check_str = 0x810, "OHMP" hw = svp [Pico] check_str = 0x100, "SEGA PICO" hw = pico [Pico] check_str = 0x100, "IMA IKUNOUJYUKU" hw = pico # sram emulation triggers some protection for this one [Puggsy] check_str = 0x120, "PUGGSY" prop = no_sram # game has problems if it's save RAM is not initialized with FFh: [Dino Dini's Soccer] check_str = 0x150, "DINO DINI'S SOCCER" prop = filled_sram [Micro Machines 2 - Turbo Tournament] check_str = 0x150, "MICRO MACHINES II" prop = filled_sram # X-Men proto [X-Men (prototype)] check_str = 0x150, "32X SAMPLE PROGRAM" check_str = 0x32b74c, "Bishop Level" prop = force_6btn # The SSF2 mapper [Mega Everdrive] check_str = 0x100, "SEGA SSF" hw = ssf2_mapper [Super Street Fighter II - The New Challengers (U)] check_str = 0x150, "SUPER STREET FIGHTER2 The New Challengers" hw = ssf2_mapper prop = no_sram # The Pier Solar mapper, custom eeprom location [Pier Solar and the Great Architects] check_str = 0x150, "PIER" check_str = 0x610, "Respect" hw = piersolar_mapper # detect *_in_1 based on first game and if it's larger than it should be, # as some dumps look like to be incomplete. # This will also pick overdumps, but those should still work with the mapper applied. [12-in-1 (Unl)] check_str = 0x120, "FLICKY" check_size_gt = 0x020000 hw = x_in_1_mapper [4-in-1] check_str = 0x150, "ROBOCOP 3" check_size_gt = 0x080000 hw = x_in_1_mapper [4-in-1 a1] check_str = 0x150, "ALIEN 3" check_size_gt = 0x080000 hw = x_in_1_mapper [Super 15-in-1] check_str = 0x150, " SHOVE IT!" check_size_gt = 0x020000 hw = x_in_1_mapper [Super 19-in-1] check_str = 0x150, "MS PACMAN" check_size_gt = 0x020000 hw = x_in_1_mapper # radica [radica_v1] check_str = 0x150, "KID CHAMELEON" check_size_gt = 0x100000 hw = radica_mapper # realtec [Earth Defend, The (Unl)] check_str = 0x94, "THE EARTH DEFEND" hw = realtec_mapper [Funny World & Balloon Boy (Unl)] check_str = 0xfe, "WISEGAME 11-03-1993" hw = realtec_mapper [Whac-A-Critter (Unl)] check_str = 0x95, "MALLET LEGEND" hw = realtec_mapper # EEPROM games - thanks to EkeEke for most of this info [College Slam] check_str = 0x150, "COLLEGE SLAM" eeprom_type = 3 eeprom_lines = 8,0,0 [Frank Thomas Big Hurt Baseball] check_str = 0x150, "FRANK THOMAS BIGHURT BASEBAL" eeprom_type = 3 eeprom_lines = 8,0,0 [MICRO MACHINES II] check_str = 0x150, "MICRO MACHINES II" sram_range = 0x300000,0x380001 eeprom_type = 2 eeprom_lines = 9,8,7 [Micro Machines - Turbo Tournament '96] check_str = 0x150, " " check_csum = 0x165e sram_range = 0x300000,0x380001 eeprom_type = 2 eeprom_lines = 9,8,7 [Micro Machines - Turbo Tournament '96] check_str = 0x150, " " check_csum = 0x2c41 sram_range = 0x300000,0x380001 eeprom_type = 2 eeprom_lines = 9,8,7 [Micro Machines Military] check_str = 0x150, " " check_csum = 0x168b sram_range = 0x300000,0x380001 eeprom_type = 2 eeprom_lines = 9,8,7 [Micro Machines Military] check_str = 0x150, " " check_csum = 0xcee0 sram_range = 0x300000,0x380001 eeprom_type = 2 eeprom_lines = 9,8,7 [NBA Jam] check_str = 0x150, "NBA JAM " eeprom_type = 2 eeprom_lines = 1,0,1 [NBA Jam Tournament Edition] check_str = 0x150, "NBA JAM TOURNAMENT EDITION" sram_range = 0x200000,0x200001 eeprom_type = 2 eeprom_lines = 8,0,0 [NFL Quarterback Club] check_str = 0x150, "NFL QUARTERBACK CLUB" eeprom_type = 2 eeprom_lines = 8,0,0 [NHLPA Hockey '93] check_str = 0x150, "NHLPA Hockey '93" sram_range = 0x200000,0x200001 eeprom_type = 1 eeprom_lines = 6,7,7 [NHLPA Hockey '93] check_str = 0x150, "NHLPA HOCKEY '93" sram_range = 0x200000,0x200001 eeprom_type = 1 eeprom_lines = 6,7,7 [Rings of Power] check_str = 0x150, "RINGS OF POWER" sram_range = 0x200000,0x200001 eeprom_type = 1 eeprom_lines = 6,7,7 # Unlicensed games with simple protections # some of these come from Haze, some from myself (notaz). [Bug's Life, A (Unl)] check_str = 0x104, " " check_crc32 = 0x10458e09 hw = prot prot_ro_value16 = 0xa13000,0xffff00,0x28 [Elf Wor (Unl)] check_str = 0x172, "GAME : ELF WOR" hw = prot prot_ro_value16 = 0x400000,-2,0x5500 prot_ro_value16 = 0x400002,-2,0xc900 # check is done if the above one fails prot_ro_value16 = 0x400004,-2,0x0f00 prot_ro_value16 = 0x400006,-2,0x1800 # similar to above [King of Fighters '98, The (Unl)] check_str = 0x104, " " check_crc32 = 0xcbc38eea hw = prot prot_ro_value16 = 0x480000,0xff0000,0xaa00 prot_ro_value16 = 0x4a0000,0xff0000,0x0a00 prot_ro_value16 = 0x4c0000,0xff0000,0xf000 prot_ro_value16 = 0x400000,0xc00000,0x0000 # default for 400000-7f0000 [Lion King 3 (Unl)] check_str = 0x104, " are Registered Trademarks" check_crc32 = 0xc004219d hw = prot_lk3 [Lion King II, The (Unl)] check_str = 0x104, " are Registered Trademarks" check_crc32 = 0xaff46765 hw = prot prot_rw_value16 = 0x400000,0xc00004,0 prot_rw_value16 = 0x400004,0xc00004,0 [Mahjong Lover (Unl)] check_str = 0x118, "CREATON. " check_crc32 = 0xddd02ba4 hw = prot prot_ro_value16 = 0x400000,-2,0x9000 prot_ro_value16 = 0x401000,-2,0xd300 [Pocket Monsters (Unl)] check_str = 0x104, " " check_crc32 = 0xf68f6367 hw = prot prot_ro_value16 = 0xa13002,-2,0x01 prot_ro_value16 = 0xa1303e,-2,0x1f [Pocket Monsters (Unl) [a1]] check_str = 0x104, " " check_crc32 = 0xfb176667 hw = prot prot_ro_value16 = 0xa13000,-2,0x14 prot_ro_value16 = 0xa13002,-2,0x01 prot_ro_value16 = 0xa1303e,-2,0x1f [Rockman X3 (Unl)] check_csum = 0 check_crc32 = 0x3ee639f0 hw = prot prot_ro_value16 = 0xa13000,-2,0x0c [Smart Mouse (Unl)] check_csum = 0 check_crc32 = 0xdecdf740 hw = prot prot_ro_value16 = 0x400000,-2,0x5500 prot_ro_value16 = 0x400002,-2,0x0f00 prot_ro_value16 = 0x400004,-2,0xaa00 prot_ro_value16 = 0x400006,-2,0xf000 [Soul Blade (Unl)] check_str = 0x104, " " check_crc32 = 0xf26f88d1 hw = prot prot_ro_value16 = 0x400002,-2,0x9800 prot_ro_value16 = 0x400004,-2,0xaa00 # or 0xc900 prot_ro_value16 = 0x400006,-2,0xf000 [Super Bubble Bobble (Unl)] check_str = 0x104, " are Registered Trademarks" check_crc32 = 0x4820a161 hw = prot prot_ro_value16 = 0x400000,-2,0x5500 prot_ro_value16 = 0x400002,-2,0x0f00 [Super King Kong 99 (Unl)] check_str = 0x104, " are Registered Trademarks" check_crc32 = 0x413dfee2 hw = prot_lk3 [Super Mario Bros. (Unl)] check_str = 0x140, "SUPER MARIO BROS " hw = prot prot_ro_value16 = 0xa13000,-2,0x0c [Super Mario 2 1998 (Unl)] check_str = 0x104, " are Registered Trademarks" check_crc32 = 0xf7e1b3e1 hw = prot prot_ro_value16 = 0xa13000,-2,0x0a [Squirrel King (R)] check_str = 0x104, " are Registered Trademarks" check_crc32 = 0xb8261ff5 hw = prot prot_rw_value16 = 0x400000,0xc00000,0