mirror of
				https://github.com/RaySollium99/picodrive.git
				synced 2025-10-27 00:29:39 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			313 lines
		
	
	
	
		
			8 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
			
		
		
	
	
			313 lines
		
	
	
	
		
			8 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
| # 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
 | ||
| #  
 | ||
| # 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 = <start, end>
 | ||
| #
 | ||
| # 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 = <SCL,SDA_IN,SDA_OUT>
 | ||
| #                        - 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 = <addr, mask, val> - return constant <val> on reads at location
 | ||
| #                                        (<addr> & <mask>), ignore writes.
 | ||
| #  prot_rw_value16 = <addr, mask, val> - same as above, but writeable
 | ||
| 
 | ||
| [Virtua Racing - SVP]
 | ||
| check_str = 0x150, "Virtua Racing"
 | ||
| hw = svp
 | ||
| 
 | ||
| [Virtua Racing - SVP]
 | ||
| check_str = 0x150, "VIRTUA RACING"
 | ||
| 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
 | ||
| 
 | ||
| # The 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 SOLAR<41>&THE GREAT ARCHITECTS<54> WaterMelon<6F>"
 | ||
| hw = piersolar_mapper
 | ||
| sram_range = 0xa13009,0xa1300b
 | ||
| eeprom_type = 3
 | ||
| eeprom_lines = 2,1,0
 | ||
| 
 | ||
| # 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
 | ||
| 
 | 
